diff --git a/cells/arabic/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/arabic/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..4c8a39d73e --- /dev/null +++ b/cells/arabic/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-03-21 +description: كيفية حساب المصنف في C# باستخدام Aspose.Cells – تعلم إنشاء مصنف Excel، + تعبئة خلايا Excel، حساب صيغ Excel، واستخدام وظيفة الفرز. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: ar +og_description: كيفية حساب دفتر العمل في C# بسرعة. يوضح هذا الدرس كيفية إنشاء دفتر + إكسل، تعبئة خلايا إكسل، حساب صيغ إكسل، واستخدام وظيفة الفرز. +og_title: كيفية حساب دفتر العمل في C# – دليل كامل للفرز +tags: +- C# +- Aspose.Cells +- Excel Automation +title: كيفية حساب دفتر العمل في C# – دليل الفرز والصيغ +url: /ar/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية حساب المصنف في C# – دليل الفرز والصيغة + +هل تساءلت يومًا **كيفية حساب قيم المصنف** مباشرةً دون فتح Excel؟ لست وحدك. في العديد من سيناريوهات الأتمتة تحتاج إلى إنشاء ملف Excel، وإدخال بعض الأرقام، وفرزها، وجلب النتائج مرة أخرى إلى تطبيق .NET الخاص بك — كل ذلك برمجيًا. + +في هذا الدليل سنستعرض ذلك بالضبط: سن **ننشئ مصنف Excel**، **نملأ خلايا Excel**، نرفق صيغة **SORT**، وأخيرًا **نحسب صيغ Excel** حتى تتمكن من قراءة المصفوفة المرتبة مباشرةً من C#. في النهاية ستحصل على مقتطف قابل للتنفيذ يمكنك وضعه في أي مشروع يستخدم Aspose.Cells (أو مكتبة مشابهة). + +## المتطلبات المسبقة + +- .NET 6+ (الكود يعمل أيضًا على .NET Framework 4.7.2) +- Aspose.Cells for .NET (حزمة NuGet التجريبية المجانية `Aspose.Cells`) +- فهم أساسي لصياغة C# +- لا حاجة لتثبيت نسخة من Microsoft Excel؛ المكتبة تقوم بكل الأعمال الثقيلة نيابةً عنك + +إذا كنت مرتاحًا لهذه المتطلبات، فلنبدأ. + +## كيفية حساب المصنف – تهيئة المصنف + +أول شيء يجب القيام به هو إنشاء كائن مصنف جديد. فكر فيه كفتح ملف Excel جديد تمامًا وخالٍ من أي محتوى. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **لماذا هذا مهم:** فئة `Workbook` هي نقطة الدخول لكل عملية — بدونها لا يمكنك إضافة أوراق، خلايا، أو صيغ. تهيئتها بشكل صحيح يضمن أنك تعمل على لوحة نظيفة. + +## إنشاء مصنف Excel والوصول إلى ورقة العمل + +الآن بعد أن أصبح المصنف موجودًا، نحتاج إلى التأكد من أننا نشير إلى ورقة العمل الصحيحة. معظم المكتبات تُنشئ ورقة واحدة افتراضيًا باسم “Sheet1”، لكن يمكنك إعادة تسميتها أو إضافة المزيد إذا رغبت. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **نصيحة احترافية:** تسمية الأوراق مبكرًا يساعد عندما تُشير إليها لاحقًا في الصيغ (`'Data'!A1:A10`). كما يجعل عملية تصحيح الأخطاء أسهل. + +## تعبئة خلايا Excel بالبيانات + +بعد ذلك، سن **نملأ خلايا Excel** بالأرقام التي نريد فرزها. المثال يستخدم خليتين فقط، لكن يمكنك توسيع النطاق إلى عشرات الصفوف. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **لماذا نستخدم `PutValue`** – يقوم تلقائيًا باكتشاف نوع البيانات (int, double, string, إلخ) وتخزينها بالشكل المناسب، مما يوفر عليك كتابة تحويلات يدوية. + +## تطبيق دالة SORT عبر الصيغة + +دالة `SORT` في Excel تفعل تمامًا ما يوحي به اسمها: تُعيد مصفوفة مرتبة دون تعديل البيانات الأصلية. سنضع هذه الصيغة في الخلية `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **ملاحظة حالة حافة:** `SORT` تُعيد نتيجة من نوع **مصفوفة**. في إصدارات Excel القديمة (قبل Office 365) كان يتطلب ذلك الضغط على Ctrl+Shift+Enter. مع Aspose.Cells تحصل على المصفوفة تلقائيًا عند حساب المصنف. + +## حساب صيغ Excel للحصول على النتائج + +في هذه المرحلة يعرف المصنف *ماذا* يحسب، لكن ليس *أن* عليه القيام بذلك. استدعاء `CalculateFormula` يُشغل المحرك لتقييم كل صيغة، بما فيها `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**الإخراج المتوقع في وحدة التحكم** + +``` +Sorted array: {2, 5} +``` + +> **ماذا حدث للتو؟** +> 1. أنشأ المصنف محرك حساب داخلي. +> 2. فحصت صيغة `SORT` النطاق `A1:A2`. +> 3. أنتج المحرك مصفوفة جديدة، والتي استخرجناها من `B1`. + +إذا قمت بتغيير القيم في `A1` و `A2` (أو توسيع النطاق) وأعدت تشغيل `CalculateFormula`، سيتحدث الإخراج تلقائيًا — لا حاجة لكود إضافي. + +## استخدام دالة Sort على مجموعات بيانات أكبر (اختياري) + +معظم السيناريوهات الواقعية تتضمن أكثر من صفين. إليك تعديل سريع يعمل مع أي عدد من الإدخالات: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **لماذا قد تحتاج هذا:** فرز نطاقات كبيرة يتيح لك إنشاء قوائم المتصدرين، ترتيب البيانات المالية، أو ببساطة تنظيف ملفات CSV المستوردة قبل المعالجة الإضافية. + +## المشكلات الشائعة وكيفية تجنبها + +| المشكلة | لماذا يحدث | الحل | +|-------|----------------|-----| +| **`#VALUE!` في B1** | صيغة `SORT` تشير إلى نطاق فارغ أو غير رقمي. | تأكد من أن كل خلية في النطاق المصدر تحتوي على رقم أو نص يمكن فرزه. | +| **اقتطاع المصفوفة** | محاولة قراءة مصفوفة من خلية واحدة دون تحويل النوع. | حوِّل `worksheet.Cells["B1"].Value` إلى `object[]` (أو النوع المناسب). | +| **تباطؤ الأداء** | إعادة حساب مصنفات ضخمة بعد كل تعديل صغير. | استدعِ `CalculateFormula` فقط بعد الانتهاء من تعديل الورقة، أو استخدم `CalculateFormulaOptions` لتحديد النطاق. | + +## مثال كامل جاهز للتنفيذ (انسخه‑الصقه) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **صورة النتيجة** +> ![نتيجة حساب المصنف في Excel](https://example.com/images/sorted-result.png "نتيجة حساب المصنف في Excel") + +الصورة أعلاه تُظهر المصنف بعد الحساب — الخلية **B1** تحتوي على المصفوفة المرتبة `{2, 5}`. + +## الخلاصة + +لقد غطينا للتو **كيفية حساب قيم المصنف** برمجيًا: إنشاء مصنف Excel، تعبئة خلايا Excel، إدراج صيغة `SORT`، وأخيرًا **حساب صيغ Excel** لاستخراج البيانات المرتبة. النهج يعمل مع أمثلة بسيطة من خلية‑خليتين ويتوسع بسلاسة إلى مجموعات بيانات أكبر. + +ما الخطوة التالية؟ جرّب دمج هذا مع دوال أخرى مثل `FILTER`، `UNIQUE`، أو حتى منطق شبيه بـ VBA عبر `WorksheetFunction`. يمكنك أيضًا حفظ المصنف على القرص (`workbook.Save("Sorted.xlsx")`) وفتحه في Excel للتحقق البصري. + +لا تتردد في التجربة — استبدل الأرقام، غيّر النطاق، أو ربط عدة صيغ معًا. الأتمتة تدور حول التكرار السريع، والآن لديك أساس قوي للبناء عليه. + +برمجة سعيدة، ولتُحسب مصنفاتك دائمًا بدقة كما تتوقع! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/arabic/net/conversion-and-rendering/_index.md b/cells/arabic/net/conversion-and-rendering/_index.md index 0e64ae2e4c..bd5ec4023a 100644 --- a/cells/arabic/net/conversion-and-rendering/_index.md +++ b/cells/arabic/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ تعرّف على كيفية تحويل ورقة عمل Excel إلى SVG باستخدام Aspose.Cells لـ .NET من خلال هذا الدليل المفصل. مثالي لمطوري .NET الذين يرغبون في تحويل Excel إلى SVG. ### [تحويل Excel إلى MHTML في .NET](./converting-excel-to-mhtml/) تعرف على كيفية تحويل ملفات Excel بكفاءة إلى تنسيق MHTML في .NET باستخدام Aspose.Cells، مما يعزز قدراتك على إعداد التقارير ومشاركة البيانات. +### [إنشاء صورة من Excel – تصدير Pivot إلى PNG في C#](./create-image-from-excel-export-pivot-to-png-in-c/) +تعلم كيفية إنشاء صورة PNG من جدول Pivot في Excel باستخدام Aspose.Cells وC# خطوة بخطوة. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/arabic/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..d3b371890a --- /dev/null +++ b/cells/arabic/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-21 +description: إنشاء صورة من ملف Excel باستخدام C# و Aspose.Cells. تعلّم كيفية تحويل + Excel إلى صورة، وتصدير الجداول المحورية، وحفظ الصورة بصيغة PNG مع مثال كامل قابل + للتنفيذ. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: ar +og_description: إنشاء صورة من Excel باستخدام C# بسرعة. يوضح هذا الدليل كيفية تحويل + Excel إلى صورة، وتصدير الجداول المحورية، وحفظ الصورة كملف PNG مع كود واضح. +og_title: إنشاء صورة من إكسل – تصدير الجدول المحوري إلى PNG في C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: إنشاء صورة من إكسل – تصدير الجدول المحوري إلى PNG في C# +url: /ar/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء صورة من Excel – تصدير Pivot إلى PNG في C# + +## ما ستحتاجه + +- **Aspose.Cells for .NET** (حزمة NuGet `Aspose.Cells`). إنها مكتبة تجارية لكنها توفر وضع تقييم مجاني—مثالي للاختبار. +- .NET 6+ (أو .NET Framework 4.6+). +- مصنف Excel بسيط (`Pivot.xlsx`) يحتوي على جدول Pivot واحد على الأقل. +- أي بيئة تطوير تفضلها—Visual Studio أو Rider أو حتى VS Code تعمل. + +هذا كل شيء. لا ملفات DLL إضافية، ولا تفاعل COM، ولا حيل معقدة لأتمتة Excel. + +الآن، دعنا نغوص في الكود. + +## الخطوة 1: تحميل المصنف – إنشاء صورة من Excel + +أول شيء نقوم به هو فتح ملف Excel الذي يحتوي على جدول Pivot. هذه الخطوة حاسمة لأن المُعالج يعمل على كائن `Workbook` الموجود في الذاكرة. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*لماذا هذا مهم:* تحميل المصنف يمنحنا الوصول إلى **pivot** وأي تنسيق سيتم احترامه عندما نقوم لاحقًا **convert Excel to image**. إذا تخطيت هذه الخطوة، لن يكون لدى المُعالج ما يعمل عليه. + +## الخطوة 2: تكوين خيارات التصدير – Convert Excel to Image + +بعد ذلك نخبر Aspose كيف نريد أن تبدو الصورة النهائية. تسمح لنا فئة `ImageOrPrintOptions` باختيار PNG، وضبط DPI، وحتى التحكم في لون الخلفية. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*لماذا هذا مهم:* من خلال ضبط DPI عالي نضمن أن **export Excel to PNG** يبدو واضحًا، حتى عندما يحتوي Pivot على العديد من الصفوف. يمكنك خفض DPI إذا كان حجم الملف مصدر قلق. + +## الخطوة 3: تصيير ورقة العمل – How to Export Pivot + +الآن يأتي قلب العملية: تحويل ورقة العمل (مع Pivot الخاص بها) إلى صورة. فئة `WorksheetRender` تقوم بالعمل الشاق. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*لماذا هذا مهم:* هنا نطبق **how to export pivot** إلى تنسيق بصري. يحترم المُعالج جميع تنسيقات Pivot، والشرائح، والأنماط الشرطية، لذا فإن PNG يبدو تمامًا كما تراه في Excel. + +## الخطوة 4: جمع كل شيء معًا – How to Save Image + +أخيرًا، نعرض طريقة عامة واحدة تربط جميع الأجزاء معًا. هذه هي الطريقة التي ستستدعيها من تطبيقك أو خدمتك أو أداة سطر الأوامر. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### مثال كامل يعمل + +أنشئ مشروع وحدة تحكم جديد، أضف حزمة NuGet `Aspose.Cells`، ثم ضع ملف `Program.cs` التالي داخل المشروع: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**النتيجة المتوقعة:** بعد تشغيل البرنامج، سيظهر `PivotImage.png` في المجلد الذي حددته، مع صورة دقيقة بكسلية لجدول Pivot. + +![مثال إنشاء صورة من Excel](https://example.com/placeholder.png "مثال إنشاء صورة من Excel") + +*Alt text:* مثال إنشاء صورة من Excel يظهر جدول Pivot المُصدّر كملف PNG. + +## أسئلة شائعة وحالات حافة + +### ماذا لو كان المصنف يحتوي على عدة أوراق عمل؟ + +المساعد حاليًا يلتقط `Worksheets[0]`. لاستهداف ورقة معينة، مرّر اسم الورقة: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### الصورة PNG غير واضحة—كيف أصلح ذلك؟ + +قم بزيادة `HorizontalResolution` و `VerticalResolution` في `GetImageOptions`. القيم بين 300–600 DPI عادةً ما تنتج نتائج واضحة. تذكر أن DPI أعلى يعني حجم ملف أكبر. + +### جدول Pivot يمتد على أكثر من صفحة—هل يمكنني تصدير جميع الصفحات؟ + +نعم. كرّر عبر `renderer.PageCount` واستدعِ `ToImage(pageIndex, ...)` لكل صفحة، أو اضبط `OnePagePerSheet = false` للحصول على صور منفصلة لكل صفحة. + +### أحتاج فقط جزءًا من الورقة (مثلاً نطاقًا محددًا)؟ + +استخدم `ImageOrPrintOptions` لتعيين `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +بهذه الطريقة يمكنك **convert Excel to image** فقط للمنطقة التي تهتم بها. + +### هل يعمل هذا مع ملفات .xls (Excel 97‑2003)؟ + +بالطبع. Aspose.Cells يج abstracts تنسيق الملف، لذا يمكنك تقديم `.xls` أو `.xlsx` أو `.xlsm` أو حتى `.ods` وما زلت تستطيع **export excel to png**. + +## نصائح احترافية وملاحظات + +- **License matters**: في وضع التقييم يضيف Aspose علامة مائية. قم بنشر ترخيص صحيح للإنتاج. +- **Memory usage**: قد يكون تصيير المصنفات الكبيرة مستهلكًا للذاكرة. تخلص من كائن `Workbook` فورًا أو غلفه بكتلة `using`. +- **Thread safety**: `Workbook` غير آمن للاستخدام المتعدد الخيوط. أنشئ نسخة جديدة لكل طلب إذا كنت في خدمة ويب. +- **Image format flexibility**: إذا كنت تحتاج JPEG أو BMP، فقط غيّر `ImageFormat` في `GetImageOptions`. + +## الخلاصة + +أصبح لديك الآن وصفة متكاملة من البداية إلى النهاية لـ **create image from Excel**، خصوصًا لتصدير بيانات **export pivot** كملف PNG عالي الجودة. المقتطف أعلاه يظهر الكود الكامل القابل للتنفيذ، يشرح **how to save image**، ويغطي تنوعات مثل أوراق متعددة أو مناطق طباعة مخصصة. + +الخطوات التالية؟ جرّب ربط هذا المُصدّر مع خدمة بريد إلكتروني لإرسال PNG تلقائيًا، أو جرب `ImageOrPrintOptions` لإنشاء ملفات PDF بدلاً من PNGs. النمط نفسه يعمل لمهام **convert excel to image** عبر العديد من الصيغ. + +هل لديك المزيد من الأسئلة؟ اترك تعليقًا، وتمنياتنا لك بالبرمجة السعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..37c5da8917 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 @@ -46,6 +46,8 @@ تعلّم كيفية تحويل ملفات CSV إلى JSON في .NET باستخدام Aspose.Cells. دليل خطوة بخطوة لتحويل البيانات مع أمثلة برمجية سهلة الاستخدام. ### [تحويل ملف Excel إلى DOCX برمجيًا في .NET](./converting-excel-file-to-docx/) تعرّف على كيفية تحويل ملفات Excel برمجيًا إلى DOCX باستخدام Aspose.Cells لـ .NET في هذا الدليل المفصل. مثالي لإنشاء التقارير ومشاركة البيانات. +### [حفظ ملف Excel كـ Docx باستخدام C# – دليل خطوة بخطوة كامل](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +دليل شامل يوضح كيفية حفظ مصنف Excel كملف Docx باستخدام C# مع أمثلة برمجية خطوة بخطوة. ### [تحويل ملف 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/) diff --git a/cells/arabic/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/arabic/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..dddc34e8b1 --- /dev/null +++ b/cells/arabic/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-21 +description: حفظ ملف Excel كـ Docx في C# — تعلم كيفية تحويل Excel إلى Word، تضمين + المخططات، وتحميل دفتر عمل Excel في C# باستخدام Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: ar +og_description: احفظ ملف Excel كـ Docx في C# موضح في الجملة الأولى. اتبع هذا الدرس + لتحويل Excel إلى Word، وإدراج المخططات، وتحميل دفتر عمل Excel في C#. +og_title: حفظ Excel كملف Docx باستخدام C# – دليل كامل +tags: +- C# +- Aspose.Cells +- Document Conversion +title: حفظ Excel كملف Docx باستخدام C# – دليل خطوة‑بخطوة كامل +url: /ar/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# حفظ Excel كـ Docx باستخدام C# – دليل خطوة بخطوة كامل + +هل احتجت يومًا إلى **حفظ Excel كـ Docx** لكن لم تكن متأكدًا من أين تبدأ؟ لست وحدك—العديد من المطورين يواجهون نفس المشكلة عندما يرغبون في *تحويل Excel إلى Word* مع الحفاظ على الرسوم البيانية دون فقدان الجودة. في هذا الدرس سنستعرض الشيفرة الدقيقة التي تحتاجها، نشرح لماذا كل سطر مهم، ونظهر لك كيفية تضمين رسوم Excel دون فقدان الجودة. + +سنضيف أيضًا بعض النصائح الإضافية حول سيناريوهات **load Excel workbook C#**، حتى تشعر في النهاية بالراحة عند تحويل Excel إلى Docx في أي مشروع .NET. لا مراجع غامضة، فقط مثال عملي يمكنك نسخه ولصقه الآن. + +--- + +## ما يغطيه هذا الدليل + +- تحميل ملف `.xlsx` موجود باستخدام Aspose.Cells (أو أي مكتبة متوافقة). +- تعديل اختياري لأوراق العمل أو الرسوم البيانية قبل التحويل. +- حفظ دفتر العمل كملف `.docx` مع الحفاظ على الرسوم المضمنة. +- التحقق من النتيجة ومعالجة الحالات الشائعة مثل دفاتر العمل الكبيرة أو أنواع الرسوم غير المدعومة. + +إذا كنت تتساءل **لماذا قد ترغب في تحويل Excel إلى Docx**، فكر في التقارير التي تحتاج لإرسالها إلى أصحاب المصلحة غير التقنيين—مستندات Word مقبولة عالميًا، وتحتفظ بالدقة البصرية لرسومك. هيا نبدأ. + +--- + +## المتطلبات المسبقة – Load Excel Workbook C# + +قبل كتابة أي شفرة، تأكد من وجود ما يلي: + +| المتطلب | السبب | +|-------------|--------| +| **.NET 6.0 أو أحدث** | بيئة تشغيل حديثة، أداء أفضل، ودعم كامل لـ Aspose.Cells. | +| **Aspose.Cells for .NET** (حزمة NuGet `Aspose.Cells`) | توفر فئة `Workbook` المستخدمة لقراءة Excel وتصديره إلى DOCX. | +| **Visual Studio 2022** (أو أي بيئة تطوير تفضلها) | مفيد للتصحيح وIntelliSense. | +| **ملف Excel يحتوي على رسوم بيانية** (`AdvancedCharts.xlsx`) | لرؤية ميزة *embed excel charts* عمليًا. | + +يمكنك تثبيت المكتبة عبر وحدة التحكم Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +**نصيحة احترافية:** إذا كنت تستخدم خط أنابيب CI/CD، أضف الحزمة إلى ملف `*.csproj` لتتم الاستعادة تلقائيًا. + +--- + +## الخطوة 1 – تحميل دفتر Excel (بدء حفظ Excel كـ Docx) + +أول شيء نقوم به هو تحميل دفتر العمل المصدر. هنا يأتي دور عبارة **load excel workbook c#**. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +**لماذا هذا مهم:** تحميل الملف يمنحك الوصول إلى كل ورقة عمل، رسم بياني، ونمط. بدون هذه الخطوة، لا شيء للتحويل، ولا يمكن للـ API الحفاظ على الرسوم المضمنة. + +--- + +## الخطوة 2 – (اختياري) تعديل دفتر العمل قبل التحويل + +قد ترغب في إعادة تسمية ورقة، إخفاء عمود، أو حتى تغيير عنوان رسم بياني. هذه الخطوة اختيارية لكنها تُظهر مدى مرونة التحويل. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +**حالة حدية:** بعض أنواع الرسوم القديمة (مثل Radar) قد لا تُعرض بشكل مثالي في Word. اختبر الرسوم الخاصة بك بعد التحويل. + +--- + +## الخطوة 3 – حفظ دفتر العمل كمستند Word (الإجراء الأساسي “Save Excel as Docx”) + +الآن يأتي لحظة الحقيقة: نحن فعليًا **نحفظ Excel كـ Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +عند تشغيل هذا، تقوم Aspose.Cells بكتابة كل ورقة عمل كجدول داخل ملف Word وتضمين كل رسم بياني كصورة عالية الدقة. النتيجة هي ملف `.docx` قابل للتحرير بالكامل ويظهر تمامًا كما في عرض Excel الأصلي. + +**لماذا اختيار DOCX بدلاً من PDF؟** DOCX يتيح للمستلمين تعديل النص أو استبدال الرسوم لاحقًا، بينما PDF هو لقطة ثابتة. + +--- + +## الخطوة 4 – التحقق من النتيجة وحل المشكلات الشائعة + +بعد انتهاء التحويل، افتح `ChartsInWord.docx` في Microsoft Word: + +1. تحقق من أن كل ورقة عمل تظهر كقسم منفصل – يجب أن ترى جداول تعكس بيانات Excel الخاصة بك. +2. تأكد من أن الرسوم مدمجة – يجب أن تكون صورًا قابلة للتحديد، وليس أماكن نائبة مكسورة. +3. إذا كان هناك رسم مفقود، تأكد من أن نوع الرسم مدعوم من قبل Aspose.Cells (انظر [قائمة التوافق الرسمية](https://docs.aspose.com/cells/net/supported-chart-types/)). + +**نصيحة احترافية:** للدفاتر الكبيرة، فكر في زيادة `MemorySetting` في Aspose.Cells لتجنب `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## مثال كامل جاهز للتنفيذ (نسخ‑لصق) + +فيما يلي البرنامج الكامل، جاهز للترجمة. استبدل `YOUR_DIRECTORY` بالمسار الفعلي للمجلد على جهازك. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +النتيجة المتوقعة: مستند Word (`ChartsInWord.docx`) يحتوي على جميع أوراق العمل كجداول وكل رسم بياني كصورة مدمجة وعالية الدقة. افتحه في Word وسترى التخطيط البصري الدقيق كما كان في Excel. + +--- + +## الأسئلة المتكررة (FAQ) + +**س: هل يمكنني تحويل عدة ملفات Excel في حلقة؟** +**ج:** بالتأكيد. ضع منطق التحويل داخل حلقة `foreach (var file in Directory.GetFiles(...))` وأعد استخدام نمط كائن `Workbook` نفسه. + +**س: هل يعمل هذا أيضًا مع ملفات `.xls`؟** +**ج:** نعم—Aspose.Cells يدعم الصيغ القديمة. فقط غير امتداد المصدر؛ نفس استدعاء `SaveFormat.Docx` ينطبق. + +**س: ماذا لو أردت الحفاظ على الصيغ عند التحويل؟** +**ج:** Word لا يدعم صيغ Excel بشكل أصلي. التحويل يحول الصيغ إلى قيمها المحسوبة. إذا كنت تحتاج إلى حسابات حية، فكر في تضمين دفتر العمل ككائن OLE بدلاً من ذلك. + +**س: هل هناك طريقة للتحكم في دقة صورة الرسوم البيانية؟** +**ج:** استخدم `ImageOrPrintOptions` قبل الحفظ: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## إضافي: تضمين رسوم Excel مباشرة في Word (ما وراء Save Excel as Docx) + +إذا كنت تفضل أن يبقى الرسم قابلًا للتحرير في Word، يمكنك تضمين ورقة Excel بالكامل ككائن OLE: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +هذه التقنية *embed excel charts* ككائنات حية، مما يسمح للمستخدمين النهائيين بالنقر المزدوج لتحريرها في Excel مباشرة من Word. إنها بديل مفيد عندما تحتاج إلى تفاعل. + +--- + +## الخلاصة + +أصبح لديك الآن حل شامل من البداية إلى النهاية لـ **save Excel as docx** باستخدام C#. غطى الدرس تحميل دفتر العمل، التعديلات الاختيارية، عملية الحفظ الفعلية، خطوات التحقق، وحتى نظرة سريعة على تضمين الرسوم لسيناريوهات قابلة للتحرير. باتباع الشيفرة أعلاه يمكنك **تحويل Excel إلى Word**، الحفاظ على كل رسم، ومعالجة الملفات الكبيرة بسلاسة. + +هل أنت مستعد للتحدي التالي؟ جرّب أتمتة تحويل دفعات، دمج هذه المنطق في API ASP.NET Core، أو استكشف **convert Excel to docx** للوحة تحكم متعددة الأوراق. المهارات التي اكتسبتها الآن هي أساس لأي مشروع أتمتة مستندات. + +هل لديك أسئلة أو دفتر عمل صعب يرفض التحويل؟ اترك تعليقًا، وسنحل المشكلة معًا. برمجة سعيدة! + +![مخطط يوضح تدفق دفتر Excel إلى ملف Word DOCX – توضيح عملية حفظ Excel كـ docx](https://example.com/images/save-excel-as-docx.png "سير عمل حفظ Excel كـ Docx") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..3767eedf4e 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-add-custom-property-in-c/) +تعلم خطوة بخطوة حفظ ملفات XLSB وإضافة خصائص مخصصة عبر Aspose.Cells لـ .NET باستخدام C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/arabic/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..ffbcb6d8db --- /dev/null +++ b/cells/arabic/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,258 @@ +--- +category: general +date: 2026-03-21 +description: تعلم كيفية حفظ ملفات xlsb في C# مع إضافة خاصية مخصصة مثل ProjectId. يوضح + هذا الدليل كيفية إنشاء مصنف Excel، إضافة الخاصية المخصصة، والتحقق منها. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: ar +og_description: اكتشف كيفية حفظ ملفات xlsb وإضافة خاصية مخصصة مثل ProjectId باستخدام C#. + دليل خطوة بخطوة مع الشيفرة الكاملة. +og_title: كيفية حفظ XLSB – إضافة خاصية مخصصة في C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: كيفية حفظ ملف XLSB – إضافة خاصية مخصصة في C# +url: /ar/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية حفظ XLSB – إضافة خاصية مخصصة في C# + +هل تساءلت يومًا **كيفية حفظ xlsb** الملفات مع تضمين قطعة من البيانات الوصفية داخلها؟ ربما تكون تبني محرك تقارير يحتاج إلى معرف ProjectId مخفي، أو ربما تريد فقط وضع علامة على أوراق العمل لمعالجة لاحقة. **كيفية حفظ xlsb** ليست علم صواريخ، لكن دمجها مع خاصية مخصصة يضيف لمسة بسيطة يتغاضى عنها كثير من المطورين. + +في هذا الدرس سنستعرض إنشاء مصنف Excel، إضافة خاصية مخصصة (نعم، *add custom property*)، حفظ الملف كمصنف **XLSB** ثنائي، وأخيرًا تحميله مرة أخرى لإثبات بقاء الخاصية. على طول الطريق سنتطرق أيضًا إلى **كيفية إضافة خاصية مخصصة** مثل قيمة ProjectId، بحيث تحصل على نمط قابل لإعادة الاستخدام في المشاريع المستقبلية. + +> **نصيحة احترافية:** إذا كنت تستخدم مكتبة Aspose.Cells بالفعل (الكود أدناه يفعل ذلك)، ستحصل على دعم أصلي للخصائص المخصصة دون أي مشاكل في COM interop. + +--- + +## المتطلبات المسبقة + +- .NET 6+ (أو .NET Framework 4.6+). +- Aspose.Cells for .NET – تثبيت عبر NuGet: `Install-Package Aspose.Cells`. +- معرفة أساسية بـ C# – لا شيء معقد، فقط بضع عبارات `using`. + +هذا كل شيء. لا تحتاج إلى تثبيت Office، ولا إلى interop، فقط كود مُدار نقي. + +## الخطوة 1: كيفية حفظ XLSB – إنشاء مصنف Excel + +أول شيء تحتاج إلى القيام به هو إنشاء كائن مصنف جديد. فكر فيه كفتح ملف Excel فارغ يعيش فقط في الذاكرة حتى تقرر كتابته إلى القرص. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +لماذا نبدأ بمصنف؟ لأن **create excel workbook** هو الأساس لأي تعديل لاحق—سواء أضفت صيغًا، رسومًا بيانية، أو خصائص مخصصة. فئة `Workbook` تمثل الملف بأكمله، بينما توفر `Worksheets` الوصول إلى الأوراق الفردية. + +## الخطوة 2: إضافة خاصية مخصصة إلى ورقة العمل + +الآن يأتي الجزء الممتع—**add custom property**. في Aspose.Cells يمكنك إرفاق خاصية مباشرةً إلى ورقة العمل (أو إلى المصنف نفسه). هنا سنخزن معرف ProjectId رقمي يمكن للخدمات اللاحقة قراءته دون لمس الخلايا الظاهرة. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**كيفية إضافة خاصية مخصصة**؟ فقط استدعِ `CustomProperties.Add(name, value)`. الـ API يتعامل تلقائيًا مع XML الداخلي، لذا لا تحتاج للقلق بشأن التفاصيل منخفضة المستوى. هذه هي الطريقة الأكثر أمانًا لتضمين بيانات وصفية غير مرئية للمستخدم النهائي. + +## الخطوة 3: حفظ المصنف كـ XLSB + +مع جاهزية المصنف وإرفاق الخاصية المخصصة، حان الوقت لـ **how to save xlsb**. تنسيق XLSB يخزن البيانات في تمثيل ثنائي، عادةً ما يكون أصغر وأسرع في الفتح مقارنةً بـ XLSX الكلاسيكي. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +الحفظ كـ XLSB بسيط مثل تمرير `SaveFormat.Xlsb` إلى طريقة `Save`. إذا كنت تتساءل ما إذا كان سيزيل الخاصية المخصصة—اطمئن، Aspose.Cells يحافظ على خصائص مستوى المصنف ومستوى ورقة العمل في الملف الثنائي. + +## الخطوة 4: التحقق من الخاصية المخصصة + +عادة جيدة هي إعادة تحميل الملف والتأكد من بقاء الخاصية بعد الجولة. هذا أيضًا يوضح **كيفية إضافة خاصية مخصصة** لاحقًا إذا احتجت لتحديثها. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +إذا طبع الطرفية `12345`، فقد نجحت في **how to save xlsb** *و* **add project id** في خطوة واحدة. الخاصية تعيش داخل البيانات الوصفية الداخلية للملف، غير مرئية للواجهة لكن قابلة للقراءة تمامًا عبر الكود. + +## نصائح إضافية: إضافة خصائص متعددة وحالات الحافة + +### إضافة أكثر من خاصية واحدة + +يمكنك تجميع عدد غير محدود من الخصائص كما تشاء: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### تحديث خاصية موجودة + +إذا كانت الخاصية موجودة بالفعل، فقط عيّن قيمة جديدة: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### التعامل مع الخصائص المفقودة + +محاولة قراءة خاصية غير موجودة تُلقي استثناء `KeyNotFoundException`. احمِ نفسك من ذلك: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### التوافق عبر الإصدارات + +يعمل XLSB على Excel 2007 + وعلى نسخة الويب من Excel. ومع ذلك، الإصدارات القديمة من Office (< 2007) لا يمكنها فتح ملفات XLSB. إذا كنت تحتاج إلى توافق أوسع، فكر في حفظ نسخة ثانية كـ XLSX. + +### اعتبارات الأداء + +ملفات XLSB الثنائية عادةً أصغر بنسبة 30‑50 % مقارنةً بـ XLSX، وتُحمَّل أسرع. بالنسبة لمجموعات البيانات الكبيرة (مئات الآلاف من الصفوف)، يمكن أن يكون تحسين السرعة ملحوظًا. + +## مثال كامل يعمل + +فيما يلي البرنامج الكامل الذي يمكنك نسخه ولصقه في مشروع وحدة تحكم. يتضمن جميع الخطوات، معالجة الأخطاء، والتعليقات التي تحتاجها لتبدأ العمل فورًا. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**الناتج المتوقع** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +إذا رأيت ما سبق، فقد أتقنت **how to save xlsb**، **add custom property**، و **add project id**—كل ذلك في مقتطف منظم وقابل لإعادة الاستخدام. + +## الأسئلة المتكررة + +**س: هل يعمل هذا مع .NET Core؟** +ج: بالتأكيد. Aspose.Cells متوافق مع .NET Standard، لذا يعمل نفس الكود على .NET 5/6/7 وعلى .NET Framework. + +**س: هل يمكنني إضافة خاصية مخصصة إلى كامل المصنف بدلاً من ورقة واحدة؟** +ج: نعم. استخدم `workbook.CustomProperties.Add("Key", value);` لإرفاقها على مستوى المصنف. + +**س: ماذا لو احتجت لتخزين سلسلة نصية طويلة (مثل JSON) كخاصية؟** +ج: الـ API يقبل سلاسل بأي طول، لكن ضع في اعتبارك أن الكتل الكبيرة قد تزيد من حجم الملف. للبيانات الضخمة، فكر في ورقة مخفية بدلاً من ذلك. + +**س: هل الخاصية المخصصة مرئية في واجهة Excel؟** +ج: ليست مباشرة. يمكن للمستخدمين رؤيتها عبر **File → Info → Properties → Advanced Properties → Custom**، لكنها لن تظهر في الجدول. + +## الخلاصة + +لقد غطينا **how to save xlsb** الملفات في C# مع **إضافة خاصية مخصصة** مثل ProjectId. باتباع نمط الخطوة‑ب‑خطوة—**create excel workbook**، **add custom property**، **save as XLSB**، و **verify**—أصبح لديك مرجع قوي وجدير بالاستشهاد يعمل لكل من محركات البحث ومساعدي الذكاء الاصطناعي. + +بعد ذلك، قد تستكشف: + +- **How to add custom property** إلى عدة أوراق عمل داخل حلقة. +- تصدير البيانات من DataTable إلى المصنف قبل الحفظ. +- تشفير ملف XLSB لمزيد من الأمان. + +لا تتردد في التجربة، تعديل أسماء الخصائص، أو استبدال التنسيق الثنائي بـ XLSX إذا كنت تحتاج إلى توافق أوسع. هل لديك سيناريو معقد؟ اترك تعليقًا، وسنحل المشكلة معًا. برمجة سعيدة! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/arabic/net/excel-autofilter-validation/_index.md index 7e72d04665..9021b7f33b 100644 --- a/cells/arabic/net/excel-autofilter-validation/_index.md +++ b/cells/arabic/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ تعرف على كيفية تصفية صفوف Excel تلقائيًا باستخدام Aspose.Cells في .NET بسهولة باستخدام هذا الدليل الشامل خطوة بخطوة. ### [التحقق من صحة البيانات العشرية في Excel](./decimal-data-validation-in-excel/) اكتشف كيفية تطبيق التحقق من صحة البيانات العشرية في Excel باستخدام Aspose.Cells لـ .NET من خلال دليلنا السهل. حسّن سلامة البيانات بسهولة. +### [إزالة AutoFilter من Excel – دليل C# كامل](./remove-autofilter-from-excel-complete-c-guide/) +تعلم كيفية إزالة AutoFilter من ملفات Excel باستخدام Aspose.Cells في .NET عبر دليل شامل خطوة بخطوة. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/arabic/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..8a0ac03135 --- /dev/null +++ b/cells/arabic/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-03-21 +description: تعلم كيفية إزالة AutoFilter من Excel باستخدام C#. يوضح هذا الدليل خطوة + بخطوة أيضًا كيفية حذف AutoFilter، وإيقاف تشغيل AutoFilter في Excel، وإزالة تصفية + جدول Excel. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: ar +og_description: إزالة AutoFilter من Excel باستخدام C#. يوضح هذا الدرس كيفية حذف AutoFilter، + إيقاف تشغيل AutoFilter في Excel، وإزالة تصفية جدول Excel ببضع أسطر من الشيفرة. +og_title: إزالة التصفية التلقائية من Excel – دليل C# الكامل +tags: +- C# +- Aspose.Cells +- Excel automation +title: إزالة AutoFilter من Excel – الدليل الكامل للغة C# +url: /ar/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إزالة AutoFilter من Excel – دليل C# كامل + +هل احتجت يوماً إلى **remove AutoFilter from Excel** لكن لم تكن متأكدًا من أي استدعاء API يعطلها فعليًا؟ لست وحدك. في العديد من خطوط تقارير البيانات، واجهة الفلتر تعيق المعالجة اللاحقة، لذا فإن إزالتها بالكامل هي متطلب شائع. في هذا الدرس سنستعرض حلاً مختصرًا وجاهزًا للإنتاج لا يوضح فقط **how to delete AutoFilter**، بل يشرح أيضًا **turn off AutoFilter Excel** وأنماط الفلاتر، وكيفية **clear Excel table filter** بالكامل. + +> **ما ستحصل عليه:** برنامج C# جاهز للتنفيذ يقوم بتحميل مصنف موجود، يزيل الفلتر من الجدول الأول، ويحفظ نسخة جديدة دون أي عناصر واجهة مستخدم متبقية. + +## المتطلبات المسبقة + +- .NET 6+ (or .NET Framework 4.7.2+) +- حزمة NuGet **Aspose.Cells** (API التي نستخدمها في الكود) +- مصنف مثال (`TableWithFilter.xlsx`) يحتوي بالفعل على جدول مع تطبيق AutoFilter +- فهم أساسي لصياغة C# (لا حاجة لمعرفة عميقة بداخل Excel) + +إذا كان لديك هذه المتطلبات، لنبدأ. + +--- + +## الخطوة 1 – تثبيت Aspose.Cells وإعداد المشروع + +قبل تشغيل أي كود، تحتاج إلى المكتبة التي توفر لنا الفئات `Workbook` و `Worksheet` و `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **نصيحة احترافية:** استخدم نسخة التقييم المجانية للاختبار؛ فقط تذكر ضبط مفتاح الترخيص قبل نشره في الإنتاج. + +### لماذا هذا مهم +Aspose.Cells يج abstracts التعامل منخفض المستوى مع OOXML، لذا يمكننا تعديل الجداول والفلاتر والأنماط دون الحاجة إلى تحليل XML بأنفسنا. لهذا السبب تصبح مهام **remove autofilter from excel** سطرًا واحدًا بدلاً من مجموعة من التلاعبات في XML. + +## الخطوة 2 – تحميل المصنف الذي يحتوي على الجدول + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +كائن `Workbook` يمثل ملف Excel بالكامل. تحميله أولاً يضمن أن لدينا نسخة نظيفة في الذاكرة للعمل عليها، وهو أمر حاسم عندما تقوم لاحقًا **clear excel table filter** دون التأثير على الأوراق الأخرى. + +## الخطوة 3 – الحصول على ورقة العمل والجدول المستهدف + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +الـ **ListObject** هو مصطلح Aspose للجدول في Excel. حتى إذا كانت ورقتك تحتوي على جداول متعددة، يمكنك التكرار عبر `worksheet.ListObjects` وتطبيق نفس المنطق على كل منها. هذه المرونة تجيب على سؤال “ماذا لو كان لدي عدة جداول؟” الذي يطرحه العديد من المطورين. + +## الخطوة 4 – إزالة AutoFilter من الجدول + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +ضبط `AutoFilter` إلى `null` **يزيل كائن الفلتر بالكامل**، وهو أكثر الطرق موثوقية لـ **how to delete autofilter**. الخاصية البديلة `ShowAutoFilter` تخفي الواجهة فقط لكنها تترك محرك الفلتر نشطًا—مفيد إذا كنت تريد فقط **turn off autofilter excel** بصريًا مع الحفاظ على المعايير الأساسية. + +> **حالة خاصة:** إذا لم يكن للجدول AutoFilter مطبقًا، فإن `table.AutoFilter` سيكون بالفعل `null`. السطر أعلاه آمن؛ فهو لا يفعل شيئًا. + +## الخطوة 5 – حفظ المصنف المعدل + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +الحفظ إلى ملف جديد يحافظ على الأصل سليمًا—وهي أفضل ممارسة عند أتمتة تحويلات Excel. بعد تشغيل البرنامج، افتح `NoAutoFilter.xlsx`؛ سترى الجدول بدون أي قوائم منسدلة للفلتر، مما يؤكد نجاح عملية **remove excel table filter**. + +## التحقق من النتيجة – ما المتوقع + +1. **افتح `NoAutoFilter.xlsx`** في Excel. +2. **حدد الجدول** – يجب أن تختفي أيقونات القمع الصغيرة بجوار رؤوس الأعمدة. +3. **تحقق من الأوراق الأخرى** – ستبقى دون تغيير، مما يثبت أننا قمنا فقط **clear excel table filter** على الورقة المستهدفة. + +إذا ما زالت الأيقونات موجودة، تحقق مرة أخرى من أنك استهدفت الفهرس الصحيح لـ `ListObject`. تذكر أن جداول Excel في Aspose تبدأ من الصفر، لذا `ListObjects[0]` هو أول جدول في الورقة. + +## التعامل مع جداول أو أوراق عمل متعددة + +أحيانًا تحتاج إلى **remove autofilter from excel** في مصنفات تحتوي على عدة جداول عبر أوراق مختلفة. إليك امتداد سريع: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +هذه الحلقة تضمن أن **turn off autofilter excel** في كل مكان، مما يزيل أي فلاتر مخفية قد تعيق استيراد البيانات اللاحقة. + +## الأخطاء الشائعة وكيفية تجنبها + +| المشكلة | سبب حدوثها | الحل | +|---------|------------|------| +| **الفلاتر لا تزال موجودة بعد الحفظ** | استخدام `ShowAutoFilter = false` يخفي الواجهة فقط. | استخدم `table.AutoFilter = null` لحذفها فعليًا. | +| **فهرس الجدول غير صحيح** | الافتراض أن أول جدول هو المطلوب. | افحص `worksheet.ListObjects.Count` واستخدم أسماء ذات معنى (`tbl.Name`). | +| **غياب الترخيص** | نسخة التقييم قد تُدرج علامات مائية. | سجّل الترخيص مبكرًا: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **الملف مقفل** | لا يزال Excel يفتح الملف المصدر. | تأكد من إغلاق المصنف في Excel قبل تشغيل السكربت. | + +## مكافأة: إضافة AutoFilter مرة أخرى (إذا غيرت رأيك) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +وجود العملية العكسية جاهزة يجعل الدرس محطة شاملة لكل من سيناريوهات **remove autofilter from excel** و **how to delete autofilter**. + +## مثال كامل جاهز للتنفيذ (نسخ‑لصق) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +تشغيل الكود أعلاه سيقوم **remove autofilter from excel** لكل جدول في المصنف، مما يمنحك صفحة نظيفة للمعالجة اللاحقة. + +## الخلاصة + +لقد غطينا الآن كل ما تحتاجه لـ **remove autofilter from excel** باستخدام C#. من تثبيت Aspose.Cells، تحميل المصنف، تحديد الجدول، حذف الفلتر فعليًا، إلى حفظ الملف النظيف—كل خطوة تم شرحها مع السبب وراءها. الآن تعرف كيف تقوم بـ **how to delete autofilter**، **remove excel table filter**، **turn off autofilter excel**، و **clear excel table filter** في مقتطف واحد قابل لإعادة الاستخدام. + +هل أنت مستعد للتحدي التالي؟ جرّب أتمتة إضافة التنسيق الشرطي، أو استكشف كيفية **add an AutoFilter back** برمجيًا. كلا الموضوعين يبنيان مباشرةً على المفاهيم التي غطيناها وستجعل صندوق أدوات أتمتة Excel الخاص بك أكثر غنى. + +هل لديك أسئلة، أو لاحظت سيناريو لم نغطِه؟ اترك تعليقًا أدناه—برمجة سعيدة! + +![Screenshot showing an Excel sheet without any filter dropdowns – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/arabic/net/excel-comment-annotation/_index.md index d814c478c4..6ceae2b13e 100644 --- a/cells/arabic/net/excel-comment-annotation/_index.md +++ b/cells/arabic/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ تعرّف على كيفية إضافة تعليقات إلى الخلايا في Excel باستخدام Aspose.Cells لـ .NET. دليل خطوة بخطوة للمبتدئين لتحسين وظائف Excel. ### [تنسيق التعليقات - الخط واللون والمحاذاة](./format-comments-font-color-alignment/) اكتشف كيفية تنسيق تعليقات Excel بسهولة باستخدام Aspose.Cells لـ .NET. خصّص الخط والحجم والمحاذاة لتحسين جداول بياناتك. +### [إنشاء مصنف Excel بـ C# – إضافة وتعبئة التعليقات باستخدام العلامات الذكية](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +تعلم كيفية إنشاء ملف Excel وإضافة تعليقات وتعبئتها باستخدام العلامات الذكية في Aspose.Cells لـ .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/arabic/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..af9239b9e4 --- /dev/null +++ b/cells/arabic/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-21 +description: إنشاء مصنف Excel باستخدام C# وتعلم كيفية إضافة تعليق إلى Excel، وتعبئة + التعليق تلقائيًا باستخدام Smart Markers. دليل خطوة بخطوة للمطورين. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: ar +og_description: إنشاء مصنف إكسل باستخدام C# وإضافة تعليق بسرعة إلى إكسل، ثم ملء التعليق + باستخدام العلامات الذكية. دليل كامل مع الشيفرة. +og_title: إنشاء مصنف إكسل C# – إضافة وتعبئة التعليقات +tags: +- C# +- Excel automation +- Aspose.Cells +title: إنشاء مصنف Excel باستخدام C# – إضافة وتعبئة التعليقات باستخدام العلامات الذكية +url: /ar/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء مصنف Excel C# – إضافة وتعبئة التعليقات باستخدام Smart Markers + +هل احتجت يومًا إلى **create Excel workbook C#** وتساءلت كيف يمكنك تضمين تعليق يتحدث نفسه تلقائيًا؟ لست وحدك. في العديد من سيناريوهات التقارير تريد تعليق خلية يقول *“Created by Alice on 2024‑07‑15”* دون كتابة الاسم أو التاريخ يدويًا في كل مرة. + +في هذا الدرس سنوضح لك بالضبط **how to add comment to Excel**، ثم **how to fill comment** باستخدام Smart Markers من Aspose.Cells. في النهاية ستحصل على برنامج جاهز للتنفيذ ينشئ مصنفًا، يضيف تعليقًا ديناميكيًا، ويحفظ الملف—كل ذلك في بضع خطوات بسيطة. + +> **ما ستحصل عليه:** تطبيق كونسول C# كامل وقابل للترجمة، شرح لكل سطر، نصائح لتجنب الأخطاء الشائعة، وأفكار لتوسيع الحل. + +## المتطلبات المسبقة + +- .NET 6.0 SDK أو أحدث (الكود يعمل مع .NET Core و .NET Framework أيضًا) +- Visual Studio 2022 أو أي بيئة تطوير تفضّلها +- **Aspose.Cells for .NET** حزمة NuGet (`Install-Package Aspose.Cells`) – هذه المكتبة تدعم الفئات `Workbook` و `Worksheet` و `SmartMarkerProcessor` المستخدمة أدناه. +- إلمام أساسي بصياغة C# – إذا كتبت `Console.WriteLine` فأنت جاهز للبدء. + +الآن بعد أن أُنجزت الأساسيات، دعنا نغوص في التفاصيل. + +![Create Excel workbook C# example screenshot](excel-workbook.png "Create Excel workbook C# example") + +## الخطوة 1: تهيئة مصنف جديد – أساسيات إنشاء مصنف Excel C# + +أولًا نحتاج إلى كائن مصنف نظيف. فكر في `Workbook` كقماش فارغ؛ بدونها لا يمكنك وضع أي خلايا أو صفوف أو تعليقات. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**لماذا هذا مهم:** `Workbook` تنشئ تلقائيًا ورقة عمل افتراضية، لذا لا تحتاج إلى استدعاء `Add` إلا إذا كنت بحاجة إلى أوراق إضافية. الوصول إلى `Worksheets[0]` هو أسرع طريقة لبدء تعبئة البيانات. + +## الخطوة 2: إدراج تعليق باستخدام Smart Marker – كيفية إضافة تعليق مع الرموز + +بعد ذلك نضع تعليقًا في الخلية **B2** يحتوي على رموز Smart Marker (`«UserName»` و `«CreatedDate»`). سيتم استبدال هذه الرموز لاحقًا بالقيم الفعلية. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**شرح:** +- `CreateComment()` ينشئ كائن التعليق إذا لم يكن موجودًا؛ وإلا فإنه يُعيد الكائن الموجود. +- خاصية `Note` تحتفظ بالنص الظاهر. من خلال وضع العناصر النائبة داخل `« »` نخبر Aspose.Cells بأنها **Smart Markers** – عناصر نائبة يمكن استبدالها دفعة واحدة. + +> **نصيحة احترافية:** إذا كنت بحاجة إلى تعليق متعدد الأسطر، استخدم `\n` داخل السلسلة، مثال: `"Line1\nLine2"`. + +## الخطوة 3: إعداد كائن البيانات – كيفية تعبئة التعليق ديناميكيًا + +تحتاج Smart Markers إلى مصدر بيانات. في C# أسهل طريقة هي النوع المجهول (anonymous type) الذي يطابق أسماء العناصر النائبة. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**لماذا النوع المجهول؟** +إنه خفيف الوزن، لا يتطلب ملف **class** إضافي، ويتطابق أسماء الخصائص (`UserName`, `CreatedDate`) تمامًا مع أسماء الرموز. إذا كنت تفضّل نموذجًا قويًا النوع، فقط أنشئ فئة بنفس الخصائص. + +## الخطوة 4: معالجة Smart Markers – كيفية تعبئة التعليق باستخدام كائن البيانات + +الآن يحدث السحر. يقوم `SmartMarkerProcessor` بمسح المصنف بحثًا عن أي رموز `«…»` ويستبدلها بالقيم من `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**ما الذي يحدث خلف الكواليس؟** +`SmartMarkerProcessor` يتجول عبر كل خلية، تعليق، رأس، إلخ، يبحث عن نمط `«Token»`. عندما يجد واحدًا، يستخدم الـ reflection لقراءة الخاصية المطابقة من `markerData` ويكتب القيمة مرة أخرى. لا حاجة إلى حلقات يدوية. + +## الخطوة 5: حفظ المصنف – تعبئة تعليق Excel وحفظ الملف + +أخيرًا نكتب المصنف إلى القرص. الآن يظهر التعليق شيئًا مثل *“Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**التحقق من النتيجة:** افتح `CommentFilled.xlsx` في Excel، مرّر المؤشر فوق الخلية **B2**، وسترى التعليق مع اسم المستخدم الفعلي والطابع الزمني. لا حاجة لتغييرات إضافية في الكود للتشغيلات المستقبلية—فقط غيّر قيم `markerData`. + +--- + +## الاختلافات الشائعة وحالات الحافة + +### استخدام تنسيق تاريخ مخصص + +إذا كنت تريد التاريخ بتنسيق `yyyy‑MM‑dd`، عدّل كائن البيانات: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### إضافة تعليقات متعددة + +يمكنك تكرار **الخطوة 2** لخلايا أخرى. كل تعليق يمكن أن يحتوي على مجموعة خاصة من الرموز، أو يشارك نفس الرموز إذا كانت المعلومات عامة. + +### العمل مع مصنفات موجودة + +بدلاً من `new Workbook()`، حمّل ملفًا موجودًا: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +بقية الخطوات تبقى كما هي—Smart Markers تعمل على الملفات الجديدة والموجودة على حد سواء. + +### معالجة القيم الفارغة + +إذا كان من الممكن أن يكون الرمز مفقودًا، ضع الخاصية في نوع قابل للـ null أو قدم قيمة احتياطية: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +المعالج سيُدرج *“Unknown”* عندما يكون المصدر `null`. + +--- + +## مثال كامل جاهز للتنفيذ (نسخ‑لصق) + +فيما يلي **البرنامج الكامل** الذي يمكنك وضعه في مشروع تطبيق كونسول وتشغيله فورًا (فقط استبدل `YOUR_DIRECTORY` بمسار مجلد حقيقي). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +شغّل البرنامج، افتح الملف المُنشأ، وسترى التعليق الديناميكي في الخلية **B2**. سهل، أليس كذلك؟ + +--- + +## الأسئلة المتكررة (FAQ) + +**س: هل يعمل هذا مع .NET Framework 4.7؟** +ج: بالتأكيد. Aspose.Cells يدعم .NET Framework 4.0+ و .NET Core/5/6/7. فقط قم بالإشارة إلى DLL أو حزمة NuGet المناسبة. + +**س: هل يمكنني استخدام هذا النهج للتحقق من صحة البيانات أو التنسيق الشرطي؟** +ج: Smart Markers تُستخدم أساسًا لإدخال القيم في الخلايا، التعليقات، الرؤوس، والتذييلات. للتنسيق الشرطي ستظل تستخدم واجهات برمجة `Style` العادية. + +**س: ماذا لو احتجت لإضافة تعليق إلى ورقة عمل **مختلفة**؟** +ج: استخرج ورقة العمل المستهدفة (`workbook.Worksheets["MySheet"]`) وكرر **الخطوة 2** على خلايا تلك الورقة. + +--- + +## الخطوات التالية والمواضيع ذات الصلة + +- **How to add comment to Excel** برمجيًا لعدة خلايا (التكرار عبر نطاق). +- **Fill Excel comment** ببيانات من قاعدة بيانات (استخدم `DataTable` كمصدر بيانات لـ Smart Markers). +- استكشف **Smart Marker arrays** لإنشاء جداول تلقائيًا. +- تعلم حول **Aspose.Cells styling** لتنسيق خط التعليق، لونه، وحجمه. + +جرّب المقاطع البرمجية، استبدل مصدر البيانات، وستتمكن بسرعة من إتقان **how to fill comment** في أي سيناريو أتمتة Excel. + +--- + +### الخلاصة + +لقد استعرضنا الآن العملية الكاملة لـ **create excel workbook c#**، **add comment to excel**، و **fill excel comment** باستخدام 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-custom-number-date-formatting/_index.md b/cells/arabic/net/excel-custom-number-date-formatting/_index.md index 493c54d8e0..2e6372e64f 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,8 @@ تعرف على كيفية التحقق من قيم خلايا Excel مقابل تنسيقات الأرقام المخصصة باستخدام Aspose.Cells لـ .NET من خلال هذا البرنامج التعليمي خطوة بخطوة. ### [تحديد حقول الصيغة عند استيراد البيانات إلى ورقة Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) تعرف على كيفية استيراد البيانات إلى جداول Excel باستخدام حقول الصيغة المحددة باستخدام Aspose.Cells لـ .NET في هذا البرنامج التعليمي المفصل. +### [تعيين تنسيق مخصص للخلية في C# – دليل كامل لكتابة وقراءة التواريخ في Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +تعلم كيفية تعيين تنسيق مخصص للخلية وكتابة وقراءة التواريخ في Excel باستخدام Aspose.Cells لـ .NET خطوة بخطوة. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/arabic/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..7ba2b8737a --- /dev/null +++ b/cells/arabic/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,199 @@ +--- +category: general +date: 2026-03-21 +description: تعيين تنسيق مخصص للخلية في C# وتعلم كيفية كتابة التاريخ إلى Excel، وتطبيق + تنسيق تاريخ مخصص، وقراءة DateTime من Excel، وإنشاء ورقة عمل بسرعة. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: ar +og_description: تعيين تنسيق مخصص للخلية في C# لكتابة التاريخ إلى Excel، تطبيق تنسيق + تاريخ مخصص، قراءة DateTime من Excel، وإنشاء ورقة عمل في المصنف بسهولة. +og_title: تعيين تنسيق مخصص للخلية في C# – كتابة وقراءة التواريخ في Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: تعيين تنسيق مخصص للخلية في C# – دليل شامل لكتابة وقراءة التواريخ في Excel +url: /ar/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تعيين تنسيق مخصص للخلية – كتابة وقراءة التواريخ في Excel باستخدام C# + +## ما ستتعلمه + +- كيفية **إنشاء ورقة عمل** برمجياً. +- الخطوات الدقيقة **للكتابة إلى Excel** باستخدام سلسلة مخصصة للمنطقة. +- كيفية **تطبيق تنسيق تاريخ مخصص** (بما في ذلك ترميز العصر الياباني). +- الطريقة **لقراءة DateTime من Excel** وإعادتها إلى كائن `DateTime`. +- نصائح، ومخاطر، وتنوعات قد تواجهها عند التعامل مع تواريخ Excel. + +لا حاجة إلى وثائق خارجية — كل ما تحتاجه موجود هنا. + +## المتطلبات المسبقة + +- .NET 6.0 أو أحدث (الكود يعمل أيضاً على .NET Framework 4.7+). +- Aspose.Cells لـ .NET مثبت عبر NuGet (`Install-Package Aspose.Cells`). +- فهم أساسي لصياغة C# — لا شيء معقد. + +> **نصيحة احترافية:** إذا كنت تستخدم Visual Studio، فعّل *nullable reference types* لاكتشاف الأخطاء الدقيقة مبكراً. + +## الخطوة 1: إنشاء مصنف وورقة عمل + +أولاً وقبل كل شيء: تحتاج إلى كائن مصنف يمثل ملف Excel، وورقة عمل حيث ستُخزن البيانات. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*لماذا هذا مهم:* فئة `Workbook` هي نقطة الدخول لجميع عمليات Excel. إن إنشاؤها في الذاكرة يعني أنك لا تتعامل مع نظام الملفات إلا عند الحفظ صراحةً، مما يجعل العملية سريعة ومناسبة للاختبار. + +## الخطوة 2: كتابة التاريخ إلى Excel + +بعد ذلك، سنضع سلسلة تاريخ العصر الياباني (`"R02-04-01"`) في الخلية **A1**. السلسلة تحاكي عصر ريوا (السنة 2، أبريل 1). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*ما يحدث:* `PutValue` يخزن السلسلة الخام. ستحاول Aspose.Cells لاحقاً تحليلها بناءً على نمط الخلية. إذا تخطيت هذه الخطوة وكتبت `DateTime` مباشرةً، ستفقد معلومات العصر التي تريد عرضها. + +## الخطوة 3: تطبيق تنسيق رقم التاريخ المدمج (ID 14) + +Excel يحتوي على تنسيق تاريخ مدمج بالمعرف 14 (`mm-dd-yy`). تطبيقه يخبر المحرك أن الخلية **تحتوي على تاريخ**، وليس مجرد نص. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*لماذا نستخدم المعرف 14؟* إنه تنسيق “التاريخ القصير” العالمي الذي يضمن أن Excel يتعامل مع المحتوى كقيمة تاريخ، وهو شرط أساسي لتعمل أي تنسيق مخصص بشكل صحيح. + +## الخطوة 4: تعيين تنسيق مخصص لعرض ترميز العصر الياباني + +الآن للجزء الممتع: نخبر Excel بعرض التاريخ باستخدام تنسيق العصر الياباني. السلسلة المخصصة `[$-ja-JP]ggge年m月d日` تقوم بذلك بالضبط. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*شرح:* +- `[$-ja-JP]` يجبر المنطقة على اليابانية. +- `ggg` هو اسم العصر (مثال: “R” لـ Reiwa). +- `e` هو سنة العصر. +- `年`، `月`، `日` هي أحرف يابانية حرفية للسنة، الشهر، اليوم. + +إذا كنت بحاجة إلى منطقة مختلفة، استبدل ببساطة `ja-JP` برمز الثقافة المناسب (مثال: `en-US`). + +## الخطوة 5: استرجاع قيمة DateTime المحللة + +أخيراً، لنقرأ **قيمة `DateTime` الفعلية** التي حللتها Excel من الخلية. هذا يثبت أن السلسلة تم تفسيرها بشكل صحيح. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*النتيجة:* يطبع الطرفية `Parsed DateTime: 2020-04-01`. رغم أننا أدخلنا سلسلة العصر الياباني، إلا أن Excel يخزن داخلياً التاريخ الميلادي، والذي يمكنك استخدامه للعمليات الحسابية أو المقارنات أو التصدير الإضافي. + +## الخطوة 6: حفظ المصنف (اختياري) + +إذا رغبت في رؤية المصنف المنسق في Excel، فقط احفظه على القرص. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +افتح الملف **JapaneseEraDate.xlsx** الذي تم إنشاؤه وسترى الخلية **A1** تعرض `R02年4月1日` (تنسيق العصر الياباني الدقيق الذي حددناه). + +![مثال على تعيين تنسيق مخصص للخلية](image-placeholder.png "خلية Excel تُظهر تاريخ العصر الياباني – تعيين تنسيق مخصص للخلية") + +## الاختلافات الشائعة وحالات الحافة + +### كتابة تنسيق تاريخ مختلف + +إذا كنت تفضل ISO‑8601 (`2020-04-01`) بدلاً من سلسلة العصر، فقط غيّر استدعاء `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### التعامل مع خلايا فارغة أو ذات قيمة Null + +عند قراءة تاريخ، احرص دائماً على التحقق من عدم وجود خلايا فارغة لتجنب `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### دعم عدة مناطق محلية + +يمكنك التكرار عبر قائمة من رموز الثقافة وتطبيقها ديناميكياً: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## نصائح احترافية وملاحظات + +- **دائمًا قم بتعيين تنسيق رقم مدمج أولاً** (`Style.Number`). بدون ذلك، يتعامل Excel مع الخلية كنص عادي ويتم تجاهل التنسيق المخصص. +- **رموز المناطق غير حساسة لحالة الأحرف**، لكن استخدام الصيغة القانونية (`ja-JP`) يجنب الالتباس. +- **الحفظ اختياري** للمعالجة في الذاكرة؛ يمكنك بث المصنف مباشرةً إلى استجابة ويب (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **رخص Aspose.Cells**: النسخة التجريبية المجانية تضيف علامة مائية. للإنتاج، تأكد من حصولك على رخصة صالحة لتجنب عقوبات الأداء. + +## ملخص + +لقد أوضحنا كيفية **تعيين تنسيق مخصص للخلية** في C# لعرض تواريخ العصر الياباني، وكيفية **كتابة التاريخ إلى Excel**، **تطبيق تنسيق تاريخ مخصص**، **قراءة DateTime من Excel**، و**إنشاء ورقة عمل** — كل ذلك في برنامج واحد مستقل. تظهر الكلمة المفتاحية الأساسية بشكل طبيعي طوال النص، بينما تُدمج الكلمات المفتاحية الثانوية في العناوين والنص، لتلبية معايير SEO ومعايير الاستشهاد بالذكاء الاصطناعي. + +## ما التالي؟ + +- استكشف **التنسيق الشرطي** لتسليط الضوء على التواريخ المتأخرة. +- اجمع هذه الطريقة مع **PivotTables** للتقارير الديناميكية. +- جرّب **قراءة ملفات CSV الكبيرة** وتحويلها إلى Excel باستخدام نفس منطق معالجة التواريخ. + +لا تتردد في تجربة مناطق مختلفة، أنماط مخصصة، أو حتى مناطق زمنية. إذا واجهت أي مشاكل، اترك تعليقًا أدناه — برمجة سعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/arabic/net/excel-data-export-retrieval/_index.md b/cells/arabic/net/excel-data-export-retrieval/_index.md index e16b5a09a8..4b6be61ef6 100644 --- a/cells/arabic/net/excel-data-export-retrieval/_index.md +++ b/cells/arabic/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ ### [استرجاع البيانات من الخلايا في Excel](./retrieve-data-from-cells-in-excel/) تعرف على كيفية استرداد البيانات من خلايا Excel باستخدام Aspose.Cells لـ .NET في هذا البرنامج التعليمي خطوة بخطوة، وهو مثالي للمبتدئين والمطورين ذوي الخبرة على حد سواء. +### [تصدير جدول بيانات Excel في C# – دليل شامل](./export-excel-data-table-in-c-complete-guide/) +تعرف على كيفية تصدير جداول بيانات Excel باستخدام C# و Aspose.Cells في دليل شامل خطوة بخطوة للمطورين. + +### [كيفية تصدير بيانات Excel في C# – دليل خطوة بخطوة](./how-to-export-excel-data-in-c-step-by-step-guide/) +تعرف على كيفية تصدير بيانات Excel باستخدام C# و Aspose.Cells في دليل شامل خطوة بخطوة للمطورين. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/arabic/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/arabic/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..764b1ae11c --- /dev/null +++ b/cells/arabic/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: تصدير جدول بيانات إكسل إلى DataTable مع رؤوس الأعمدة، تحديد عدد الخانات + العشرية، وتصدير أول 100 صف باستخدام Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: ar +og_description: تعلم كيفية تصدير جدول بيانات Excel إلى DataTable، مع الحفاظ على العناوين، + وتحديد عدد المنازل العشرية، واستخراج أول 100 صف في C#. +og_title: تصدير جدول بيانات إكسل في C# – دليل خطوة بخطوة +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: تصدير جدول بيانات إكسل في C# – دليل شامل +url: /ar/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تصدير جدول بيانات Excel – دليل C# كامل + +هل تحتاج إلى **export excel data table** من مصنف إلى `DataTable` في .NET؟ أنت في المكان الصحيح—هذا الدليل يوضح لك بالضبط كيفية القيام بذلك، مع الحفاظ على رؤوس الأعمدة، وتحديد عدد المنازل العشرية، واستخراج أول 100 صف فقط. + +إذا سبق لك أن حدقت في جدول بيانات وتساءلت، “كيف يمكنني إدخال هذا إلى تطبيقّي دون فقدان التنسيق؟” فأنت لست وحدك. خلال الدقائق القليلة القادمة سنحوّل هذا “ماذا‑لو” إلى حل ملموس يمكن نسخه ولصقه يعمل مع Aspose.Cells، مكتبة شهيرة لمعالجة Excel. + +## ما ستتعلمه + +- كيفية **export excel to datatable** باستخدام طريقة `ExportDataTable`. +- كيفية الحفاظ على أسماء الأعمدة الأصلية (`export excel with headers`). +- كيفية **limit decimal places excel** القيم عن طريق تكوين `ExportTableOptions`. +- كيفية استرجاع أول 100 صف بأمان فقط (`export first 100 rows`). + +بدون سكريبتات خارجية، بدون سلاسل سحرية—فقط C# عادي يمكنك إدراجه في أي مشروع .NET. + +## المتطلبات المسبقة + +| Requirement | Why it matters | +|-------------|----------------| +| .NET 6 or later (or .NET Framework 4.7+) | يدعم Aspose.Cells كلاهما، لكن أطر التشغيل الأحدث توفر واجهات برمجة تطبيقات جاهزة للـ async. | +| Aspose.Cells for .NET NuGet package | يوفر `Workbook`، `ExportTableOptions`، ومساعد `ExportDataTable`. | +| A sample Excel file (e.g., `Numbers.xlsx`) | مصدر البيانات التي ستقوم بتصديرها. | +| Basic C# knowledge | ستتبع الشيفرات المرفقة، ولا يتطلب الأمر أي شيء معقد. | + +إذا كان أي من ذلك غير مألوف لك، احصل على حزمة NuGet باستخدام `dotnet add package Aspose.Cells` وأنشئ ملف Excel صغير يحتوي على بعض الأرقام—بيانات الاختبار الخاصة بك. + +![مثال على تصدير جدول بيانات Excel](excel-data-table.png "لقطة شاشة لورقة Excel سيتم تصديرها إلى DataTable") + +## الخطوة 1: تحميل المصنف (export excel data table) + +أول شيء تحتاجه هو كائن `Workbook` يشير إلى ملف Excel الخاص بك. فكر فيه كفتح كتاب قبل أن تتمكن من قراءة أي فصول. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **لماذا هذا مهم:** تحميل المصنف يمنحك الوصول إلى أوراق العمل، الخلايا، والأنماط. إذا كان مسار الملف خاطئًا، سيطلق Aspose استثناء `FileNotFoundException`، لذا تحقق من الموقع مرة أخرى. + +## الخطوة 2: تكوين خيارات التصدير – limit decimal places excel + +بشكل افتراضي، يقوم Aspose بتصدير كل قيمة رقمية بدقة كاملة. غالبًا ما تحتاج فقط إلى عدد قليل من الأرقام المهمة، خاصةً عند إدخال البيانات إلى شبكة واجهة مستخدم أو API يتوقع أرقامًا مُقربة. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **نصيحة احترافية:** إذا كنت بحاجة إلى استراتيجية تقريب مختلفة (مثلاً، دائمًا تقريب للأعلى)، يمكنك معالجة `DataTable` بعد التصدير. إعداد `SignificantDigits` هو أسرع طريقة لـ **limit decimal places excel** دون كتابة حلقات إضافية. + +## الخطوة 3: تصدير النطاق المطلوب (export first 100 rows) + +الآن نخبر Aspose أي مجموعة من الخلايا نريد سحبها إلى `DataTable`. في هذا الدرس نأخذ أول 100 صف وأول 10 أعمدة، لكن يمكنك تعديل هذه الأعداد لتناسب حالتك. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **حالة حافة:** إذا كانت الورقة تحتوي على أقل من 100 صف، سيقوم Aspose ببساطة بتصدير ما هو موجود دون إلقاء خطأ. ومع ذلك، قد ترغب في الحماية من نطاق صغير غير متوقع: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## الخطوة 4: التحقق من النتيجة – طباعة سريعة إلى وحدة التحكم + +رؤية البيانات في أداة التصحيح أمر جيد، لكن طباعة بعض الصفوف إلى وحدة التحكم يؤكد أن **export excel to datatable** قد نجح فعلاً وأن المنازل العشرية قد تم تقليلها. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### النتيجة المتوقعة + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +لاحظ كيف أن الأعمدة الرقمية الآن تظهر أربعة أرقام مهمة فقط، مطابقة لإعداد `SignificantDigits = 4` الذي طبقناه سابقًا. + +## الخطوة 5: تجميع كل شيء – مثال كامل قابل للتنفيذ + +فيما يلي البرنامج الكامل الذي يمكنك نسخه‑ولصقه في تطبيق وحدة تحكم. يتضمن معالجة الأخطاء، الحماية الاختيارية لعدد الصفوف، وطريقة المساعدة للطباعة. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +شغّل البرنامج، وسترى أول 100 صف من ورقتك، مُقربة بشكل جميل، مع الحفاظ على أسماء الأعمدة. + +## أسئلة شائعة ومشكلات محتملة + +| Question | Answer | +|----------|--------| +| **ماذا لو كانت ورقتي تحتوي على خلايا مدمجة؟** | `ExportDataTable` يقوم بتسوية الخلايا المدمجة بأخذ قيمة الخلية العليا‑اليسرى. إذا كنت بحاجة إلى معالجة مخصصة، قم بفك الدمج أولاً أو اقرأ كائنات `Cell` الخام. | +| **هل يمكنني التصدير إلى `DataSet` بدلاً من ذلك؟** | نعم—استخدم `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/arabic/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..f8d102db37 --- /dev/null +++ b/cells/arabic/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,281 @@ +--- +category: general +date: 2026-03-21 +description: كيفية تصدير بيانات Excel مع أسماء الأعمدة، والحفاظ على تنسيق الأرقام، + وقراءة صفوف محددة باستخدام Aspose.Cells في C#. تعلم كيفية قراءة ورقة عمل Excel وتصدير + الصفوف المحددة بكفاءة. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: ar +og_description: كيفية تصدير بيانات Excel مع أسماء الأعمدة، والحفاظ على تنسيق الأرقام، + وقراءة صفوف محددة باستخدام Aspose.Cells. مثال كامل وقابل للتنفيذ لمطوري C#. +og_title: كيفية تصدير بيانات Excel في C# – دليل برمجي كامل +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: كيفية تصدير بيانات إكسل في C# – دليل خطوة بخطوة +url: /ar/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تصدير بيانات Excel في C# – دليل برمجة كامل + +هل تساءلت يومًا **how to export excel** البيانات دون فقدان التنسيق الأصلي؟ ربما جربت النسخ‑اللصق السريع وانتهى بك الأمر بتواريخ تظهر كـ “44728” أو بفقدان رؤوس الأعمدة. هذا محبط، أليس كذلك؟ في هذا الدرس ستتعرف على طريقة نظيفة وشاملة لقراءة ورقة عمل Excel، الحفاظ على تنسيق الأرقام، التصدير مع أسماء الأعمدة، وحتى اختيار الصفوف التي تحتاجها فقط. + +سنستخدم مكتبة Aspose.Cells لأنها تمنحك تحكمًا دقيقًا في خيارات التصدير. بنهاية هذا الدليل ستحصل على مقتطف قابل لإعادة الاستخدام يمكن إدراجه في أي مشروع .NET، وستفهم لماذا كل خيار مهم. لا حاجة إلى مستندات خارجية—كل ما تحتاجه موجود هنا. + +--- + +## ما ستتعلمه + +- **Read Excel worksheet** إلى الذاكرة باستخدام Aspose.Cells. +- **Export specific rows** (مثلاً الصفوف 0‑49) مع الحفاظ على أسماء الأعمدة. +- **Preserve number format** بحيث تبقى العملات والتواريخ والنسب المئوية كما هي. +- كيفية **export with column names** وتضمين تعليقات الخلايا إذا احتجت إليها. +- مثال كامل وجاهز للتنفيذ بلغة C# بالإضافة إلى نصائح حول المشكلات الشائعة. + +### المتطلبات المسبقة + +- .NET 6.0 أو أحدث (الكود يعمل أيضًا مع .NET Framework 4.6+). +- Aspose.Cells لـ .NET مثبت عبر NuGet (`Install-Package Aspose.Cells`). +- ملف Excel (`input.xlsx`) موجود في مجلد يمكنك الإشارة إليه. + +> **Pro tip:** إذا كنت على خط أنابيب CI، فكر في سحب حزمة NuGet من مصدر خاص لتجنب مفاجآت الترخيص. + +--- + +## الخطوة 1 – تثبيت Aspose.Cells وإضافة المساحات الاسمية + +أولاً، تأكد من وجود حزمة Aspose.Cells في مشروعك. افتح وحدة تحكم مدير الحزم Package Manager Console وشغّل: + +```powershell +Install-Package Aspose.Cells +``` + +ثم أضف توجيهات `using` المطلوبة في أعلى ملف C# الخاص بك: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +هذه الاستيرادات تمنحك الوصول إلى `Workbook` و `Worksheet` و `ExportTableOptions` و `DataTable`—وهي المكونات الأساسية لـ **reading an Excel worksheet** وتصدير البيانات. + +--- + +## الخطوة 2 – تحميل المصنف (Read the Excel File) + +الآن نقوم فعليًا بـ **read the Excel worksheet**. يأخذ مُنشئ `Workbook` مسار الملف، وستتعامل Aspose.Cells مع كل من صيغ `.xlsx` و `.xls` القديمة. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Why this matters:** تحميل المصنف مرة واحدة وإعادة استخدام كائن `Worksheet` نفسه أكثر كفاءة بكثير من فتح الملف مرارًا، خاصةً مع جداول البيانات الكبيرة. + +--- + +## الخطوة 3 – تكوين خيارات التصدير (Preserve Number Format & Column Names) + +هنا نخبر Aspose.Cells *كيف* يتم التصدير. تسمح لنا فئة `ExportTableOptions` بضبط الإخراج بدقة. سنفعّل ثلاث علامات: + +1. `ExportAsString = true` – يجبر كل خلية على أن تصبح سلسلة نصية، مما يضمن أن الأرقام تحتفظ بتمثيلها البصري. +2. `IncludeCellComments = true` – ينسخ أي تعليقات مرفقة بالخلايا (مفيد للتوثيق). +3. `PreserveNumberFormat = true` – يحتفظ بالتنسيق الأصلي للرقم (رموز العملة، أنماط التاريخ، إلخ). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Edge case:** إذا ضبطت `ExportAsString` على `false` لكن لا تزال تريد الحفاظ على تنسيقات الأرقام، قد تحصل على قيم رقمية خام (مثلاً 44728 لتاريخ). إبقاء العلامتين مفعّلتين يتجنب هذه المفاجأة. + +--- + +## الخطوة 4 – الحصول على الورقة الأولى (Read Excel Worksheet) + +معظم الملفات البسيطة تحتوي على البيانات التي تحتاجها في الورقة الأولى، لذا سنستخرجها حسب الفهرس. إذا كنت بحاجة إلى ورقة مختلفة، استبدل `0` بالفهرس الصفري المناسب أو استخدم `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Why it’s useful:** الوصول المباشر إلى كائن الورقة يمنحك تحكمًا كاملاً في مجموعة `Cells` الخاصة به، وهو أمر أساسي لـ **export specific rows** لاحقًا. + +--- + +## الخطوة 5 – تصدير نطاق من الخلايا (Export Specific Rows) + +الآن نصل إلى جوهر الدرس: تصدير الصفوف 0‑49 والأعمدة 0‑4 (أي أول 50 صفًا وأول خمسة أعمدة) إلى `DataTable`. سنطلب أيضًا من Aspose.Cells تضمين أسماء الأعمدة كأول صف في `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### ما يفعله هذا + +- **`startRow: 0`** – يبدأ من أعلى الورقة. +- **`totalRows: 50`** – يلتقط أول 50 صفًا (أي **export specific rows**). +- **`totalColumns: 5`** – يحدّ التصدير إلى أول خمسة أعمدة. +- **`includeColumnNames: true`** – يضمن أن رؤوس أعمدة `DataTable` تتطابق مع صف رأس Excel، مما يلبي متطلب **export with column names**. +- **`exportOptions`** – يطبق الإعدادات من الخطوة 3، بحيث تبقى القيم الرقمية تظهر كـ “$1,234.56” بدلاً من “1234.56”. + +--- + +## الخطوة 6 – التحقق من التصدير (What the Result Looks Like) + +لنطبع أول بضعة صفوف إلى وحدة التحكم حتى تتمكن من رؤية أن التنسيق بقي. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**المخرجات المتوقعة (مثال):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +لاحظ كيف تظهر التواريخ بصيغة `MM/dd/yyyy` والعملات تحتفظ برمز `$`—بفضل **preserve number format**. + +--- + +## المشكلات الشائعة وكيفية تجنبها + +| المشكلة | لماذا يحدث | الحل | +|-------|----------------|-----| +| Dates turn into large numbers | `ExportAsString` left `false` | Keep `ExportAsString = true` or convert cells manually | +| Missing column headers | `includeColumnNames` set to `false` | Set it to `true` when you need **export with column names** | +| Comments disappear | `IncludeCellComments` not enabled | Turn on `IncludeCellComments` in `ExportTableOptions` | +| Exporting the wrong sheet | Using `Worksheets[0]` on a multi‑sheet file | Specify the sheet name: `workbook.Worksheets["Data"]` | +| Out‑of‑range exception | `totalRows` exceeds actual rows | Use `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## إضافي: تصدير الورقة بالكامل مع الحفاظ على التنسيقات + +إذا قررت لاحقًا أنك بحاجة إلى تصدير الورقة بأكملها، ما عليك سوى استبدال `totalRows` و `totalColumns` بأبعاد الورقة القصوى: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +الآن لديك روتين **read excel worksheet** يعمل لأي حجم، مع الاستمرار في **preserving number format** و **exporting with column names**. + +--- + +## مثال كامل يعمل (جاهز للنسخ واللصق) + +فيما يلي البرنامج الكامل الذي يمكنك إدراجه في تطبيق وحدة تحكم. يتضمن جميع الخطوات والاستيرادات وطباعة تحقق بسيطة. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +احفظه كـ `Program.cs`، شغّل `dotnet run`، ويجب أن ترى المعاينة المنسقة في الطرفية. + +--- + +## الخاتمة + +لقد استعرضنا للتو **how to export excel** البيانات باستخدام Aspose.Cells، مع تغطية كل شيء من تحميل المصنف إلى الحفاظ على تنسيق الأرقام، التصدير مع أسماء الأعمدة، وتحديد التصدير لصفوف معينة. الكود مستقل، قابل للتنفيذ بالكامل، ويتضمن تدابير واقية عملية لأكثر الحالات الشائعة. + +هل أنت مستعد للتحدي التالي؟ جرّب التصدير مباشرة إلى CSV مع الحفاظ على تنسيق الأرقام الأصلي، أو ادفع `DataTable` إلى سياق Entity Framework Core لإدخالات قاعدة بيانات جماعية. كلا السيناريوهين يبنيان على الأساسيات نفسها التي غطيناها هنا. + +إذا وجدت هذا الدليل مفيدًا + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..732827b84b 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 من خلال هذا الدليل المفصل. حمِّل مستنداتك بأمان. | +| [إنشاء مصنف Excel بجدول منسق – دليل خطوة بخطوة](./create-excel-workbook-with-styled-table-step-by-step-guide/) | تعلم كيفية إنشاء مصنف Excel يحتوي على جدول منسق باستخدام Aspose.Cells لـ .NET خطوة بخطوة. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/arabic/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..e93a3fd4ae --- /dev/null +++ b/cells/arabic/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-03-21 +description: إنشاء مصنف إكسل واستيراد جدول البيانات إلى إكسل مع ضبط نمط العمود، وتصدير + البيانات إلى إكسل، وتنسيق تاريخ خلايا إكسل بالدقائق. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: ar +og_description: إنشاء مصنف إكسل بسرعة. تعلم كيفية استيراد جدول البيانات إلى إكسل، + ضبط نمط العمود، تصدير البيانات إلى إكسل، وتنسيق تاريخ خلايا إكسل في دليل واحد. +og_title: إنشاء مصنف إكسل – دليل كامل للتنسيق والتصدير +tags: +- C# +- Aspose.Cells +- Excel automation +title: إنشاء مصنف إكسل بجدول منسق – دليل خطوة بخطوة +url: /ar/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء مصنف Excel – دليل برمجة شامل + +هل احتجت يوماً إلى **create excel workbook** يبدو أنيقاً مباشرةً من الكود؟ ربما تقوم بسحب البيانات من قاعدة بيانات، وتريد أن تظهر التواريخ بالتنسيق الصحيح دون الحاجة لتعديلها في Excel لاحقاً. هذه مشكلة شائعة—خاصة عندما يصل الناتج إلى صندوق بريد العميل ويتوقع أن يكون جاهزاً للاستخدام. + +في هذا الدليل سنستعرض حلاً واحداً متكاملاً **imports datatable to excel**، يطبق **set column style**، وأخيراً **export data to excel** كملف منسق بشكل جميل. ستتعرف بالضبط على كيفية **format excel cells date** بحيث يبدو الجدول كأنه تقرير احترافي، وستحصل على مثال كامل قابل للتنفيذ في النهاية. لا أجزاء مفقودة، ولا اختصارات “انظر الوثائق”—فقط كود نقي يمكنك إدراجه في مشروعك اليوم. + +--- + +## ما ستتعلمه + +- كيفية **create excel workbook** باستخدام مكتبة Aspose.Cells (أو أي API متوافق). +- أسرع طريقة لـ **import datatable to excel** دون الحاجة إلى حلقات خلية‑ب‑خلية يدوية. +- تقنيات **set column style**، بما في ذلك تطبيق تنسيق تاريخ على عمود محدد. +- كيفية **export data to excel** باستدعاء واحد `Save`. +- الأخطاء الشائعة عند محاولة **format excel cells date** وكيفية تجنّبها. + +### المتطلبات المسبقة + +- .NET 6+ (أو .NET Framework 4.6+). +- Aspose.Cells for .NET مثبت (`Install-Package Aspose.Cells`). +- وجود `DataTable` جاهز للتصدير—مصدر البيانات يمكن أن يكون SQL، CSV، أو أي شيء يمكن تحويله إلى `DataTable`. + +إذا كنت مرتاحاً مع C# ولديك هذه المكونات جاهزة، فأنت مستعد للبدء. وإلا، فإن قسم “المتطلبات المسبقة” أعلاه سيعطيك قائمة سريعة للتحقق. + +--- + +## الخطوة 1 – إنشاء كائن مصنف Excel + +أول شيء تقوم به عندما تريد **create excel workbook** برمجياً هو إنشاء كائن المصنف. فكر في ذلك كفتح دفتر فارغ ستكتب فيه بياناتك لاحقاً. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **لماذا هذا مهم:** +> فئة `Workbook` هي نقطة الدخول لكل عملية في Aspose.Cells. إن إنشاؤها مسبقاً يمنحك لوحة نظيفة، ويمكنك لاحقاً تحميل ملف موجود إذا احتجت لإضافة بيانات بدلاً من البدء من الصفر. + +--- + +## الخطوة 2 – إعداد DataTable للاستيراد + +قبل أن نتمكن من **import datatable to excel**، نحتاج إلى `DataTable`. في المشاريع الفعلية عادةً ما يأتي من `SqlDataAdapter.Fill` أو `DataTable.Load`. لتبسيط الشرح سنُنشئ طريقة تُعيد جدولاً جاهزاً. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **نصيحة:** إذا كانت تواريخك مخزنة كسلاسل نصية، حوّلها إلى `DateTime` أولاً—وإلا فإن خطوة **format excel cells date** لن تعمل كما هو متوقع. + +--- + +## الخطوة 3 – تعريف الأنماط لكل عمود (Set Column Style) + +الآن يأتي الجزء الذي نُطبق فيه **set column style**. سنُنشئ مصفوفة من كائنات `Style`—واحد لكل عمود. العمود الأول يحصل على تنسيق تاريخ مدمج (الرمز 14)، بينما البقية تبقى بالتنسيق العام (الرمز 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **لماذا نستخدم كائنات النمط؟** +> تطبيق النمط مرة واحدة وإعادة استخدامه أكثر كفاءة من ضبط التنسيق على كل خلية على حدة. كما يضمن أن العمود بأكمله يلتزم بقاعدة **format excel cells date** نفسها، وهو أمر أساسي للاتساق عند فتح الملف في إعدادات إقليمية مختلفة. + +--- + +## الخطوة 4 – استيراد DataTable مع الأنماط إلى ورقة العمل + +مع وجود المصنف جاهز والأنماط مُعرّفة، الآن نُجري **import datatable to excel**. طريقة `ImportDataTable` تقوم بالعمل الشاق: تكتب رؤوس الأعمدة، الصفوف، وتطبق الأنماط التي مررناها. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **ما الذي يحدث خلف الكواليس؟** +> - `true` يُخبر Aspose.Cells بضم أسماء الأعمدة كصف أول. +> - `0, 0` هما مؤشرات الصف والعمود الابتدائيين (الزاوية العليا اليسرى). +> - `columnStyles` يطابق كل عمود مع النمط الذي أعددناه، مما يضمن تطبيق قاعدة **format excel cells date** على عمود التاريخ. + +--- + +## الخطوة 5 – حفظ (تصدير) المصنف إلى ملف فعلي + +أخيراً، نقوم بـ **export data to excel** بحفظ المصنف على القرص. يمكنك تغيير المسار إلى أي مجلد تفضله، أو حتى بث الملف مباشرةً إلى استجابة HTTP لتطبيق ويب. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **نصيحة احترافية:** استخدم `workbook.Save(Stream, SaveFormat.Xlsx)` عندما تحتاج لإرسال الملف عبر الشبكة دون كتابة إلى القرص. + +--- + +## مثال كامل يعمل (جميع الخطوات مجمعة) + +فيما يلي البرنامج الكامل الجاهز للتنفيذ. انسخه‑الصقه في تطبيق Console، عدّل مسار الإخراج، وستحصل على ملف Excel منسق في ثوانٍ. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**الناتج المتوقع:** +عند فتح `StyledTable.xlsx`، سيظهر العمود A تواريخ مثل `03/19/2026` (حسب إعدادات الإقليم لديك)، بينما يعرض العمودان B و C أسماء المنتجات والكميات كنص/أرقام عادية. لا خطوات تنسيق إضافية مطلوبة—عملية **create excel workbook** الخاصة بك اكتملت. + +--- + +## الأسئلة المتكررة والحالات الخاصة + +### 1️⃣ ماذا لو كان DataTable يحتوي على أكثر من ثلاثة أعمدة؟ +أضف المزيد من كائنات `Style` إلى مصفوفة `columnStyles`، وعدّل خاصية `Number` لأي عمود يحتاج تنسيقاً خاصاً (مثل العملة أو النسب المئوية). ستطابق طريقة `ImportDataTable` كل نمط مع موقعه. + +### 2️⃣ هل يمكنني تطبيق تنسيق تاريخ مخصص بدلاً من الرقم المدمج 14؟ +بالتأكيد. استبدل `columnStyles[i].Number = 14;` بـ: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ كيف يمكنني **export data to excel** في API ويب دون كتابة إلى القرص؟ +استخدم `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ ماذا لو كان إقليم المستخدم يتطلب فاصل تاريخ مختلف؟ +تنسيق التاريخ المدمج (ID 14) يحترم إعدادات إقليم المصنف. إذا كنت تحتاج إلى تنسيق ثابت بغض النظر عن الإقليم، استخدم الخاصية `Custom` كما هو موضح أعلاه. + +### 5️⃣ هل يعمل هذا مع .NET Core؟ +نعم—Aspose.Cells يدعم .NET Standard 2.0 وما بعده، لذا يمكن تشغيل نفس الكود على .NET 6، .NET 7، أو أي بيئة تشغيل متوافقة. + +--- + +## نصائح ممارسات أفضل (Pro Tips) + +- **إعادة استخدام الأنماط**: إنشاء نمط لكل عمود تكلفة قليلة، لكن إعادة استخدام نفس كائن النمط للأعمدة المتطابقة توفر الذاكرة. +- **تجنب الحلقات خلية‑ب‑خلية**: `ImportDataTable` مُحسّن للغاية؛ الحلقات اليدوية أبطأ وأكثر عرضة للأخطاء. +- **حدد ثقافة المصنف مبكراً** إذا كنت تحتاج إلى توحيد فواصل الأرقام/التواريخ عبر البيئات: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **تحقق من صحة DataTable** قبل الاستيراد—التواريخ الفارغة ستسبب استثناءً عند تطبيق نمط التاريخ. +- **فعّل الحساب** إذا أضفت صيغاً بعد الاستيراد: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## الخلاصة + +أصبح لديك الآن وصفة كاملة من البداية للنهاية لـ **create excel workbook**، **import datatable to excel**، **set column style**، **export data to excel**، و**format excel cells date**—كل ذلك في أقل من عشرة أسطر من كود 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/row-and-column-management/_index.md b/cells/arabic/net/row-and-column-management/_index.md index a747efcb04..72e2bdd723 100644 --- a/cells/arabic/net/row-and-column-management/_index.md +++ b/cells/arabic/net/row-and-column-management/_index.md @@ -76,6 +76,8 @@ تعلّم كيفية إدراج صف بتنسيق في Excel باستخدام Aspose.Cells لـ .NET. اتبع دليلنا خطوة بخطوة لسهولة التنفيذ. ### [إدراج صفوف متعددة في Aspose.Cells .NET](./insert-multiple-rows-aspose-cells/) تعلم كيفية إدراج صفوف متعددة في Excel باستخدام Aspose.Cells لـ .NET. اتبع برنامجنا التعليمي المفصل لمعالجة البيانات بسلاسة. +### [تحميل ملف Excel C# – كيفية حذف الصفوف وإزالة صفوف محددة](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +تعلم كيفية حذف الصفوف وإزالة صفوف معينة من ملف Excel باستخدام Aspose.Cells في C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/arabic/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..9b4b8f2203 --- /dev/null +++ b/cells/arabic/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-21 +description: تحميل ملف Excel باستخدام C# وإزالة صفوف البيانات باستخدام Aspose.Cells. + تعلّم كيفية حذف الصفوف، إزالة صفوف محددة، وإتقان حذف صفوف Excel في C# في دقائق. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: ar +og_description: تحميل ملف Excel باستخدام C# وحذف الصفوف بسرعة، إزالة صفوف محددة، ومعالجة + حذف صفوف Excel في C# باستخدام Aspose.Cells. دليل كامل خطوة بخطوة. +og_title: تحميل ملف Excel C# – حذف الصفوف وإزالة الصفوف المحددة +tags: +- C# +- Excel +- Aspose.Cells +title: تحميل ملف Excel C# – كيفية حذف الصفوف وإزالة الصفوف المحددة +url: /ar/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تحميل ملف Excel C# – كيفية حذف الصفوف وإزالة صفوف محددة + +هل احتجت يوماً إلى **load Excel file C#** ثم حذف الصفوف التي لا تحتاجها؟ ربما تقوم بتنظيف تفريغ بيانات، أو لديك قالب يجب أن تختفي منه بعض الصفوف قبل أن ترسل المصنف للعميل. على أي حال، المشكلة هي نفسها: لديك ملف `.xlsx` موجود على القرص، تريد فتحه في .NET، وتحتاج إلى **delete rows** دون إتلاف أي جداول مخفية أو كائنات قائمة. + +الأمر بسيط—Aspose.Cells يجعل ذلك سهلاً للغاية. في هذا الدرس ستشاهد مثالاً كاملاً وجاهزاً للتنفيذ يوضح بالضبط **how to delete rows**، وكيفية **remove specific rows**، ولماذا قد يهمك **c# excel row deletion** في الأساس. في النهاية ستحصل على ملف `output.xlsx` نظيف يحتوي فقط على الصفوف التي تريدها. + +## ما يغطيه هذا الدليل + +- تحميل مصنف Excel من القرص باستخدام Aspose.Cells. +- حذف نطاق من الصفوف (مثال: الصفوف 5‑10) مع احترام رؤوس ListObject. +- حفظ المصنف المعدل مرة أخرى إلى نظام الملفات. +- المشكلات الشائعة، مثل حذف الصفوف داخل جدول عن طريق الخطأ، ونصائح للتعامل معها. +- عينة كود كاملة قابلة للتنفيذ يمكنك إدراجها في تطبيق console اليوم. + +> **المتطلبات المسبقة** +> • .NET 6+ (أو .NET Framework 4.6+). +> • Aspose.Cells for .NET مثبت عبر NuGet (`Install-Package Aspose.Cells`). +> • إلمام أساسي بـ C# ومفاهيم Excel (الأوراق، الخلايا، الجداول). + +إذا كنت تتساءل **why you should use Aspose.Cells** بدلاً من، مثلاً، `Microsoft.Office.Interop.Excel`، فالجواب هو السرعة، عدم الحاجة إلى COM، والقدرة على التشغيل على الخوادم دون تثبيت Office. بالإضافة إلى ذلك، الـ API بسيط لمهام حذف الصفوف. + +--- + +## الخطوة 1: تحميل مصنف Excel في C# + +قبل أن تتمكن من حذف أي شيء، تحتاج إلى جلب المصنف إلى الذاكرة. تمثل الفئة `Workbook` الملف Excel بالكامل. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**لماذا هذا مهم:** +تحميل الملف يخلق رسمًا بيانيًا للكائنات يعكس بنية Excel—الأوراق، الخلايا، الجداول، وما إلى ذلك. من خلال الاحتفاظ بمرجع إلى `ws`، يمكنك تعديل الصفوف مباشرةً دون القلق بشأن أقفال الملفات أو تعقيدات COM interop. + +--- + +## الخطوة 2: حذف الصفوف التي تحتوي على بيانات فقط + +الآن بعد أن أصبح المصنف في الذاكرة، يمكنك حذف الصفوف. الطريقة `Cells.DeleteRows(startRow, totalRows)` تزيل كتلة متصلة. في مثالنا سنزيل الصفوف 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**كيف يعمل:** +- `startRow` يبدأ من الصفر، لذا `5` يشير فعليًا إلى الصف 6 في Excel. عدّل وفقًا لذلك. +- إذا كانت الورقة تحتوي على **ListObject** (جدول Excel) رأسه في الصف 4، فإن Aspose.Cells سيحمي الرأس ويحذف فقط الصفوف البياناتية تحته. هذه الحماية المدمجة تمنع إتلاف الجداول المنظمة—حالة شائعة عند **removing data rows**. + +> **نصيحة احترافية:** إذا كنت بحاجة إلى حذف صفوف غير متصلة (مثال: الصفوف 3، 7، 12)، قم بالتكرار عبر مجموعة مقلوبة من مؤشرات الصفوف واستدعِ `DeleteRows(rowIndex, 1)` لكل منها. الحذف من الأسفل إلى الأعلى يحافظ على المؤشرات الأصلية للصفوف المتبقية. + +--- + +## الخطوة 3: حفظ المصنف المعدل + +بمجرد إزالة الصفوف غير المرغوب فيها، يمكنك ببساطة كتابة المصنف مرة أخرى إلى القرص. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +طريقة `Save` تحدد تلقائيًا تنسيق الملف من الامتداد (`.xlsx` في هذه الحالة). إذا كنت تحتاج إلى تنسيق مختلف—CSV، PDF، إلخ—فقط غيّر الامتداد أو مرّر تعداد `SaveFormat`. + +### النتيجة المتوقعة + +افتح `output.xlsx` في Excel وستلاحظ أن الصفوف 5‑14 (الصفوف الأصلية 5‑10) اختفت. جميع البيانات الأخرى تتحرك للأعلى وفقًا لذلك، وأي صيغ كانت تشير إلى الصفوف المحذوفة يتم تعديلها تلقائيًا بواسطة Aspose.Cells. + +--- + +## الأسئلة المتداولة (FAQ) + +### كيف أحذف الصفوف بناءً على شرط (مثال: جميع الصفوف التي يكون العمود A فيها فارغًا؟ + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +الحلقة تُنفّذ بالعكس لتجنب تغيير المؤشرات. هذا النمط يجيب على سؤال **c# excel row deletion** الأوسع عندما تحتاج إلى منطق شرطي. + +### ماذا لو كان ورقتي تحتوي على عدة ListObjects؟ + +يتعامل Aspose.Cells مع كل ListObject بشكل مستقل. إذا كان رأس أي جدول سيتأثر بنطاق الحذف، فإن الـ API يرمي استثناء `InvalidOperationException`. لتجاوز ذلك، إما عدّل النطاق أو قم مؤقتًا بمسح خاصية `ShowTableStyleFirstColumn` للـ ListObject، نفّذ الحذف، ثم أعدها. + +### هل يمكنني حذف الصفوف دون تحميل المصنف بالكامل إلى الذاكرة؟ + +نعم—Aspose.Cells يقدم **streaming API** (`Workbook.LoadOptions`) الذي يقرأ البيانات على دفعات. ومع ذلك، حذف الصفوف يتطلب بنية الورقة، لذا ستحتاج إلى تحميل الورقة المستهدفة إلى الذاكرة. للملفات الضخمة (>500 MB)، فكر في المعالجة على دفعات أو استخدام **cell‑by‑cell** API. + +--- + +## مثال كامل قابل للتنفيذ + +فيما يلي البرنامج الكامل الذي يمكنك تجميعه وتشغيله كتطبيق console. استبدل `YOUR_DIRECTORY` بمسار مجلد فعلي على جهازك. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**تشغيل الكود:** +1. افتح الطرفية أو Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. استبدل `Program.cs` بالمقتطف أعلاه. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +سترى مخرجات في وحدة التحكم تؤكد حذف الصفوف وموقع الملف المحفوظ. + +--- + +## المشكلات الشائعة وكيفية تجنبها + +| المشكلة | لماذا يحدث | الحل | +|---------|------------|------| +| **حذف رأس ListObject عن طريق الخطأ** | `DeleteRows` لا يتحقق من رؤوس الجداول المخفية عندما يتقاطع النطاق معها. | تأكد من أن صف البداية **بعد** أي رأس جدول، أو استخدم API الخاص بـ `ListObject` لحذف الصفوف داخل الجدول (`ListObject.DeleteRows`). | +| **مؤشرات الصفوف غير صحيحة بواحد** | Aspose.Cells يستخدم فهرسة صفرية، بينما يعتقد مستخدمو Excel أنها تبدأ من 1. | تذكر أن تطرح 1 من رقم الصف في Excel عند كتابة الكود. | +| **انكسار الصيغ بعد الحذف** | حذف الصفوف قد يسبب أخطاء `#REF!` إذا كانت الصيغ تشير إلى الصفوف المحذوفة. | Aspose.Cells يحدث معظم الصيغ تلقائيًا، لكن تحقق من أي مراجع خارجية أو نطاقات مسماة. | +| **تباطؤ الأداء على ملفات ضخمة** | حذف عدد كبير من الصفوف يسبب إعادة فهرسة داخلية. | احذف نطاقًا كبيرًا مرة واحدة بدلاً من حذف صفوف فردية متعددة. استخدم `DeleteRows(start, count)` كلما أمكن. | + +--- + +## الخطوات التالية والمواضيع ذات الصلة + +- **إزالة صفوف محددة بناءً على قيم الخلايا:** دمج الحلقة الشرطية الموضحة في الأسئلة المتداولة مع `DeleteRows`. +- **إدراج صفوف جماعية:** استخدم `InsertRows` لإضافة صفوف نائب قبل تعبئة البيانات. +- **العمل مع الجداول (ListObjects):** استكشف طرق `ListObject` للعمليات على مستوى الصف داخل الجداول المنظمة. +- **تصدير إلى CSV بعد حذف الصفوف:** استدعِ `workbook.Save("output.csv", SaveFormat.Csv)` لإنتاج CSV نظيف دون الصفوف المحذوفة. + +كل من هذه المواضيع يبني على سير عمل **load excel file c#** الأساسي الذي تعلمته للتو، مما يتيح لك ضبط ملفات Excel برمجيًا بدقة. + +## الخلاصة + +لقد استعرضنا سيناريو عملي لـ **load excel file c#**، وأظهرنا **how to delete rows**، وتناولنا تفاصيل **remove specific rows** و**remove data rows** باستخدام Aspose.Cells. من خلال تحميل المصنف، استدعاء `DeleteRows`، وحفظ النتيجة، تحصل على **c# excel row deletion** موثوق دون عبء COM interop. + +جرّبه على مجموعة بيانات حقيقية—ربما تنظيف تقرير مبيعات أو إزالة صفوف اختبار من قالب. بمجرد أن تشعر بالراحة، جرب الحذف الشرطي والعمليات المت aware للجداول. الـ API قوي بما يكفي للسكربتات البسيطة ومعالجات الدُفعات على مستوى المؤسسات. + +برمجة سعيدة، ولا تتردد في ترك تعليق إذا واجهت أي صعوبات! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/arabic/net/worksheet-operations/_index.md index bebe611020..2556fc3511 100644 --- a/cells/arabic/net/worksheet-operations/_index.md +++ b/cells/arabic/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ تعلّم كيفية تحديث سجلّ المراجعات في المصنفات المشتركة باستخدام Aspose.Cells لـ .NET. بسّط التعاون وحافظ على سجلات مستندات واضحة. ### [استخدام خاصية Sheet_SheetId في OpenXml في ورقة العمل](./utilize-sheet-sheetid-property/) استغل إمكانيات Excel مع Aspose.Cells لـ .NET. تعلّم كيفية التعامل مع مُعرِّفات الأوراق بفعالية من خلال دليلنا المُفصَّل خطوة بخطوة. +### [كيفية إنشاء أوراق العمل – دليل خطوة بخطوة لإنشاء Excel ديناميكي](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +تعلم إنشاء أوراق عمل Excel ديناميكيًا باستخدام Aspose.Cells لـ .NET خطوة بخطوة. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/arabic/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..878449927f --- /dev/null +++ b/cells/arabic/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,277 @@ +--- +category: general +date: 2026-03-21 +description: تعلم كيفية إنشاء أوراق عمل، وتوليد ملفات إكسل بأسماء أوراق عمل ديناميكية + وحفظ المصنف بصيغة XLSX باستخدام Aspose.Cells في C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: ar +og_description: كيفية إنشاء أوراق عمل في Excel باستخدام Aspose.Cells، وإنشاء أوراق + Excel بأسماء أوراق عمل ديناميكية، وحفظ المصنف كملف XLSX. +og_title: كيفية إنشاء أوراق العمل – دليل C# الكامل +tags: +- Aspose.Cells +- C# +- Excel automation +title: كيفية إنشاء أوراق العمل – دليل خطوة بخطوة لإنشاء إكسل ديناميكي +url: /ar/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية إنشاء أوراق العمل – دليل C# الكامل + +هل تساءلت يوماً **كيف تنشئ أوراق عمل** بسرعة دون الحاجة إلى فتح Excel يدوياً في كل مرة؟ لست وحدك. يواجه العديد من المطورين صعوبة عندما يحتاجون إلى **إنشاء أوراق Excel** من مصادر البيانات ويرغبون في أن تحمل كل ورقة اسمًا ديناميكيًا ومعبرًا. الخبر السار؟ مع Aspose.Cells يمكنك أتمتة العملية بالكامل، **معالجة ورقة الماستر**، وأخيرًا **حفظ المصنف كملف XLSX** ببضع أسطر من الشيفرة فقط. + +في هذا الدرس سنستعرض سيناريو واقعي: بدءًا من مصنف فارغ، إدراج علامة ذكية تخبر Aspose بأي أوراق تفصيلية يجب إنشاؤها، ضبط نمط تسمية بحيث يحصل كل ورق على اسم فريد، وأخيرًا حفظ النتيجة على القرص. بنهاية الدرس ستحصل على برنامج C# جاهز للتنفيذ ينشئ أوراق عمل، يولد أوراق Excel بأسماء أوراق ديناميكية، ويحفظ المصنف كملف XLSX—كل ذلك دون الحاجة إلى الواجهة الرسومية. + +> **المتطلبات المسبقة** +> • .NET 6+ (أو .NET Framework 4.6+). +> • Aspose.Cells for .NET (الإصدار التجريبي المجاني يكفي لهذا العرض). +> • معرفة أساسية بـ C#—لا حاجة لحيل متقدمة في Excel Interop. + +--- + +## نظرة عامة على ما سنبنيه + +- **ورقة الماستر** التي تحتوي على عنصر نائب ذكي (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** يقرأ مصدر البيانات (مثل `DataTable`) وينشئ ورقة عمل جديدة لكل قسم. +- **أسماء أوراق عمل ديناميكية** تتبع النمط `Dept_{0}` حيث يُستبدل `{0}` باسم القسم. +- **ملف XLSX نهائي** يُحفظ في المجلد الذي تحدده. + +هذا كل شيء. بسيط، لكنه قوي بما يكفي للفواتير، التقارير، أو أي مخرجات Excel متعددة الأوراق. + +--- + +![مخطط يوضح كيفية معالجة ورقة الماستر لإنشاء أوراق عمل ديناميكية متعددة](/images/how-to-create-worksheets-diagram.png "مخطط كيفية إنشاء أوراق العمل") + +*نص بديل: توضيح لكيفية إنشاء أوراق عمل بأسماء أوراق ديناميكية باستخدام Aspose.Cells.* + +--- + +## الخطوة 1: إعداد المشروع وإضافة Aspose.Cells + +### لماذا هذا مهم +قبل تشغيل أي شيفرة، يحتاج المترجم إلى معرفة مكان وجود الفئات `Workbook`، `Worksheet`، و`SmartMarkerProcessor`. إضافة حزمة NuGet يضمن حصولك على أحدث API مكتملة المميزات. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **نصيحة احترافية:** إذا كنت تستخدم Visual Studio، انقر بزر الماوس الأيمن على المشروع → *Manage NuGet Packages* → ابحث عن *Aspose.Cells* وقم بتثبيت أحدث نسخة مستقرة. + +--- + +## الخطوة 2: إنشاء مصنف جديد وورقة الماستر + +### ما الذي نفعله +نبدأ بمصنف نظيف، ثم نأخذ الورقة الأولى (المؤشر 0). ستعمل هذه الورقة كـ **ورقة ماستر** التي تحمل العلامة الذكية. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +فئة `Workbook` هي الحاوية لجميع أوراق العمل. بشكل افتراضي تُنشئ ورقة واحدة تسمى *Sheet1*؛ إعادة تسميتها إلى “Master” تجعل الملف النهائي أسهل في التصفح. + +--- + +## الخطوة 3: إدراج علامة ذكية لأسماء أوراق التفصيل + +### لماذا نستخدم علامة ذكية؟ +العلامات الذكية تسمح لـ Aspose.Cells باستبدال العناصر النائبة بالبيانات أثناء التشغيل. العلامة `«DetailSheetNewName:Dept»` تخبر المعالج: *“عند رؤيتك لهذا، أنشئ ورقة تفصيلية جديدة لكل صف في عمود `Dept`.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +يمكنك وضع العلامة في أي خلية؛ اخترنا **A1** للوضوح. عندما يعمل المعالج، سيستبدل العلامة باسم القسم الفعلي وينشئ ورقة عمل مطابقة. + +--- + +## الخطوة 4: إعداد مصدر البيانات + +### كيف يوجه البيانات إنشاء الأوراق +Aspose.Cells يعمل مع أي مصدر بيانات من نوع `IEnumerable`. لهذا العرض سنستخدم `DataTable` يحتوي على عمود واحد اسمه `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **ماذا لو كان لديك أعمدة إضافية؟** +> سيتجاهل المعالج الأعمدة الزائدة ما لم تُشر إليها في علامات ذكية إضافية. هذا يحافظ على خفة عملية إنشاء الأوراق. + +--- + +## الخطوة 5: ضبط SmartMarkerProcessor ونمط التسمية + +### أسماء أوراق عمل ديناميكية قيد التنفيذ +نريد أن تكون كل ورقة جديدة مسماة `Dept_Finance`، `Dept_HR`، إلخ. خيار `DetailSheetNewName` يتيح لنا تعريف نمط يُستبدل فيه `{0}` باسم القسم الفعلي. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +إذا ظهر القسم مرتين، سيضيف Aspose تلقائيًا لاحقة رقمية (مثل `Dept_Finance_1`) لتجنب تكرار أسماء الأوراق. + +--- + +## الخطوة 6: معالجة ورقة الماستر لإنشاء أوراق التفصيل + +### جوهر **معالجة ورقة الماستر** +استدعاء `Process` يقوم بالعمل الشاق: يبحث في ورقة الماستر عن العلامات الذكية، ينشئ أوراق عمل جديدة، ينسخ تخطيط الماستر، ويملأ كل ورقة ببيانات الصف المقابل. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +بعد هذا الاستدعاء، يحتوي المصنف على ورقة ماستر واحدة بالإضافة إلى أربع أوراق تفصيلية—كل واحدة مسماة وفق نمطنا ومملوءة باسم القسم في الخلية A1. + +--- + +## الخطوة 7: حفظ المصنف كملف XLSX + +### الخطوة النهائية—**حفظ المصنف كملف XLSX** +الآن بعد أن أنشأت الأوراق، نكتب الملف إلى القرص. يمكنك اختيار أي مسار؛ فقط تأكد من وجود المجلد مسبقًا. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +فتح `DetailSheets.xlsx` سيظهر: + +| اسم الورقة | محتوى الخلية A1 | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (دون تغيير) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **حالة حافة:** إذا لم يكن مجلد الإخراج موجودًا، سيُطلق `Save` استثناء `DirectoryNotFoundException`. احرص على وضع الاستدعاء داخل كتلة try‑catch أو أنشئ المجلد مسبقًا. + +--- + +## مثال كامل يعمل + +نجمع كل ما سبق في البرنامج الكامل الذي يمكنك نسخه ولصقه في تطبيق Console: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +شغّل البرنامج، افتح الملف الناتج، وسترى تمامًا التخطيط الموصوف أعلاه. لا نسخ‑لصق يدوي، لا COM Interop—فقط شيفرة C# نظيفة **تنشئ أوراق Excel** بأسماء أوراق **ديناميكية**. + +--- + +## أسئلة شائعة ومشكلات محتملة + +| السؤال | الجواب | +|----------|--------| +| *هل يمكنني استخدام DataSet يحتوي على جداول متعددة؟* | نعم. مرّر الجدول المناسب إلى `Process` أو استخدم قاموسًا من الجداول. | +| *ماذا لو احتجت إلى أكثر من علامة ذكية واحدة في ورقة الماستر؟* | ضع علامات إضافية مثل `«DetailSheetNewName:Region»` واضبط نمط تسمية منفصل إذا لزم الأمر. | +| *هل تبقى ورقة الماستر في الملف النهائي؟* | بشكل افتراضي، نعم. إذا لم تحتاجها، استدعِ `workbook.Worksheets.RemoveAt(0)` بعد المعالجة. | +| *كيف يتعامل Aspose مع مجموعات بيانات ضخمة؟* | يقوم ببث البيانات بكفاءة، لكن قد تحتاج إلى زيادة `MemorySetting` إذا واجهت حدود الذاكرة. | +| *هل يمكنني التصدير إلى CSV بدلاً من XLSX؟* | بالتأكيد—استخدم `workbook.Save("file.csv", SaveFormat.Csv)`. منطق إنشاء الأوراق يبقى نفسه. | + +--- + +## الخطوات التالية + +الآن بعد أن عرفت **كيفية إنشاء أوراق عمل** ديناميكيًا، يمكنك استكشاف: + +- **حفظ المصنف كملف XLSX** مع حماية كلمة مرور (`workbook.Protect("pwd")`). +- **إنشاء أوراق Excel** من مصادر JSON أو XML باستخدام `JsonDataSource` أو `XmlDataSource`. +- **تطبيق أنماط** على كل ورقة مُنشأة (خطوط، ألوان) عبر كائنات `Style`. +- **دمج خلايا** أو إدراج صيغ تلقائيًا لتقارير ملخصة. + +كل هذه الإضافات تعتمد على مفهوم **معالجة ورقة الماستر**، لذا سيكون الانتقال سلسًا. + +--- + +## الخاتمة + +غطينا كامل سير العمل: من تهيئة المصنف، إدراج علامة ذكية، ضبط **أسماء أوراق عمل ديناميكية**، معالجة ورقة الماستر لإنشاء **أوراق Excel**، وأخيرًا **حفظ المصنف كملف XLSX**. المثال كامل، قابل للتنفيذ، ويظهر أفضل الممارسات من حيث الأداء والصيانة. + +جرّبه، عدّل نمط التسمية، زوّده ببيانات عمل حقيقية، وشاهد أتمتة 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/calculation-engine/_index.md b/cells/chinese/net/calculation-engine/_index.md index c917470c35..c259fb2e25 100644 --- a/cells/chinese/net/calculation-engine/_index.md +++ b/cells/chinese/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ Aspose.Cells for .NET 提供强大的计算引擎,允许开发人员在 Excel ### [使用 Aspose.Cells for .NET 中的递归选项优化 Excel 计算时间](./optimize-calculation-time-recursive-aspose-cells-net) 了解如何使用 Aspose.Cells for .NET 中的递归选项优化 Excel 计算时间。本指南涵盖设置、性能技巧和实际应用。 +### [如何在 C# 中计算工作簿 – 排序与公式指南](./how-to-calculate-workbook-in-c-sort-formula-guide/) +了解如何在 C# 使用 Aspose.Cells 计算工作簿,包括排序操作和公式应用的完整指南。 ## 好处 diff --git a/cells/chinese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/chinese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..b84f9c9215 --- /dev/null +++ b/cells/chinese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-03-21 +description: 如何在 C# 中使用 Aspose.Cells 计算工作簿——学习创建 Excel 工作簿、填充 Excel 单元格、计算 Excel 公式以及使用排序功能。 +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: zh +og_description: 如何在 C# 中快速计算工作簿。本教程展示了如何创建 Excel 工作簿、填充 Excel 单元格、计算 Excel 公式以及使用排序功能。 +og_title: 如何在 C# 中计算工作簿 – 完整排序指南 +tags: +- C# +- Aspose.Cells +- Excel Automation +title: 如何在 C# 中计算工作簿 – 排序与公式指南 +url: /zh/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中计算工作簿 – 排序与公式指南 + +是否曾想过 **如何在不打开 Excel 的情况下计算工作簿** 的数值?你并不孤单。在许多自动化场景中,你需要生成一个 Excel 文件,写入一些数字,对它们进行排序,然后把结果读取回你的 .NET 应用——全部通过代码实现。 + +在本指南中,我们将一步步演示:**创建 Excel 工作簿**、**填充 Excel 单元格**、附加 **SORT** 公式,最后 **计算 Excel 公式**,以便直接在 C# 中读取排序后的数组。完成后,你将拥有一段可直接放入任何引用 Aspose.Cells(或类似库)的项目中的可运行代码片段。 + +## 前置条件 + +- .NET 6+(代码同样适用于 .NET Framework 4.7.2) +- Aspose.Cells for .NET(免费试用 NuGet 包 `Aspose.Cells`) +- 对 C# 语法有基本了解 +- 不需要安装 Microsoft Excel;库会为你完成所有繁重工作 + +如果你已经满足以上条件,下面开始吧。 + +## 如何计算工作簿 – 初始化工作簿 + +首先要做的就是实例化一个全新的工作簿对象。可以把它想象成打开了一个全空的 Excel 文件。 + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **为什么这很重要:** `Workbook` 类是所有操作的入口——没有它就无法添加工作表、单元格或公式。正确初始化可确保你从干净的状态开始。 + +## 创建 Excel 工作簿并访问工作表 + +工作簿创建后,需要确保指向正确的工作表。大多数库默认只有一个名为 “Sheet1” 的工作表,但你可以自行重命名或添加更多工作表。 + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **小技巧:** 及早命名工作表有助于后续在公式中引用(例如 `'Data'!A1:A10`),也能让调试更轻松。 + +## 用数据填充 Excel 单元格 + +接下来,我们将 **填充 Excel 单元格** 为要排序的数字。示例仅使用两个单元格,你可以将范围扩展到数十行。 + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **为什么使用 `PutValue`** – 它会自动检测数据类型(int、double、string 等),并相应地存储,省去手动类型转换的麻烦。 + +## 通过公式应用 SORT 函数 + +Excel 的 `SORT` 函数正如其名:返回一个已排序的数组,而不改变原始数据。我们将在单元格 `B1` 中写入该公式。 + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **边缘情况说明:** `SORT` 返回的是 **数组** 结果。旧版 Excel(Office 365 之前)需要使用 Ctrl+Shift+Enter。使用 Aspose.Cells 时,计算工作簿即可自动得到数组。 + +## 计算 Excel 公式以获取结果 + +此时工作簿只知道 *要计算什么*,但并未实际执行。调用 `CalculateFormula` 会触发引擎评估所有公式,包括我们的 `SORT`。 + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**预期的控制台输出** + +``` +Sorted array: {2, 5} +``` + +> **刚才发生了什么?** +> 1. 工作簿创建了内部计算引擎。 +> 2. `SORT` 公式检查了范围 `A1:A2`。 +> 3. 引擎生成了一个新数组,我们从 `B1` 中读取它。 + +如果你修改 `A1`、`A2` 的数值(或扩展范围)并重新运行 `CalculateFormula`,输出会自动更新——无需额外代码。 + +## 在更大数据集上使用 Sort 函数(可选) + +实际场景往往涉及多于两行的数据。下面的简短改动适用于任意数量的条目: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **为什么可能需要它:** 对大范围进行排序可用于生成排行榜、对金融数据进行排序,或在进一步处理前清理导入的 CSV。 + +## 常见陷阱及规避方法 + +| 问题 | 产生原因 | 解决方案 | +|------|----------|----------| +| **`#VALUE!` 出现在 B1** | `SORT` 公式引用了空的或非数值的范围。 | 确保源范围内的每个单元格都包含可排序的数字或文本。 | +| **数组截断** | 试图从单个单元格读取数组而未进行类型转换。 | 将 `worksheet.Cells["B1"].Value` 强制转换为 `object[]`(或相应类型)。 | +| **性能下降** | 每次微小更改后都重新计算巨大的工作簿。 | 仅在完成所有修改后调用 `CalculateFormula`,或使用 `CalculateFormulaOptions` 限制计算范围。 | + +## 完整可运行示例(复制粘贴即用) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **结果截图** +> ![如何在 Excel 中计算工作簿的结果](https://example.com/images/sorted-result.png "如何在 Excel 中计算工作簿的结果") + +上图展示了计算后的工作簿——单元格 **B1** 包含排序后的数组 `{2, 5}`。 + +## 结论 + +我们已经完整演示了 **如何在程序中计算工作簿** 的数值:创建 Excel 工作簿、填充单元格、嵌入 `SORT` 公式,最后 **计算 Excel 公式** 并提取排序数据。该方法既适用于两格的简单示例,也能平滑扩展到更大的数据集。 + +接下来可以尝试结合 `FILTER`、`UNIQUE`,甚至通过 `WorksheetFunction` 使用自定义的 VBA‑风格逻辑。你也可以将工作簿保存到磁盘(`workbook.Save("Sorted.xlsx")`),在 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-and-rendering/_index.md b/cells/chinese/net/conversion-and-rendering/_index.md index 6bb3e11233..daf4d4229b 100644 --- a/cells/chinese/net/conversion-and-rendering/_index.md +++ b/cells/chinese/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ 本分步指南将帮助您学习如何使用 Aspose.Cells for .NET 将 Excel 工作表转换为 SVG。非常适合希望将 Excel 渲染为 SVG 的 .NET 开发人员。 ### [在 .NET 中将 Excel 转换为 MHTML](./converting-excel-to-mhtml/) 了解如何使用 Aspose.Cells 在 .NET 中高效地将 Excel 文件转换为 MHTML 格式,从而增强您的报告和数据共享能力。 +### [在 C# 中从 Excel 创建图像 – 将数据透视表导出为 PNG](./create-image-from-excel-export-pivot-to-png-in-c/) +学习如何使用 Aspose.Cells for .NET 将 Excel 数据透视表导出为 PNG 图像,实现高质量的可视化展示。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/chinese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..084b6cd650 --- /dev/null +++ b/cells/chinese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-21 +description: 使用 Aspose.Cells 在 C# 中从 Excel 创建图像。学习如何将 Excel 转换为图像、导出数据透视表,并将图像保存为 + PNG,提供完整可运行的示例。 +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: zh +og_description: 快速在 C# 中从 Excel 创建图像。本指南展示了如何将 Excel 转换为图像、导出数据透视表,并使用简洁代码将图像保存为 PNG。 +og_title: 从 Excel 创建图像 – 使用 C# 将数据透视表导出为 PNG +tags: +- C# +- Aspose.Cells +- Excel automation +title: 从 Excel 创建图像 – 使用 C# 将数据透视表导出为 PNG +url: /zh/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 从 Excel 创建图像 – 在 C# 中导出透视表为 PNG + +是否曾经需要**从 Excel 创建图像**但不确定该使用哪个 API?你并不孤单——许多开发者在尝试将实时透视表转换为可共享的 PNG 时都会遇到这个难题。 + +在本教程中,我们将逐步演示一个完整、可直接运行的解决方案,**将 Excel 转换为图像**,展示**如何导出透视表**,并解释**如何将图像保存**为 PNG 文件。完成后,你将拥有一个一次性完成全部工作的公共方法,并提供一些可能遇到的边缘情况的提示。 + +## 您需要的条件 + +- **Aspose.Cells for .NET**(NuGet 包 `Aspose.Cells`)。这是一个商业库,但提供免费评估模式——非常适合测试。 +- .NET 6+(或 .NET Framework 4.6+)。 +- 一个简单的 Excel 工作簿(`Pivot.xlsx`),其中至少包含一个透视表。 +- 任意您喜欢的 IDE——Visual Studio、Rider,甚至 VS Code 都可以。 + +就这些。无需额外的 DLL、COM 互操作,也不需要繁琐的 Excel 自动化技巧。 + +现在,让我们深入代码。 + +## 步骤 1:加载工作簿 – 从 Excel 创建图像 + +我们首先打开包含透视表的 Excel 文件。此步骤至关重要,因为渲染器是基于内存中的 `Workbook` 对象工作的。 + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*为什么这很重要:* 加载工作簿后我们即可访问**透视表**以及所有格式,这些在后续**将 Excel 转换为图像**时都会被保留。如果跳过此步骤,渲染器将无从下手。 + +## 步骤 2:配置导出选项 – 将 Excel 转换为图像 + +接下来告诉 Aspose 我们希望最终图片的样式。`ImageOrPrintOptions` 类可以让我们选择 PNG、设置 DPI,甚至控制背景颜色。 + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*为什么这很重要:* 通过设置较高的 DPI,能够确保**导出 Excel 为 PNG**时图像清晰,即使透视表包含大量行。如果文件大小是顾虑,也可以降低 DPI。 + +## 步骤 3:渲染工作表 – 如何导出透视表 + +现在进入核心步骤:将工作表(以及其中的透视表)转换为图像。`WorksheetRender` 类负责完成这项重活。 + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*为什么这很重要:* 这里实现了**如何导出透视表**为可视化格式。渲染器会保留所有透视表的格式、切片器以及条件样式,生成的 PNG 与 Excel 中看到的完全一致。 + +## 步骤 4:整合所有步骤 – 如何保存图像 + +最后,我们提供一个公共方法,将所有环节串联起来。这就是你在应用、服务或控制台工具中调用的入口。 + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### 完整工作示例 + +创建一个新的控制台项目,添加 NuGet 包 `Aspose.Cells`,然后在项目中放入以下 `Program.cs`: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**预期结果:** 运行程序后,`PivotImage.png` 将出现在你指定的文件夹中,呈现透视表的像素级快照。 + +![从 Excel 创建图像示例](https://example.com/placeholder.png "从 Excel 创建图像示例") + +*Alt text:* 从 Excel 创建图像示例,显示导出的透视表为 PNG。 + +## 常见问题与边缘情况 + +### 如果我的工作簿有多个工作表怎么办? + +当前助手默认获取 `Worksheets[0]`。若需定位特定工作表,请传入工作表名称: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG 模糊——如何解决? + +在 `GetImageOptions` 中提升 `HorizontalResolution` 与 `VerticalResolution`。300–600 DPI 的取值通常能得到清晰的效果。请记住,DPI 越高文件体积也会越大。 + +### 我的透视表跨越多页——能导出所有页面吗? + +可以。遍历 `renderer.PageCount` 并对每页调用 `ToImage(pageIndex, …)`,或将 `OnePagePerSheet = false` 设置为每页生成单独的图像。 + +### 我只需要工作表的一部分(例如特定范围)? + +使用 `ImageOrPrintOptions` 设置 `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +这样就可以**将 Excel 转换为图像**时,仅针对你关心的区域进行导出。 + +### 这适用于 .xls(Excel 97‑2003)文件吗? + +完全支持。Aspose.Cells 对文件格式做了抽象,你可以直接使用 `.xls`、`.xlsx`、`.xlsm`,甚至 `.ods`,仍然能够**导出 excel 为 png**。 + +## 专业技巧与注意事项 + +- **License matters**: 在评估模式下 Aspose 会添加水印。生产环境请部署正式许可证。 +- **Memory usage**: 渲染大型工作簿可能会占用大量内存。请及时释放 `Workbook` 对象,或使用 `using` 块包装。 +- **Thread safety**: `Workbook` 并非线程安全。如果在 Web 服务中使用,请为每个请求创建新的实例。 +- **Image format flexibility**: 如需 JPEG 或 BMP,只需在 `GetImageOptions` 中更改 `ImageFormat` 即可。 + +## 结论 + +你现在拥有一套完整、端到端的方案,能够**从 Excel 创建图像**,特别是将**导出透视表**数据为高质量 PNG。上面的代码片段展示了完整可运行的示例,解释了**如何保存图像**,并涵盖了多工作表或自定义打印区域等变体。 + +接下来可以尝试将此导出器与邮件服务链式调用,实现自动发送 PNG,或实验 `ImageOrPrintOptions` 生成 PDF 而非 PNG。相同的模式同样适用于**convert excel to image**的各种格式需求。 + +还有其他问题吗?欢迎留言,祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..373495173f 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 @@ -19,7 +19,7 @@ 对于在 .NET 中使用 Excel 文件的开发人员来说,高效的文件转换至关重要。Aspose.Cells for .NET 提供强大的 Excel 文件格式转换支持,可跨应用程序灵活处理数据。以下是一些实用教程,展示了如何使用 Aspose.Cells 将 Excel 文件转换为不同类型的文件。 -## 将 Excel 文件转换为 JSON、DOCX、HTML 等 +## 将 Excel 文件转换为 JSON、DOCX 等 1. [在 .NET 中以编程方式将 CSV 转换为 JSON](./converting-csv-to-json/):将 CSV 文件转换为 JSON 格式现在比以往任何时候都更加轻松。本指南提供了一种基于代码的简单易用的数据转换方法,非常适合需要将原始 CSV 输入转换为结构化 JSON 数据的应用程序。 @@ -46,6 +46,8 @@ Aspose.Cells for .NET 简化了文档转换,允许开发人员自动化流程 学习如何在 .NET 中使用 Aspose.Cells 将 CSV 转换为 JSON。本指南包含数据转换的分步指南,并附有易于理解的代码示例。 ### [在 .NET 中以编程方式将 Excel 文件转换为 DOCX](./converting-excel-file-to-docx/) 本分步指南将指导您如何使用 Aspose.Cells for .NET 以编程方式将 Excel 文件转换为 DOCX 文件。非常适合生成报告和共享数据。 +### [使用 C# 将 Excel 保存为 Docx – 完整分步指南](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +本指南提供使用 Aspose.Cells for .NET 通过 C# 将 Excel 文件保存为 Docx 的完整分步示例,帮助您轻松生成文档。 ### [在 .NET 中将 Excel 文件转换为带有工具提示的 HTML](./converting-excel-file-to-html-with-tooltip/) 使用 Aspose.Cells for .NET,只需几个简单步骤即可将 Excel 转换为带有工具提示的 HTML。轻松使用交互式 Excel 数据增强您的 Web 应用程序。 ### [在 .NET 中以编程方式将 Excel 文件转换为 Markdown](./converting-excel-file-to-markdown/) diff --git a/cells/chinese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/chinese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..ab4a2a0861 --- /dev/null +++ b/cells/chinese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,247 @@ +--- +category: general +date: 2026-03-21 +description: 在 C# 中将 Excel 保存为 Docx — 学习如何将 Excel 转换为 Word,嵌入图表,以及使用 Aspose.Cells + 在 C# 中加载 Excel 工作簿。 +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: zh +og_description: 在 C# 中将 Excel 保存为 Docx(在第一句中已解释)。按照本教程,将 Excel 转换为 Word,嵌入图表,并在 C# + 中加载 Excel 工作簿。 +og_title: 使用 C# 将 Excel 保存为 Docx – 完整指南 +tags: +- C# +- Aspose.Cells +- Document Conversion +title: 使用 C# 将 Excel 保存为 Docx – 完整的逐步指南 +url: /zh/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 C# 将 Excel 保存为 Docx – 完整分步指南 + +是否曾经需要 **save Excel as Docx** 却不知从何入手?你并不孤单——许多开发者在想要 *convert Excel to Word* 并保持图表完整时都会遇到同样的难题。在本教程中,我们将逐步演示所需的完整代码,解释每行代码的意义,并展示如何嵌入 Excel 图表而不失真。我们还会在 **load Excel workbook C#** 场景中加入一些额外提示,这样到最后你就能在任何 .NET 项目中轻松将 Excel 转换为 Docx。没有模糊的引用,只有一个具体、可运行的示例,你可以立即复制粘贴使用。 + +--- + +## 本指南涵盖内容 + +- 使用 Aspose.Cells(或任何兼容库)加载现有的 `.xlsx` 文件。 +- 在转换前可选地对工作表或图表进行操作。 +- 将工作簿保存为 `.docx` 文件,同时保留嵌入的图表。 +- 验证输出并处理常见的边缘情况,如大型工作簿或不受支持的图表类型。 + +如果你在想 **why you’d want to convert Excel to Docx**,可以考虑需要发送给非技术利益相关者的报告——Word 文档被普遍接受,并且能够保持图表的视觉保真度。让我们开始吧。 + +--- + +## 前提条件 – Load Excel Workbook C# + +在编写任何代码之前,请确保具备以下条件: + +| Requirement | Reason | +|-------------|--------| +| **.NET 6.0 or later** | 现代运行时,性能更佳,并且完全支持 Aspose.Cells。 | +| **Aspose.Cells for .NET** (NuGet package `Aspose.Cells`) | 提供用于读取 Excel 并导出为 DOCX 的 `Workbook` 类。 | +| **Visual Studio 2022** (or any IDE you prefer) | 便于调试和 IntelliSense。 | +| **An Excel file with charts** (`AdvancedCharts.xlsx`) | 用于实际演示 *embed excel charts* 功能。 | + +你可以通过 Package Manager Console 安装该库: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** 如果你在 CI/CD 流水线中,建议将该包添加到 `*.csproj` 中,以便自动恢复。 + +--- + +## 第一步 – 加载 Excel 工作簿(Save Excel as Docx 开始) + +我们首先要加载源工作簿。这正是 **load excel workbook c#** 所涉及的地方。 + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Why this matters:** 加载文件后,你可以访问每个工作表、图表和样式。如果缺少此步骤,将没有可转换的内容,API 也无法保留嵌入的图形。 + +--- + +## 第二步 – (可选)在转换前微调工作簿 + +你可能想重命名工作表、隐藏列,甚至更改图表标题。此步骤为可选,但展示了转换的灵活性。 + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Edge case:** 某些旧的图表类型(例如雷达图)在 Word 中可能无法完美呈现。请在转换后测试你的特定图表。 + +--- + +## 第三步 – 将工作簿保存为 Word 文档(核心 “Save Excel as Docx” 操作) + +关键时刻到了:我们实际执行 **save Excel as Docx**。 + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +运行时,Aspose.Cells 会将每个工作表写入 Word 文件中的表格,并将每个图表嵌入为高分辨率图像。最终得到的 `.docx` 完全可编辑,外观与原始 Excel 完全一致。 + +> **Why choose DOCX over PDF?** DOCX 允许接收者以后编辑文本或替换图表,而 PDF 则是静态快照。 + +--- + +## 第四步 – 验证输出并排查常见问题 + +转换完成后,在 Microsoft Word 中打开 `ChartsInWord.docx`: + +1. **检查每个工作表是否作为单独的章节出现** – 你应该看到与 Excel 数据相对应的表格。 +2. **确认图表已嵌入** – 它们应为可选中的图像,而不是损坏的占位符。 +3. **如果图表缺失**,请确保该图表类型受 Aspose.Cells 支持(参见[官方兼容性列表](https://docs.aspose.com/cells/net/supported-chart-types/))。 + +> **Pro tip:** 对于大型工作簿,考虑增加 Aspose.Cells 的 `MemorySetting` 以避免 `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## 完整工作示例(可直接复制粘贴) + +下面是完整的程序,可直接编译。将 `YOUR_DIRECTORY` 替换为你机器上的实际文件夹路径。 + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Expected result:** 一个 Word 文档(`ChartsInWord.docx`),其中包含所有工作表作为表格,以及每个图表作为嵌入的高分辨率图像。用 Word 打开它,你将看到与 Excel 完全相同的视觉布局。 + +--- + +## 常见问题 (FAQ) + +**Q: 我可以在循环中转换多个 Excel 文件吗?** +A: 当然可以。将转换逻辑包装在 `foreach (var file in Directory.GetFiles(...))` 循环中,并重复使用相同的 `Workbook` 实例模式。 + +**Q: 这也适用于 `.xls` 文件吗?** +A: 是的——Aspose.Cells 支持旧版格式。只需更改源文件扩展名,`SaveFormat.Docx` 调用保持不变。 + +**Q: 如果需要在转换时保留公式怎么办?** +A: Word 本身不支持 Excel 公式。转换会将公式展平成其计算后的值。如果需要实时计算,考虑将工作簿作为 OLE 对象嵌入。 + +**Q: 有办法控制图表的图像分辨率吗?** +A: 在保存之前使用 `ImageOrPrintOptions`: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## 额外内容:将 Excel 图表直接嵌入 Word(超越 Save Excel as Docx) + +如果你希望图表在 Word 中保持可编辑,可以将整个 Excel 工作表嵌入为 OLE 对象: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +此技术将 *embed excel charts* 作为实时对象,允许最终用户在 Word 中双击直接在 Excel 中编辑。需要交互性时,这是一个方便的替代方案。 + +--- + +## 结论 + +现在,你已经拥有使用 C# **save Excel as docx** 的完整端到端解决方案。本教程涵盖了加载工作簿、可选微调、实际保存操作、验证步骤,甚至快速了解了用于可编辑场景的图表嵌入。按照上述代码,你可以 **convert Excel to Word**,保留所有图表,并优雅地处理大文件。 + +准备好迎接下一个挑战了吗?尝试自动化批量转换、将此逻辑集成到 ASP.NET Core API 中,或探索 **convert Excel to docx** 用于多工作表仪表盘。你刚学到的技能是任何文档自动化项目的基础。 + +有问题或遇到难以转换的工作簿?留下评论,我们一起排查。祝编码愉快! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..233439b6d7 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 中添加文档属性。 +### [如何保存 XLSB – 在 C# 中添加自定义属性](./how-to-save-xlsb-add-custom-property-in-c/) +通过本教程了解如何在 C# 中使用 Aspose.Cells 保存 XLSB 文件并添加自定义属性。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/chinese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..db8340ca33 --- /dev/null +++ b/cells/chinese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,272 @@ +--- +category: general +date: 2026-03-21 +description: 学习如何在 C# 中保存 xlsb 文件并添加自定义属性(如 ProjectId)。本指南展示了如何创建 Excel 工作簿、添加自定义属性并进行验证。 +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: zh +og_description: 了解如何使用 C# 保存 xlsb 文件并添加自定义属性(如 ProjectId)。一步一步的完整代码指南。 +og_title: 如何保存 XLSB – 在 C# 中添加自定义属性 +tags: +- C# +- Aspose.Cells +- Excel automation +title: 如何保存 XLSB – 在 C# 中添加自定义属性 +url: /zh/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中保存 XLSB – 添加自定义属性 + +有没有想过 **how to save xlsb** 文件的同时,还能埋入一段元数据?也许你正在构建一个需要隐藏 ProjectId 的报表引擎,或者只是想给工作表打上标签以便后续处理。**how to save xlsb** 并不是火箭科学,但与自定义属性结合会出现一个许多开发者容易忽视的小细节。 + +在本教程中,我们将一步步演示如何创建 Excel 工作簿、添加自定义属性(是的,*add custom property*),将文件持久化为 **XLSB** 二进制工作簿,最后再加载一次以验证属性是否仍然存在。过程中我们还会涉及 **how to add custom property** 的使用方式,例如存储 ProjectId,让你能够得到一个可复用的模式用于后续项目。 + +> **Pro tip:** 如果你已经在使用 Aspose.Cells 库(下面的代码即基于此),则可以原生支持自定义属性,无需任何 COM 互操作的麻烦。 + +--- + +## 前置条件 + +- .NET 6+(或 .NET Framework 4.6+)。 +- Aspose.Cells for .NET – 通过 NuGet 安装:`Install-Package Aspose.Cells`。 +- 基础的 C# 知识 – 只需几个 `using` 语句即可。 + +就这些。无需安装 Office,无需互操作,纯托管代码即可。 + +--- + +## 步骤 1:How to Save XLSB – 创建 Excel 工作簿 + +首先需要创建一个全新的工作簿对象。可以把它想象成在内存中打开的空白 Excel 文件,只有在决定写入磁盘时才会真正生成。 + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +为什么要从工作簿开始?因为 **create excel workbook** 是后续所有操作的基础——无论你之后是插入公式、图表还是自定义属性。`Workbook` 类抽象了整个文件,而 `Worksheets` 则让你可以访问各个工作表标签。 + +--- + +## 步骤 2:向工作表添加自定义属性 + +接下来就是有趣的部分——**add custom property**。在 Aspose.Cells 中,你可以直接将属性附加到工作表(或整个工作簿)。这里我们将存储一个数值型的 ProjectId,供下游服务读取,而不需要触碰可见单元格。 + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**?只需调用 `CustomProperties.Add(name, value)`。API 会自动处理底层 XML,开发者无需关心低层细节。这是向文件中嵌入不可见元数据的最安全方式。 + +--- + +## 步骤 3:将工作簿保存为 XLSB + +工作簿准备好并且自定义属性已附加后,就可以 **how to save xlsb** 了。XLSB 格式以二进制形式存储数据,通常比传统的 XLSX 更小、打开更快。 + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +只需将 `SaveFormat.Xlsb` 传递给 `Save` 方法即可完成保存。如果你担心这会剥离自定义属性——放心,Aspose.Cells 会在二进制文件中同时保留工作簿级和工作表级的属性。 + +--- + +## 步骤 4:验证自定义属性 + +一个好的习惯是重新加载文件,确认属性在往返过程中仍然存在。这也演示了 **how to add custom property** 在需要时如何再次更新。 + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +如果控制台输出 `12345`,说明你已经成功 **how to save xlsb** 并 **add project id** 于同一个文件。属性隐藏在文件内部元数据中,对 UI 不可见,但代码可以轻松读取。 + +--- + +## 进阶技巧:添加多个属性与边缘情况 + +### 添加多个属性 + +你可以一次性堆叠任意数量的属性: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### 更新已有属性 + +如果属性已经存在,只需重新赋值即可: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### 处理缺失属性 + +读取不存在的属性会抛出 `KeyNotFoundException`。可以这样防护: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### 跨版本兼容性 + +XLSB 在 Excel 2007 + 以及 Excel 在线版中均可打开。但旧版 Office(< 2007)无法读取 XLSB 文件。如需更广泛的兼容性,可考虑再保存一份 XLSX。 + +### 性能考量 + +相较于 XLSX,二进制 XLSB 文件通常小 30‑50 %,加载速度也更快。对于大数据集(数十万行)而言,这种速度提升相当明显。 + +--- + +## 完整示例代码 + +下面是可以直接复制到控制台项目中的完整程序。它包含所有步骤、错误处理以及必要的注释,帮助你快速上手。 + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**预期输出** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +如果看到上述结果,说明你已经掌握了 **how to save xlsb**、**add custom property** 以及 **add project id** 的完整技巧,并拥有一段整洁、可复用的代码片段。 + +--- + +## 常见问题 + +**Q: 这在 .NET Core 上可用吗?** +A: 完全可以。Aspose.Cells 支持 .NET Standard,因此相同代码可在 .NET 5/6/7 以及 .NET Framework 上运行。 + +**Q: 能否将自定义属性添加到整个工作簿而不是单个工作表?** +A: 可以。使用 `workbook.CustomProperties.Add("Key", value);` 即可在工作簿级别附加属性。 + +**Q: 如果需要存储大字符串(例如 JSON)作为属性怎么办?** +A: API 接受任意长度的字符串,但请注意极大的数据块会增加文件体积。对于海量数据,建议使用隐藏工作表来存放。 + +**Q: 自定义属性在 Excel UI 中可见吗?** +A: 不会直接显示。用户可以通过 **文件 → 信息 → 属性 → 高级属性 → 自定义** 查看,但它不会出现在单元格网格中。 + +--- + +## 结论 + +本文介绍了在 C# 中 **how to save xlsb** 文件并 **add custom property**(如 ProjectId)的完整流程。通过遵循 **create excel workbook** → **add custom property** → **save as XLSB** → **verify** 的步骤,你现在拥有一份可靠、可供搜索引擎和 AI 助手引用的参考资料。 + +接下来,你可以进一步探索: + +- **how to add custom property** 到多个工作表的循环实现。 +- 在保存之前将 DataTable 数据导入工作簿。 +- 为 XLSB 文件加密以提升安全性。 + +欢迎随意实验、修改属性名称,或在需要更广兼容性时改用 XLSX。如果遇到棘手场景,欢迎留言讨论,我们一起排查。祝编码愉快! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/chinese/net/excel-autofilter-validation/_index.md index fd10e1b50c..486ef4696a 100644 --- a/cells/chinese/net/excel-autofilter-validation/_index.md +++ b/cells/chinese/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ 通过本全面的分步指南,了解如何轻松地使用 .NET 中的 Aspose.Cells 自动过滤 Excel 行。 ### [Excel 中的小数数据验证](./decimal-data-validation-in-excel/) 通过我们简单易懂的指南,了解如何使用 Aspose.Cells for .NET 在 Excel 中实现十进制数据验证。轻松增强数据完整性。 +### [从 Excel 中移除自动筛选 – 完整 C# 指南](./remove-autofilter-from-excel-complete-c-guide/) +通过本指南,学习如何使用 Aspose.Cells for .NET 在 C# 中删除 Excel 工作表的自动筛选功能,确保数据处理更灵活。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/chinese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..9776a3b8cd --- /dev/null +++ b/cells/chinese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,228 @@ +--- +category: general +date: 2026-03-21 +description: 学习如何使用 C# 从 Excel 中移除自动筛选。本分步指南还展示了如何删除自动筛选、关闭 Excel 自动筛选以及清除 Excel 表格筛选。 +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: zh +og_description: 使用 C# 从 Excel 中移除自动筛选。本教程展示如何删除自动筛选、关闭 Excel 自动筛选,以及仅用几行代码清除 Excel + 表格筛选。 +og_title: 从 Excel 中移除自动筛选 – 完整 C# 指南 +tags: +- C# +- Aspose.Cells +- Excel automation +title: 从 Excel 中移除自动筛选 – 完整 C# 指南 +url: /zh/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 从 Excel 中删除 AutoFilter – 完整 C# 指南 + +是否曾经需要 **remove AutoFilter from Excel**,但不确定到底哪个 API 调用可以真正关闭它?你并不是唯一的遇到这种情况的人。在许多报告流水线中,过滤器 UI 会妨碍后续处理,因此清除它是一个常见需求。在本教程中,我们将演示一个简洁、可投入生产的解决方案,不仅展示 **how to delete AutoFilter**,还解释 **turn off AutoFilter Excel** 风格的过滤器,以及如何 **clear Excel table filter** 完全清除。 + +> **你将获得的内容:** 一个可直接运行的 C# 程序,加载现有工作簿,删除第一个表格的过滤器,并保存一个没有任何残留 UI 元素的新副本。 + +## 前置条件 + +- .NET 6+ (or .NET Framework 4.7.2+) +- The **Aspose.Cells** NuGet package (the API we use in the code) +- A sample workbook (`TableWithFilter.xlsx`) that already contains a table with an AutoFilter applied +- A basic understanding of C# syntax (no deep Excel internals required) + +如果你已经具备以上条件,让我们开始吧。 + +--- + +## 步骤 1 – 安装 Aspose.Cells 并设置项目 + +在运行任何代码之前,你需要先获取提供 `Workbook`、`Worksheet` 和 `ListObject` 类的库。 + +```bash +dotnet add package Aspose.Cells +``` + +> **专业提示:** 使用免费评估版进行测试;只需记得在发布到生产环境前设置许可证密钥。 + +### 为什么这很重要 +Aspose.Cells 抽象了底层的 OOXML 处理,使我们能够在不自行解析 XML 的情况下操作表格、过滤器和样式。这就是为什么 **remove autofilter from excel** 任务可以变成一行代码,而不需要处理大量 XML。 + +--- + +## 步骤 2 – 加载包含表格的工作簿 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +`Workbook` 对象代表整个 Excel 文件。首先加载它可以确保我们拥有一个干净的内存副本进行操作,这在后续 **clear excel table filter** 而不影响其他工作表时至关重要。 + +--- + +## 步骤 3 – 获取工作表和目标表格 + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +**ListObject** 是 Aspose 对 Excel 表格的称呼。即使工作表中有多个表格,你也可以遍历 `worksheet.ListObjects` 并对每个表格应用相同的逻辑。这种灵活性回答了许多开发者常问的 “如果我有多个表格怎么办?” 的问题。 + +--- + +## 步骤 4 – 从表格中删除 AutoFilter + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +将 `AutoFilter` 设置为 `null` **会完全删除过滤器对象**,这是最可靠的 **how to delete autofilter** 方法。另一属性 `ShowAutoFilter` 仅隐藏 UI,却仍保持过滤引擎激活——如果你只想在视觉上 **turn off autofilter excel**,而保留底层条件,这会很有用。 + +> **边缘情况:** 如果表格没有应用 AutoFilter,`table.AutoFilter` 已经是 `null`。上述代码是安全的;它仅什么也不做。 + +--- + +## 步骤 5 – 保存修改后的工作簿 + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +保存为新文件可以保持原始文件不变——这是自动化 Excel 转换的最佳实践。运行程序后,打开 `NoAutoFilter.xlsx`;你会看到表格没有任何过滤下拉框,从而确认 **remove excel table filter** 操作已成功。 + +--- + +## 验证结果 – 预期表现 + +1. **在 Excel 中打开 `NoAutoFilter.xlsx`**。 +2. **选中表格** – 列标题旁的小漏斗图标应消失。 +3. **检查其他工作表** – 它们保持不变,证明我们仅在目标工作表上 **clear excel table filter**。 + +如果图标仍然存在,请再次确认你定位的 `ListObject` 索引是否正确。记住,Aspose 中的 Excel 表格是从零开始计数的,因此 `ListObjects[0]` 是工作表上的第一个表格。 + +--- + +## 处理多个表格或工作表 + +有时你需要 **remove autofilter from excel** 包含多个工作表和表格的工作簿。下面给出一个快速扩展示例: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +此循环确保在所有位置 **turn off autofilter excel**,消除可能导致下游数据导入出错的隐藏过滤器。 + +--- + +## 常见陷阱及规避方法 + +| Pitfall | Why it Happens | Fix | +|---------|----------------|-----| +| **保存后过滤器仍然存在** | 使用 `ShowAutoFilter = false` 只会隐藏 UI。 | 使用 `table.AutoFilter = null` 真正删除它。 | +| **表格索引错误** | 假设第一个表格就是需要的表格。 | 检查 `worksheet.ListObjects.Count` 并使用有意义的名称(`tbl.Name`)。 | +| **缺少许可证** | 评估版可能会插入水印。 | 尽早注册许可证:`License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **文件被锁定** | Excel 仍然打开源文件。 | 在运行脚本前确保工作簿已在 Excel 中关闭。 | + +--- + +## 额外内容:重新添加 AutoFilter(如果你改变主意) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +拥有逆向操作可以让本教程成为 **remove autofilter from excel** 与 **how to delete autofilter** 场景的一站式解决方案。 + +--- + +## 完整可运行示例(复制粘贴即用) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +运行上述代码将对工作簿中的每个表格 **remove autofilter from excel**,为后续处理提供干净的起点。 + +--- + +## 结论 + +我们已经完整介绍了使用 C# **remove autofilter from excel** 所需的全部内容。从安装 Aspose.Cells、加载工作簿、定位表格、实际删除过滤器,到保存干净的文件——每一步都解释了背后的 “why”。现在你已经掌握了在单个可复用代码片段中实现 **how to delete autofilter**、**remove excel table filter**、**turn off autofilter excel** 和 **clear excel table filter** 的方法。 + +准备好迎接下一个挑战了吗?尝试自动化添加条件格式,或探索如何以编程方式 **add an AutoFilter back**。这两个主题直接基于我们刚才的概念,能够让你的 Excel 自动化工具箱更加丰富。 + +有疑问,或发现我们未涉及的场景?在下方留言——祝编码愉快! + +--- + +![显示没有任何过滤下拉框的 Excel 工作表的截图 – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/chinese/net/excel-comment-annotation/_index.md index 498c600f36..9573c7949b 100644 --- a/cells/chinese/net/excel-comment-annotation/_index.md +++ b/cells/chinese/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ 学习如何使用 Aspose.Cells for .NET 在 Excel 单元格中添加注释。为初学者提供增强 Excel 功能的分步指南。 ### [格式化注释 - 字体、颜色、对齐方式](./format-comments-font-color-alignment/) 了解如何使用 Aspose.Cells for .NET 轻松格式化 Excel 注释。自定义字体、大小和对齐方式,增强您的电子表格效果。 +### [使用智能标记在 C# 中创建 Excel 工作簿并添加/填充注释](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +了解如何使用 Aspose.Cells for .NET 在 C# 中创建 Excel 工作簿,并通过智能标记添加和填充注释。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/chinese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..0883bde9ae --- /dev/null +++ b/cells/chinese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-03-21 +description: 使用 C# 创建 Excel 工作簿,并学习如何向 Excel 添加批注,使用智能标记自动填充批注。面向开发者的逐步指南。 +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: zh +og_description: 使用 C# 创建 Excel 工作簿,快速向 Excel 添加批注,然后使用 Smart Markers 填充批注。完整教程及代码。 +og_title: 创建 Excel 工作簿 C# – 添加和填充批注 +tags: +- C# +- Excel automation +- Aspose.Cells +title: 创建 Excel 工作簿 C# – 添加并填充带智能标记的批注 +url: /zh/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 创建 Excel 工作簿 C# – 添加并填充带有智能标记的批注 + +是否曾经需要 **create Excel workbook C#** 并想知道如何嵌入一个能够自动更新的批注?你并不是唯一的需求者。在许多报表场景中,你希望单元格批注显示类似 *“Created by Alice on 2024‑07‑15”*,而不必每次都硬编码姓名或日期。 + +在本教程中,我们将准确展示 **how to add comment to Excel**,随后展示 **how to fill comment** 使用 Aspose.Cells 的 Smart Markers。完成后,你将拥有一个可直接运行的程序,能够创建工作簿、注入动态批注并保存文件——只需几个简洁的步骤。 + +> **你将获得:** 一个完整的、可编译的 C# 控制台应用程序,对每行代码的解释,常见陷阱的提示,以及扩展方案的思路。 + +## 前提条件 + +- .NET 6.0 SDK 或更高版本(代码同样适用于 .NET Core 和 .NET Framework) +- Visual Studio 2022 或你喜欢的任何 IDE +- **Aspose.Cells for .NET** NuGet 包 (`Install-Package Aspose.Cells`) – 该库提供下面使用的 `Workbook`、`Worksheet` 和 `SmartMarkerProcessor` 类。 +- 对 C# 语法有基本了解 – 如果你写过 `Console.WriteLine`,就可以开始了。 + +既然前期准备工作已经完成,让我们开始吧。 + +![Create Excel workbook C# example screenshot](excel-workbook.png "Create Excel workbook C# example") + +## 步骤 1:初始化新工作簿 – 创建 Excel 工作簿 C# 基础 + +首先我们需要一个全新的工作簿对象。把 `Workbook` 看作空白画布;没有它就无法放置任何单元格、行或批注。 + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**为什么这很重要:** `Workbook` 会自动创建默认工作表,因此除非需要额外的标签页,否则无需调用 `Add`。访问 `Worksheets[0]` 是开始填充数据的最快方式。 + +## 步骤 2:插入智能标记批注 – 如何使用标记添加批注 + +接下来我们在单元格 **B2** 中放置一个批注,里面包含 Smart Marker 标记(`«UserName»` 和 `«CreatedDate»`)。这些标记稍后会被实际值替换。 + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**说明:** +- `CreateComment()` 在不存在批注时创建批注对象;如果已存在则返回已有的批注。 +- `Note` 属性保存可见文本。将占位符用 `« »` 包裹,告诉 Aspose.Cells 这些是 **Smart Markers** ——可以一次性替换的占位符。 + +> **专业提示:** 如果需要多行批注,可在字符串中使用 `\n`,例如 `"Line1\nLine2"`。 + +## 步骤 3:准备数据对象 – 动态填充批注 + +Smart Markers 需要数据源。在 C# 中最简便的方式是使用与占位符名称匹配的匿名类型。 + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**为什么使用匿名类型?** +它轻量、无需额外的类文件,并且属性名(`UserName`、`CreatedDate`)与标记名称完全对应。如果你更喜欢强类型模型,只需创建一个具有相同属性的类即可。 + +## 步骤 4:处理智能标记 – 使用数据对象填充批注 + +现在魔法出现了。`SmartMarkerProcessor` 会扫描工作簿中所有的 `«…»` 标记,并用 `markerData` 中的值进行替换。 + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**内部原理是什么?** +`SmartMarkerProcessor` 会遍历每个单元格、批注、页眉等,查找 `«Token»` 模式。找到后,它使用反射读取 `markerData` 中对应的属性并写回值。无需手动循环。 + +## 步骤 5:保存工作簿 – 填充 Excel 批注并持久化文件 + +最后我们将工作簿写入磁盘。此时批注内容类似于 *“Created by Alice on 03/21/2026 10:15 AM”*。 + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**结果验证:** 在 Excel 中打开 `CommentFilled.xlsx`,将鼠标悬停在单元格 **B2** 上,即可看到包含实际用户名和时间戳的批注。以后运行时无需再改动代码,只需更改 `markerData` 的值。 + +--- + +## 常见变体与边缘情况 + +### 使用自定义日期格式 + +如果希望日期采用 `yyyy‑MM‑dd` 格式,请调整数据对象: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### 添加多个批注 + +你可以对其他单元格重复 **步骤 2**。每个批注可以拥有自己的标记集合,若信息通用也可以共享相同的标记。 + +### 使用已有工作簿 + +不要使用 `new Workbook()`,而是加载已有文件: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +其余步骤保持不变——Smart Markers 同样适用于新建和已有的文件。 + +### 处理空值 + +如果某个标记可能缺失,可将属性包装为可空类型或提供回退值: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +当源为 `null` 时,处理器会插入 *“Unknown”*。 + +## 完整可运行示例(复制粘贴即用) + +下面是 **完整程序**,你可以直接放入控制台应用项目并立即运行(只需将 `YOUR_DIRECTORY` 替换为实际的文件夹路径)。 + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +运行程序,打开生成的文件,即可在单元格 **B2** 中看到动态批注。很简单,对吧? + +## 常见问题解答(FAQ) + +**Q: 这在 .NET Framework 4.7 上能工作吗?** +A: 当然可以。Aspose.Cells 支持 .NET Framework 4.0 及以上以及 .NET Core/5/6/7。只需引用相应的 DLL 或 NuGet 包。 + +**Q: 我能将此方法用于数据验证或条件格式化吗?** +A: Smart Markers 主要用于向单元格、批注、页眉和页脚插入值。对于条件格式化,仍需使用常规的 `Style` API。 + +**Q: 如果需要在 **不同** 的工作表上添加批注怎么办?** +A: 获取目标工作表 (`workbook.Worksheets["MySheet"]`) 并在该工作表的单元格上重复 **步骤 2**。 + +## 后续步骤与相关主题 + +- **How to add comment to Excel** 程序化地为多个单元格添加批注(循环遍历范围)。 +- **Fill Excel comment** 使用来自数据库的数据(将 `DataTable` 作为 Smart Markers 的数据源)。 +- 探索 **Smart Marker arrays** 以自动生成表格。 +- 了解 **Aspose.Cells styling**,以设置批注的字体、颜色和大小。 + +尝试这些代码片段,替换数据源,你将快速掌握在任何 Excel 自动化场景中 **how to fill comment** 的技巧。 + +### 总结 + +我们刚刚完整演示了使用 Smart Markers **create excel workbook c#**、**add comment to excel** 和 **fill excel comment** 的全过程。该方案简洁、可复用,已可投入生产。 + +试一试,调整占位符,让库来完成繁重的工作。如果遇到任何问题,欢迎在下方留言——祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..d7dfc247aa 100644 --- a/cells/chinese/net/excel-custom-number-date-formatting/_index.md +++ b/cells/chinese/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,8 @@ 通过本分步教程学习如何使用 Aspose.Cells for .NET 根据自定义数字格式检查 Excel 单元格值。 ### [将数据导入 Excel 工作表时指定公式字段](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) 在本详细教程中了解如何使用 Aspose.Cells for .NET 将数据导入具有指定公式字段的 Excel 工作表。 +### [在 C# 中设置单元格自定义格式 – Excel 日期写入与读取完整指南](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +本指南详细演示如何在 Aspose.Cells for .NET 中使用 C# 设置单元格自定义格式,并实现 Excel 日期的写入和读取。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/chinese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..f56d98ab86 --- /dev/null +++ b/cells/chinese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-03-21 +description: 在 C# 中设置单元格自定义格式,学习如何向 Excel 写入日期、应用自定义日期格式、从 Excel 读取 DateTime,以及快速创建工作簿工作表。 +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: zh +og_description: 在 C# 中设置单元格自定义格式以写入日期到 Excel,应用自定义日期格式,从 Excel 读取 DateTime,并轻松创建工作簿工作表。 +og_title: 在 C# 中设置单元格自定义格式 – 在 Excel 中写入和读取日期 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: 在 C# 中设置单元格自定义格式 – Excel 日期写入与读取完整指南 +url: /zh/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 设置单元格自定义格式 – 使用 C# 在 Excel 中写入和读取日期 + +是否曾需要在 C# 中 **设置单元格自定义格式** 到 Excel 文件,但不确定从何入手?你并不孤单。在许多报表工具或数据导出实用程序中,日期必须以特定地区格式显示——比如日本纪元日期、财政日历或 ISO‑8601 字符串。 + +在本教程中,我们将演示一个 **完整、可运行的示例**,展示如何 **write date to Excel**、**apply custom date format**、**read DateTime from Excel**,以及使用 Aspose.Cells **create workbook worksheet**。完成后,你将拥有一个可直接放入任何 .NET 项目的单文件程序。 + +## 你将学到 + +- 如何以编程方式 **create workbook worksheet**。 +- 使用特定地区字符串 **write date to Excel** 的完整步骤。 +- 如何 **apply custom date format**(包括日本纪元表示)。 +- 如何将 Excel 中的日期 **read DateTime from Excel** 回 `DateTime` 对象。 +- 处理 Excel 日期时可能遇到的技巧、陷阱和变体。 + +无需外部文档——所有内容都在这里。 + +## 前置条件 + +- .NET 6.0 或更高版本(代码同样适用于 .NET Framework 4.7+)。 +- 通过 NuGet 安装 Aspose.Cells for .NET(`Install-Package Aspose.Cells`)。 +- 对 C# 语法有基本了解——不需要高级技巧。 + +> **专业提示:** 如果使用 Visual Studio,请启用 *nullable reference types* 以提前捕获细微错误。 + +## 步骤 1:Create a Workbook and Worksheet + +首先,你需要一个表示 Excel 文件的 workbook 对象,以及一个存放数据的 worksheet。 + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*为什么重要:* `Workbook` 类是所有 Excel 操作的入口点。将其在内存中创建意味着在显式保存之前不会触及文件系统,从而保持过程快速且易于测试。 + +## 步骤 2:Write Date to Excel + +接下来,我们将在单元格 **A1** 中放入日本纪元日期字符串(`"R02-04-01"`),该字符串模拟令和时代(第 2 年,4 月 1 日)。 + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*正在发生的事情:* `PutValue` 存储原始字符串。Aspose.Cells 稍后会根据单元格的样式尝试解析它。如果直接写入 `DateTime`,则会丢失你想要显示的纪元信息。 + +## 步骤 3:Apply the Built‑in Date Number Format (ID 14) + +Excel 内置的日期格式 ID 14(`mm-dd-yy`)告诉引擎该单元格 **包含日期**,而不仅仅是文本。 + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*为何使用 ID 14?* 这是通用的“短日期”格式,确保 Excel 将内容视为日期值,这是任何自定义格式正常工作的前提。 + +## 步骤 4:Set a Custom Format to Display Japanese Era Notation + +现在进入有趣的部分:我们让 Excel 使用日本纪元格式渲染日期。自定义字符串 `[$-ja-JP]ggge年m月d日` 正是如此实现的。 + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*解释:* +- `[$-ja-JP]` 强制使用日语地区。 +- `ggg` 表示纪元名称(例如 “R” 代表令和)。 +- `e` 表示纪元年份。 +- `年`、`月`、`日` 为字面日语字符,分别表示年、月、日。 + +如果需要其他地区,只需将 `ja-JP` 替换为相应的文化代码(例如 `en-US`)。 + +## 步骤 5:Retrieve the Parsed DateTime Value + +最后,读取 Excel 从单元格解析出的 **实际 `DateTime`**。这证明字符串已被正确解释。 + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*结果:* 控制台输出 `Parsed DateTime: 2020-04-01`。虽然我们输入的是日本纪元字符串,Excel 在内部仍存储公历日期,你可以用它进行计算、比较或进一步导出。 + +## 步骤 6:Save the Workbook (Optional) + +如果想在 Excel 中查看格式化后的工作簿,只需将其保存到磁盘。 + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +打开生成的 **JapaneseEraDate.xlsx**,你会看到单元格 **A1** 显示 `R02年4月1日`(即我们设置的日本纪元格式)。 + +![设置单元格自定义格式示例](image-placeholder.png "Excel 单元格显示日本纪元日期 – 设置单元格自定义格式") + +*上述 alt 文本包含主要关键词,满足图片 SEO 要求。* + +## 常见变体与边缘情况 + +### 写入不同的日期格式 + +如果更喜欢 ISO‑8601(`2020-04-01`)而非纪元字符串,只需修改 `PutValue` 调用: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### 处理空或 Null 单元格 + +读取日期时,务必检查单元格是否为空,以避免 `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### 支持多种地区 + +可以遍历文化代码列表并动态应用: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## 专业技巧与注意事项 + +- **始终先设置内置数字格式**(`Style.Number`)。如果不先设置,Excel 会将单元格视为普通文本,自定义格式将被忽略。 +- **地区代码不区分大小写**,但使用规范形式(`ja-JP`)可避免混淆。 +- **保存是可选的**,用于内存处理时;你可以直接将工作簿流式输出到网页响应(`workbook.Save(stream, SaveFormat.Xlsx)`)。 +- **Aspose.Cells 许可证**:免费评估版会添加水印。生产环境请确保拥有有效许可证,以免出现性能惩罚。 + +## 小结 + +我们展示了如何在 C# 中 **set cell custom format** 以显示日本纪元日期,如何 **write date to Excel**、**apply custom date format**、**read DateTime from Excel**,以及 **create workbook worksheet**——全部在一个单文件、可自行运行的程序中实现。主要关键词自然贯穿全文,次要关键词嵌入标题和正文,兼顾 SEO 与 AI 引用标准。 + +## 接下来该做什么? + +- 探索 **conditional formatting**,为逾期日期添加高亮。 +- 将此方法与 **PivotTables** 结合,实现动态报表。 +- 尝试 **读取大型 CSV 文件** 并使用相同的日期处理逻辑转换为 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/excel-data-export-retrieval/_index.md b/cells/chinese/net/excel-data-export-retrieval/_index.md index ccc3512e63..3036abde2e 100644 --- a/cells/chinese/net/excel-data-export-retrieval/_index.md +++ b/cells/chinese/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ ### [从 Excel 单元格中检索数据](./retrieve-data-from-cells-in-excel/) 通过本分步教程学习如何使用 Aspose.Cells for .NET 从 Excel 单元格中检索数据,非常适合初学者和经验丰富的开发人员。 +### [在 C# 中导出 Excel 数据表 – 完整指南](./export-excel-data-table-in-c-complete-guide/) +通过本完整指南学习如何使用 Aspose.Cells for .NET 在 C# 中导出 Excel 数据表,适合各类开发者。 + +### [在 C# 中导出 Excel 数据 – 步骤指南](./how-to-export-excel-data-in-c-step-by-step-guide/) +通过本逐步指南学习如何使用 Aspose.Cells for .NET 在 C# 中导出 Excel 数据,适合所有开发者。 + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/chinese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/chinese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..ff6cc1cc6f --- /dev/null +++ b/cells/chinese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-03-21 +description: 使用 Aspose.Cells 将 Excel 数据表导出为带标题的 DataTable,限制小数位数,并导出前 100 行。 +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: zh +og_description: 学习如何将 Excel 数据表导出为 DataTable,保留标题,限制小数位数,并在 C# 中获取前 100 行。 +og_title: 在 C# 中导出 Excel 数据表 – 步骤指南 +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: 在 C# 中导出 Excel 数据表 – 完整指南 +url: /zh/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 导出 Excel 数据表 – 完整 C# 演练 + +需要将工作簿中的 **export excel data table** 导出为 .NET `DataTable` 吗?您来对地方了——本指南将准确演示如何实现此操作,保留列标题,限制小数位数,并仅提取前 100 行。 + +如果您曾盯着电子表格并想,“如何在不丢失格式的情况下将其导入我的应用?” 那么您并不孤单。接下来几分钟,我们将把这种“假设”转化为一个具体的、可复制粘贴的解决方案,使用 Aspose.Cells——一个流行的 Excel 操作库。 + +## 您将学到 + +- 如何使用 `ExportDataTable` 方法 **export excel to datatable**。 +- 如何保留原始列名(`export excel with headers`)。 +- 如何通过配置 `ExportTableOptions` 来 **limit decimal places excel** 值。 +- 如何安全地仅检索前 100 行(`export first 100 rows`)。 + +无需外部脚本,无需神奇字符串——只需普通的 C# 代码,您可以将其放入任何 .NET 项目中。 + +## 前置条件 + +| 要求 | 原因 | +|------|------| +| .NET 6 或更高(或 .NET Framework 4.7+) | Aspose.Cells 两者皆支持,但更新的运行时提供异步就绪的 API。 | +| Aspose.Cells for .NET NuGet 包 | 提供 `Workbook`、`ExportTableOptions` 和 `ExportDataTable` 辅助方法。 | +| 示例 Excel 文件(例如 `Numbers.xlsx`) | 您将导出数据的来源。 | +| 基本的 C# 知识 | 您将跟随代码片段学习,但不需要任何高级技巧。 | + +如果上述内容有陌生之处,请使用 `dotnet add package Aspose.Cells` 获取 NuGet 包,并创建一个包含少量数字的简易 Excel 文件——作为测试数据。 + +![导出 excel 数据表示例](excel-data-table.png "将导出到 DataTable 的 Excel 表格截图") + +## 步骤 1:加载工作簿(export excel data table) + +您首先需要的是指向 Excel 文件的 `Workbook` 实例。可以把它想象成在阅读章节之前先打开一本书。 + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **为什么这很重要:** 加载工作簿后,您即可访问其工作表、单元格和样式。如果文件路径错误,Aspose 将抛出 `FileNotFoundException`,因此请再次确认文件位置。 + +## 步骤 2:配置导出选项 – limit decimal places excel + +默认情况下,Aspose 会以完整精度导出所有数值。通常您只需要少量有效数字,尤其是在将数据提供给 UI 网格或需要四舍五入数字的 API 时。 + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **专业提示:** 如果需要不同的舍入策略(例如,总是向上取整),可以在导出后对 `DataTable` 进行后处理。`SignificantDigits` 设置是 **limit decimal places excel** 的最快方法,无需编写额外循环。 + +## 步骤 3:导出所需范围(export first 100 rows) + +现在我们告诉 Aspose 将哪块单元格导入到 `DataTable`。在本教程中,我们获取前 100 行和前 10 列,但您可以根据实际情况调整这些数字。 + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **边缘情况:** 如果工作表少于 100 行,Aspose 将仅导出实际存在的内容,不会抛出错误。不过,您可能希望防范意外过小的范围: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## 步骤 4:验证结果 – 快速控制台输出 + +在调试器中查看数据固然不错,但将几行数据打印到控制台可以确认 **export excel to datatable** 已成功执行,并且小数位已被截断。 + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### 预期输出 + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +请注意,数值列现在仅显示四位有效数字,符合我们之前设置的 `SignificantDigits = 4`。 + +## 步骤 5:完整封装 – 可运行的完整示例 + +下面是完整的程序,您可以复制粘贴到控制台应用中。它包含错误处理、可选的行数检查以及用于打印的辅助方法。 + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +运行程序后,您将看到工作表的前 100 行,已圆整且列名保持完整。 + +## 常见问题与注意事项 + +| 问题 | 答案 | +|------|------| +| **如果我的工作表有合并单元格怎么办?** | `ExportDataTable` 通过取左上角单元格的值来展平合并单元格。如果需要自定义处理,请先取消合并或读取原始 `Cell` 对象。 | +| **我可以导出到 `DataSet` 吗?** | 可以——使用 `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/chinese/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..231ebac145 --- /dev/null +++ b/cells/chinese/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,258 @@ +--- +category: general +date: 2026-03-21 +description: 如何使用 Aspose.Cells 在 C# 中导出带列名的 Excel 数据,保留数字格式,并读取特定行。学习如何读取 Excel 工作表并高效导出特定行。 +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: zh +og_description: 如何使用 Aspose.Cells 导出带列名的 Excel 数据,保留数字格式,并读取特定行。为 C# 开发者提供完整可运行的示例。 +og_title: 如何在 C# 中导出 Excel 数据 – 完整编程指南 +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: 如何在 C# 中导出 Excel 数据——一步步指南 +url: /zh/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中导出 Excel 数据 – 完整编程指南 + +是否曾经想过 **如何导出 excel** 数据而不丢失原始格式?也许你尝试过快速复制‑粘贴,结果日期显示成 “44728” 或者缺少列标题。那真让人沮丧,对吧?在本教程中,你将看到一种简洁、端到端的方式来读取 Excel 工作表、保留数字格式、导出带列名的数据,甚至只挑选你需要的行。 + +我们将使用 Aspose.Cells 库,因为它提供对导出选项的细粒度控制。阅读完本指南后,你将拥有一个可复用的代码片段,可直接放入任何 .NET 项目,并且了解每个选项为何重要。无需外部文档——所有内容都在这里。 + +--- + +## 你将学到的内容 + +- **Read Excel worksheet** 使用 Aspose.Cells 读取到内存中。 +- **Export specific rows**(例如 rows 0‑49)并保留列名。 +- **Preserve number format** 以保持货币、日期和百分比的原始显示。 +- 如何 **export with column names** 并在需要时包含单元格注释。 +- 一个完整、可直接运行的 C# 示例以及常见陷阱的提示。 + +### 前置条件 + +- .NET 6.0 或更高(代码同样适用于 .NET Framework 4.6+)。 +- 通过 NuGet 安装 Aspose.Cells for .NET(`Install-Package Aspose.Cells`)。 +- 将 Excel 文件(`input.xlsx`)放置在可引用的文件夹中。 + +> **Pro tip:** 如果你在 CI 流水线中,考虑从私有源获取 NuGet 包,以避免许可证意外。 + +## 第一步 – 安装 Aspose.Cells 并添加命名空间 + +首先,确保项目中已安装 Aspose.Cells 包。打开 Package Manager Console 并运行: + +```powershell +Install-Package Aspose.Cells +``` + +然后在 C# 文件顶部添加所需的 `using` 指令: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +这些导入让你能够使用 `Workbook`、`Worksheet`、`ExportTableOptions` 和 `DataTable`——这是 **reading an Excel worksheet** 并导出数据的核心组件。 + +## 第二步 – 加载工作簿(读取 Excel 文件) + +现在我们真正 **read the Excel worksheet**。`Workbook` 构造函数接受文件路径,Aspose.Cells 能处理 `.xlsx` 和旧的 `.xls` 格式。 + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Why this matters:** 只加载一次工作簿并重复使用同一个 `Worksheet` 对象,比起反复打开文件要高效得多,尤其是处理大型电子表格时。 + +## 第三步 – 配置导出选项(保留数字格式和列名) + +这里我们告诉 Aspose.Cells *如何* 导出。`ExportTableOptions` 类让我们可以细致地调节输出。我们将启用三个标志: + +1. `ExportAsString = true` – 强制每个单元格转换为字符串,确保数字保持其可视化表示。 +2. `IncludeCellComments = true` – 复制单元格上的任何注释(对文档编写很有帮助)。 +3. `PreserveNumberFormat = true` – 保留原始数字格式(货币符号、日期模式等)。 + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Edge case:** 如果将 `ExportAsString` 设置为 `false`,但仍想保留数字格式,可能会得到原始数值(例如日期显示为 44728)。同时开启两个标志可以避免此类意外。 + +## 第四步 – 获取第一个工作表(读取 Excel 工作表) + +大多数简单文件的数据位于第一个工作表,所以我们通过索引获取它。如果需要其他工作表,只需将 `0` 替换为相应的零基索引,或使用 `workbook.Worksheets["SheetName"]`。 + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Why it’s useful:** 直接访问工作表对象可以完全控制其 `Cells` 集合,这对于后续的 **export specific rows** 至关重要。 + +## 第五步 – 导出单元格范围(导出特定行) + +现在进入教程的核心:将第 0‑49 行和第 0‑4 列(即前 50 行和前五列)导出到 `DataTable`。我们还会让 Aspose.Cells 将列名作为 `DataTable` 的第一行。 + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### 这段代码的作用 + +- **`startRow: 0`** – 从工作表的最顶部开始。 +- **`totalRows: 50`** – 获取前 50 行(即 **export specific rows**)。 +- **`totalColumns: 5`** – 将导出限制在前五列。 +- **`includeColumnNames: true`** – 确保 `DataTable` 的列标题与 Excel 表头行匹配,满足 **export with column names** 的需求。 +- **`exportOptions`** – 应用第 3 步的设置,使数值保持如 “$1,234.56” 而不是 “1234.56” 的显示。 + +## 第六步 – 验证导出(结果是什么样的) + +让我们将前几行打印到控制台,以便查看格式是否保留。 + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**预期输出(示例):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +请注意日期以 `MM/dd/yyyy` 格式显示,货币保留了 `$` 符号——这要归功于 **preserve number format**。 + +## 常见陷阱及规避方法 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| 日期变成大数字 | `ExportAsString` 为 `false` | 保持 `ExportAsString = true` 或手动转换单元格 | +| 缺少列标题 | `includeColumnNames` 设置为 `false` | 需要 **export with column names** 时设为 `true` | +| 注释消失 | `IncludeCellComments` 未启用 | 在 `ExportTableOptions` 中开启 `IncludeCellComments` | +| 导出错误的工作表 | 在多工作表文件中使用 `Worksheets[0]` | 指定工作表名称:`workbook.Worksheets["Data"]` | +| 超出范围异常 | `totalRows` 超出实际行数 | 使用 `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +## 进阶:导出整个工作表并保持格式 + +如果以后需要导出整张工作表,只需将 `totalRows` 和 `totalColumns` 替换为工作表的最大维度: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +现在你拥有一个适用于任意大小的 **read excel worksheet** 例程,同时仍然 **preserving number format** 并 **exporting with column names**。 + +## 完整可运行示例(复制粘贴即用) + +下面是完整的程序,可直接放入控制台应用。它包含所有步骤、导入以及一个简单的验证打印。 + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +将其保存为 `Program.cs`,运行 `dotnet run`,你应该能在终端看到格式化的预览。 + +## 结论 + +我们已经完整演示了使用 Aspose.Cells **how to export excel** 数据的全过程,涵盖了从加载工作簿、保留数字格式、导出列名到限制特定行的导出。代码独立完整,可直接运行,并包含对常见边缘情况的实用防护。 + +准备好下一个挑战了吗?尝试直接导出为 CSV 并保持原始数字格式,或将 `DataTable` 推入 Entity Framework Core 上下文进行批量数据库插入。这两种场景都基于我们这里讲解的相同基础。 + +If you found this guide helpful + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..fcd834af71 100644 --- a/cells/chinese/net/excel-workbook/_index.md +++ b/cells/chinese/net/excel-workbook/_index.md @@ -75,6 +75,7 @@ Excel 工作表中的已定义名称可以方便地管理数据。它们使公 | [调整压缩级别](./adjust-compression-level/) 了解如何使用 Aspose.Cells for .NET 调整 Excel 文件的压缩级别。遵循本分步指南,高效优化文件大小。| | [允许前导撇号](./allow-leading-apostrophe/) 使用 Aspose.Cells for .NET 轻松管理 Excel 中的前导撇号。本教程将逐步指导您完成整个过程。| | [创建共享工作簿](./create-shared-workbook/) 通过本指南,学习如何使用 Aspose.Cells for .NET 创建共享工作簿。非常适合增强团队协作。| +| [创建带样式表格的 Excel 工作簿](./create-excel-workbook-with-styled-table-step-by-step-guide/) 通过本分步指南了解如何使用 Aspose.Cells for .NET 创建带样式表格的 Excel 工作簿。| | [检测链接类型](./detect-link-types/) 学习如何使用 Aspose.Cells for .NET 检测 Excel 中的超链接类型。包含简单的步骤和代码示例。| | [提取嵌入的 Mol 文件](./extract-embedded-mol-file/) 了解如何使用 Aspose.Cells for .NET 轻松地从 Excel 工作簿中提取嵌入的 MOL 文件。| | [加载工作簿时过滤定义的名称](./filter-defined-names-while-loading-workbook/) 在本综合指南中了解如何在使用 Aspose.Cells for .NET 加载工作簿时过滤定义的名称。| diff --git a/cells/chinese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/chinese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..ed1102309f --- /dev/null +++ b/cells/chinese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-03-21 +description: 创建 Excel 工作簿并将数据表导入 Excel,同时设置列样式,导出数据到 Excel,并将 Excel 单元格的日期格式设置为分钟。 +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: zh +og_description: 快速创建 Excel 工作簿。学习如何将数据表导入 Excel、设置列样式、导出数据到 Excel,以及在一个指南中格式化 Excel + 单元格日期。 +og_title: 创建 Excel 工作簿 – 完整的样式与导出教程 +tags: +- C# +- Aspose.Cells +- Excel automation +title: 创建带样式表格的 Excel 工作簿 – 步骤指南 +url: /zh/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 创建 Excel 工作簿 – 完整编程教程 + +是否曾经需要**create excel workbook**看起来直接从代码中就已完美?也许你正从数据库中提取数据,并希望日期能够以正确的格式显示,而无需在 Excel 中后期手动处理。这是一个常见的痛点——尤其是当输出直接发送到客户的收件箱时,他们期望一切都已准备好使用。 + +在本指南中,我们将演示一个完整的、独立的解决方案,**imports datatable to excel**、**set column style**,最后 **export data to excel** 为一个格式良好的文件。你将看到如何 **format excel cells date**,使电子表格像专业报告一样呈现,并在结尾获得一个完整、可运行的示例。没有缺失的部分,没有“查看文档”的快捷方式——只有可以直接放入项目的纯代码。 + +--- + +## 您将学习的内容 + +- 如何使用 Aspose.Cells 库(或任何兼容的 API)**create excel workbook**。 +- 最快速的方式**import datatable to excel**,无需手动逐单元格循环。 +- 技术用于**set column style**,包括对特定列应用日期格式。 +- 如何使用单个 `Save` 调用**export data to excel**。 +- 在尝试**format excel cells date**时常见的陷阱以及如何避免。 + +### 前置条件 + +- .NET 6+(或 .NET Framework 4.6+)。 +- 已安装 Aspose.Cells for .NET(`Install-Package Aspose.Cells`)。 +- 准备好导出的 `DataTable`——你的数据源可以是 SQL、CSV,或任何可以转换为 `DataTable` 的形式。 + +如果你已经熟悉 C# 并且这些组件已就绪,你可以直接开始。否则,上面的“前置条件”部分会给你一个快速检查清单。 + +--- + +## 第一步 – 创建 Excel 工作簿实例 + +当你想要以编程方式**create excel workbook**时,首先要实例化工作簿对象。可以把它想象成打开一本空白笔记本,随后在其中写入数据。 + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Why this matters:** +> `Workbook` 类是 Aspose.Cells 中所有操作的入口。提前创建它可以为你提供一块干净的画布,如果需要在已有文件上追加数据,也可以稍后加载该文件,而不是从头开始。 + +--- + +## 第二步 – 准备要导入的 DataTable + +在我们能够**import datatable to excel**之前,需要一个 `DataTable`。在实际项目中,这通常来自 `SqlDataAdapter.Fill` 或 `DataTable.Load`。为便于说明,我们将提供一个返回已准备好表格的存根方法。 + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tip:** 如果你的日期以字符串形式存储,请先将其转换为 `DateTime`——否则 **format excel cells date** 步骤将无法按预期工作。 + +--- + +## 第三步 – 为每列定义样式(Set Column Style) + +现在进入**set column style**的环节。我们将创建一个 `Style` 对象数组——每列一个。第一列使用内置日期格式(代码 14),其余列保持通用格式(代码 0)。 + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Why use style objects?** +> 只创建一次样式并重复使用要比对每个单元格单独设置格式高效得多。它还能确保整列遵循相同的 **format excel cells date** 规则,这在不同地区打开文件时保持一致性至关重要。 + +--- + +## 第四步 – 将带样式的 DataTable 导入工作表 + +工作簿已准备好且样式已定义,现在我们**import datatable to excel**。`ImportDataTable` 方法负责大部分工作:它写入列标题、行数据,并应用我们传入的样式。 + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **What’s happening under the hood?** +> - `true` 告诉 Aspose.Cells 将列名作为第一行写入。 +> - `0, 0` 是起始行和列的索引(左上角)。 +> - `columnStyles` 将每列与我们预先准备的样式对应,确保 **format excel cells date** 规则应用于日期列。 + +--- + +## 第五步 – 将工作簿保存(导出)为实体文件 + +最后,我们通过保存工作簿到磁盘来**export data to excel**。你可以将路径改为任意文件夹,甚至直接将文件流式传输到 HTTP 响应,以用于 Web API。 + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** 当需要在网络上传输文件而不写入磁盘时,使用 `workbook.Save(Stream, SaveFormat.Xlsx)`。 + +--- + +## 完整工作示例(所有步骤合并) + +下面是完整的、可直接运行的程序。复制粘贴到控制台应用中,调整输出路径,即可在几秒钟内得到格式良好的 Excel 文件。 + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Expected output:** +打开 `StyledTable.xlsx` 时,A 列会显示类似 `03/19/2026` 的日期(取决于你的地区设置),而 B、C 列则分别显示产品名称和数量,均为普通文本/数字。无需额外的格式化步骤——你的 **create excel workbook** 过程已经完成。 + +--- + +## 常见问题与边缘情况 + +### 1️⃣ 如果我的 DataTable 有超过三列怎么办? +向 `columnStyles` 数组中添加更多 `Style` 对象,并为需要特殊格式的列(例如货币、百分比)调整 `Number` 属性。`ImportDataTable` 方法会按位置匹配每个样式。 + +### 2️⃣ 能否使用自定义日期格式而不是内置的 14? +完全可以。将 `columnStyles[i].Number = 14;` 替换为: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ 如何在 Web API 中**export data to excel**而不写入磁盘? +使用 `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ 如果用户的地区使用不同的日期分隔符怎么办? +内置日期格式(ID 14)会遵循工作簿的地区设置。如果需要无论地区如何都使用固定格式,请使用上面示例中的 `Custom` 属性。 + +### 5️⃣ 这在 .NET Core 上能工作吗? +可以——Aspose.Cells 支持 .NET Standard 2.0 及更高版本,因此相同代码可在 .NET 6、.NET 7 或任何兼容运行时上运行。 + +--- + +## 最佳实践提示(Pro Tips) + +- **Reuse styles**:为每列创建样式的成本很低,但对相同列复用同一样式对象可以节省内存。 +- **Avoid cell‑by‑cell loops**:`ImportDataTable` 已高度优化,手动循环既慢又容易出错。 +- **Set workbook culture early**:如果需要在不同环境中保持统一的数字/日期分隔符,可提前设置工作簿的文化: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validate DataTable**:在导入前验证数据表——空日期在应用日期样式时会抛出异常。 +- **Turn on calculation**:如果在导入后添加公式,请打开计算功能: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## 结论 + +你现在拥有一个完整的、端到端的配方,能够**create excel workbook**、**import datatable to excel**、**set column style**、**export data to excel**,以及**format excel cells date**——全部代码不超过十几行 C#。这种方法快速、可靠,并将格式化逻辑全部封装在代码中,使得最终的电子表格在用户打开的瞬间即已准备好供业务使用。 + +准备好迎接下一个挑战了吗?尝试添加条件格式、插入图表,或转换 the + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/chinese/net/row-and-column-management/_index.md index e65f992eb4..7e22e7b15b 100644 --- a/cells/chinese/net/row-and-column-management/_index.md +++ b/cells/chinese/net/row-and-column-management/_index.md @@ -68,6 +68,8 @@ 学习如何使用 Aspose.Cells for .NET 在 Excel 中删除一行。本分步指南涵盖先决条件、代码导入以及无缝数据操作的详细演示。 ### [在 Aspose.Cells .NET 中删除多行](./delete-multiple-rows-aspose-cells/) 学习如何使用 Aspose.Cells for .NET 在 Excel 中删除多行数据。本指南详细分步,涵盖先决条件、代码示例以及开发人员常见问题解答。 +### [使用 Aspose.Cells for .NET 加载 Excel 文件 – 删除行和特定行](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +了解如何在 C# 中使用 Aspose.Cells 加载 Excel 并删除指定的行或批量行,提供完整代码示例。 ### [在 Aspose.Cells .NET 中插入列](./insert-column-aspose-cells/) 学习如何使用 Aspose.Cells for .NET 在 Excel 中插入列。按照我们简单的分步指南,无缝添加新列。非常适合 .NET 开发人员。 ### [在 Aspose.Cells .NET 中插入一行](./insert-row-aspose-cells/) diff --git a/cells/chinese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/chinese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..49fd86b298 --- /dev/null +++ b/cells/chinese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-03-21 +description: 使用 Aspose.Cells 在 C# 中加载 Excel 文件并删除数据行。学习如何删除行、移除特定行,并在几分钟内掌握 C# Excel + 行删除技巧。 +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: zh +og_description: 使用 C# 加载 Excel 文件,快速删除行、移除特定行,并使用 Aspose.Cells 处理 C# Excel 行删除。完整的分步指南。 +og_title: 加载 Excel 文件 C# – 删除行并移除特定行 +tags: +- C# +- Excel +- Aspose.Cells +title: 加载 Excel 文件 C# – 如何删除行并移除特定行 +url: /zh/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 加载 Excel 文件 C# – 如何删除行和移除特定行 + +是否曾经需要 **load Excel file C#** 并且剪除不需要的行?也许你在清理数据转储,或者有一个模板,需要在将工作簿发送给客户之前删除某些行。无论哪种情况,问题都是相同的:你有一个位于磁盘上的 `.xlsx`,想在 .NET 中打开它,并且需要 **delete rows** 而不破坏任何隐藏的表或列表对象。 + +事实是——Aspose.Cells 让这变得轻而易举。在本教程中,你将看到一个完整的、可直接运行的示例,准确展示 **how to delete rows**、**remove specific rows**,以及为何你可能关心 **c# excel row deletion**。完成后,你将得到一个仅包含所需行的干净 `output.xlsx`。 + +## 本指南涵盖内容 + +- 使用 Aspose.Cells 从磁盘加载 Excel 工作簿。 +- 删除一段行(例如 rows 5‑10),同时保留任何 ListObject 表头。 +- 将修改后的工作簿保存回文件系统。 +- 常见陷阱,例如意外删除表内的行,以及相应的处理技巧。 +- 一个完整的、可运行的代码示例,您可以直接放入控制台应用程序中使用。 + +> **Prerequisites** +> • .NET 6+(或 .NET Framework 4.6+)。 +> • 通过 NuGet 安装的 Aspose.Cells for .NET (`Install-Package Aspose.Cells`)。 +> • 对 C# 和 Excel 概念(工作表、单元格、表格)有基本了解。 + +如果你在想 **why you should use Aspose.Cells** 而不是比如 `Microsoft.Office.Interop.Excel`,答案是速度、无需 COM、并且可以在未安装 Office 的服务器上运行。此外,API 对于行删除任务也很直接。 + +--- + +## 步骤 1:在 C# 中加载 Excel 工作簿 + +在删除任何内容之前,你需要将工作簿加载到内存中。`Workbook` 类代表整个 Excel 文件。 + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Why this matters:** +加载文件会创建一个对象图,映射 Excel 结构——工作表、单元格、表格等。通过持有对 `ws` 的引用,你可以直接操作行,而无需担心文件锁定或 COM 互操作的怪异行为。 + +--- + +## 步骤 2:删除仅包含数据的行 + +现在工作簿已在内存中,你可以删除行。方法 `Cells.DeleteRows(startRow, totalRows)` 删除一个连续的块。在我们的示例中,我们将去除 rows 5‑10。 + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**How it works:** +- `startRow` 是从零开始计数的,所以 `5` 实际对应 Excel 的第 6 行。请相应调整。 +- 如果工作表包含一个 **ListObject**(Excel 表),其表头位于第 4 行,Aspose.Cells 将保护表头,仅删除其下方的数据行。这种内置安全机制可防止破坏结构化表格——这是在 **removing data rows** 时的常见边缘情况。 + +> **Pro tip:** 如果需要删除非连续的行(例如 rows 3, 7, 12),请遍历反向的行索引集合,对每个索引调用 `DeleteRows(rowIndex, 1)`。从底部向上删除可保留其余行的原始索引。 + +--- + +## 步骤 3:保存修改后的工作簿 + +一旦不需要的行被删除,你只需将工作簿写回磁盘。 + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +`Save` 方法会自动根据扩展名(此例为 `.xlsx`)确定文件格式。如果需要其他格式——CSV、PDF 等——只需更改扩展名或传入 `SaveFormat` 枚举。 + +### 预期结果 + +在 Excel 中打开 `output.xlsx`,你会看到 rows 5‑14(原来的 rows 5‑10)已被删除。所有其他数据相应上移,任何引用已删除行的公式也会被 Aspose.Cells 自动调整。 + +--- + +## 常见问题 (FAQ) + +### 如何根据条件删除行(例如,所有列 A 为空的行)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +循环从后向前运行,以避免索引偏移。当需要条件逻辑时,这种模式回答了更广泛的 **c# excel row deletion** 问题。 + +### 如果我的工作表包含多个 ListObject 会怎样? + +Aspose.Cells 会独立对待每个 ListObject。如果任何表的表头会受到删除范围的影响,API 会抛出 `InvalidOperationException`。解决办法是调整范围,或暂时清除该 ListObject 的 `ShowTableStyleFirstColumn` 属性,执行删除后再恢复它。 + +### 能否在不将整个工作簿加载到内存的情况下删除行? + +可以——Aspose.Cells 提供 **streaming API**(`Workbook.LoadOptions`),可以分块读取数据。然而,行删除本质上需要工作表的结构,因此仍需将目标工作表加载到内存中。对于超大文件(>500 MB),可以考虑分批处理或使用 **cell‑by‑cell** API。 + +--- + +## 完整、可运行的示例 + +下面是完整的程序,你可以将其编译并作为控制台应用运行。将 `YOUR_DIRECTORY` 替换为机器上的实际文件夹路径。 + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Running the code:** +1. 打开终端或 Visual Studio。 +2. `dotnet new console -n ExcelRowDeletionDemo` +3. 用上面的代码片段替换 `Program.cs`。 +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +你应该会看到控制台输出,确认删除已完成并显示保存文件的位置。 + +--- + +## 常见陷阱及避免方法 + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Accidentally deleting a ListObject header** | `DeleteRows` 在范围覆盖隐藏的表头时不会检查。 | 确保你的起始行在任何表头 **之后**,或使用 `ListObject` API 在表内部删除行(`ListObject.DeleteRows`)。 | +| **Row indices off by one** | Aspose.Cells 使用零基索引,而 Excel 用户习惯于 1 基索引。 | 编写代码时记得将 Excel 行号减 1。 | +| **Formulas break after deletion** | 删除行可能导致公式引用已删除的行时出现 `#REF!` 错误。 | Aspose.Cells 会自动更新大多数公式,但请再次检查任何外部引用或命名范围。 | +| **Performance slowdown on huge files** | 删除大量行会触发内部重新索引。 | 批量删除(一次删除大范围)而不是多次单行删除。尽可能使用 `DeleteRows(start, count)`。 | + +--- + +## 后续步骤及相关主题 + +- **Remove specific rows based on cell values:** 将 FAQ 中展示的条件循环与 `DeleteRows` 结合使用。 +- **Bulk row insertion:** 使用 `InsertRows` 在填充数据前添加占位行。 +- **Working with tables (ListObjects):** 探索 `ListObject` 方法,在结构化表格内进行行级操作。 +- **Exporting to CSV after row deletion:** 调用 `workbook.Save("output.csv", SaveFormat.Csv)` 生成不含已删除行的干净 CSV。 + +这些都基于你刚掌握的核心 **load excel file c#** 工作流,使你能够以编程方式细致调整 Excel 文件。 + +## 结论 + +我们已经演示了一个实际的 **load excel file c#** 场景,展示了 **how to delete rows**,并涵盖了使用 Aspose.Cells 进行 **remove specific rows** 和 **remove data rows** 的细微差别。通过加载工作簿、调用 `DeleteRows` 并保存结果,你可以实现可靠的 **c# excel row deletion**,而无需 COM 互操作的开销。 + +在真实数据集上试一试——也许清理销售报告或从模板中剔除测试行。熟练后,可尝试条件删除和表感知操作。该 API 足够强大,既适用于简单脚本,也适用于企业级批处理。 + +祝编码愉快,如遇问题,欢迎留言! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/chinese/net/worksheet-operations/_index.md index 056f6a1d60..c2814f323b 100644 --- a/cells/chinese/net/worksheet-operations/_index.md +++ b/cells/chinese/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Excel 中经常被忽视的功能之一是处理超链接。您知道吗?使 学习如何使用 Aspose.Cells for .NET 更新共享工作簿中的修订日志历史记录。简化协作并保持清晰的文档记录。 ### [在工作表中利用 OpenXml 的 Sheet_SheetId 属性](./utilize-sheet-sheetid-property/) 使用 Aspose.Cells for .NET 解锁 Excel 的强大功能。通过我们的分步指南学习如何有效地操作 Sheet ID。 +### [如何创建工作表 – 动态 Excel 生成的分步指南](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +使用 Aspose.Cells for .NET 动态生成 Excel 工作表的完整分步指南,帮助您快速创建并自定义工作表。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/chinese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..69ca1f8864 --- /dev/null +++ b/cells/chinese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,271 @@ +--- +category: general +date: 2026-03-21 +description: 了解如何使用 Aspose.Cells 在 C# 中创建工作表、生成具有动态工作表名称的 Excel 表格,并将工作簿保存为 XLSX。 +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: zh +og_description: 如何使用 Aspose.Cells 在 Excel 中创建工作表,生成带有动态工作表名称的 Excel 表,并将工作簿保存为 XLSX。 +og_title: 如何创建工作表 – 完整的 C# 教程 +tags: +- Aspose.Cells +- C# +- Excel automation +title: 如何创建工作表——动态 Excel 生成的分步指南 +url: /zh/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何创建工作表 – 完整 C# 教程 + +是否曾想过 **如何在不每次手动打开 Excel 的情况下** 动态创建工作表?你并不孤单。许多开发者在需要 **从数据源生成 Excel 表** 并希望每个工作表拥有有意义的动态名称时会遇到瓶颈。好消息是?使用 Aspose.Cells,你可以自动化整个过程,**处理主工作表**,并最终 **将工作簿保存为 XLSX**,只需几行代码。 + +在本教程中,我们将演示一个真实场景:从空工作簿开始,插入一个 smart‑marker 标记告诉 Aspose 哪些明细工作表需要生成,配置命名模式以使每个工作表获得唯一名称,最后将结果持久化到磁盘。完成后,你将拥有一个可直接运行的 C# 程序,能够创建工作表、生成带动态工作表名称的 Excel 表,并将工作簿保存为 XLSX——全部无需操作 UI。 + +> **前提条件** +> • .NET 6+(或 .NET Framework 4.6+)。 +> • Aspose.Cells for .NET(免费试用版可用于本示例)。 +> • 基础 C# 知识——不需要深入的 Excel interop 技巧。 + +--- + +## 我们将构建的概览 + +- **Master sheet** 包含一个 smart‑marker 占位符 (`«DetailSheetNewName:Dept»)。 +- **SmartMarkerProcessor** 读取数据源(例如 `DataTable`),为每个部门创建一个新工作表。 +- **Dynamic worksheet names** 遵循模式 `Dept_{0}`,其中 `{0}` 将被部门名称替换。 +- **Final XLSX file** 保存到你指定的文件夹。 + +就是这么简单。虽然简洁,却足以应对发票、报告或任何多标签 Excel 输出的需求。 + +![展示主工作表如何被处理以生成多个动态工作表的示意图](/images/how-to-create-worksheets-diagram.png "如何创建工作表示意图") + +*Alt 文本:使用 Aspose.Cells 创建具有动态工作表名称的工作表的示例说明。* + +## 步骤 1:设置项目并添加 Aspose.Cells + +### 为什么这很重要 +在任何代码运行之前,编译器需要知道 `Workbook`、`Worksheet` 和 `SmartMarkerProcessor` 类所在的位置。添加 NuGet 包可确保你拥有最新、功能完整的 API。 + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **小技巧:** 如果你使用 Visual Studio,右键单击项目 → *Manage NuGet Packages* → 搜索 *Aspose.Cells* 并安装最新的稳定版本。 + +--- + +## 步骤 2:创建新工作簿并添加主工作表 + +### 我们在做什么 +我们从一个空工作簿开始,然后获取第一个工作表(索引 0)。该工作表将充当 **master sheet**,用于保存 smart‑marker 标记。 + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +`Workbook` 类是所有工作表的容器。默认情况下它会创建一个名为 *Sheet1* 的工作表;将其重命名为 “Master” 可以让最终文件更易于浏览。 + +--- + +## 步骤 3:插入用于明细工作表名称的 Smart‑Marker 标记 + +### 为什么使用 smart‑marker? +Smart markers 让 Aspose.Cells 在运行时用数据替换占位符。标记 `«DetailSheetNewName:Dept»` 告诉处理器:*“当看到此标记时,为 `Dept` 列的每一行创建一个新的明细工作表。”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +你可以将标记放在任意位置;这里我们选择 **A1** 以便清晰。处理器运行时,会用实际的部门名称替换该标记并生成相应的工作表。 + +--- + +## 步骤 4:准备数据源 + +### 数据如何驱动工作表创建 +Aspose.Cells 支持任意 `IEnumerable` 数据源。此示例使用一个仅包含 `Dept` 列的 `DataTable`。 + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **如果你有更多列怎么办?** +> 处理器会忽略未在额外 smart markers 中引用的列,从而保持工作表生成的轻量化。 + +--- + +## 步骤 5:配置 SmartMarkerProcessor 与命名模式 + +### 动态工作表名称实战 +我们希望每个新工作表的名称为 `Dept_Finance`、`Dept_HR` 等。`DetailSheetNewName` 选项允许我们定义一个模式,其中 `{0}` 将被实际的部门名称替换。 + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +如果同一部门出现多次,Aspose 会自动在名称后追加数字后缀(例如 `Dept_Finance_1`),以避免重复的工作表名称。 + +--- + +## 步骤 6:处理主工作表以生成明细工作表 + +### **process master sheet** 的核心 +调用 `Process` 完成繁重的工作:扫描主工作表中的 smart markers,创建新工作表,复制主布局,并将每行数据填充进去。 + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +执行此调用后,工作簿中将包含一个主工作表以及四个明细工作表——每个工作表均按照我们的模式命名,并在单元格 A1 中填充部门名称。 + +--- + +## 步骤 7:将工作簿保存为 XLSX + +### 最后一步——**save workbook as XLSX** +工作表已经生成,现在将文件写入磁盘。你可以选择任意路径,只需确保目标文件夹已存在。 + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +打开 `DetailSheets.xlsx` 将显示: + +| 工作表名称 | 单元格 A1(内容) | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (未更改) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **边缘情况:** 如果输出文件夹不存在,`Save` 会抛出 `DirectoryNotFoundException`。请将调用包装在 try‑catch 块中,或事先创建该文件夹。 + +--- + +## 完整工作示例 + +下面是可以直接复制粘贴到控制台应用程序中的完整程序: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +运行程序,打开生成的文件,你将看到前文描述的布局。无需手动复制粘贴,也不需要 COM interop——仅用简洁的 C# 代码即可 **生成 Excel 表**,并拥有 **动态工作表名称**。 + +--- + +## 常见问题与注意事项 + +| 问题 | 答案 | +|------|------| +| *我可以使用包含多个表的 DataSet 吗?* | 可以。将相应的表传递给 `Process`,或使用表字典。 | +| *如果我需要在主工作表上使用多个 smart‑marker 怎么办?* | 放置额外的标记,例如 `«DetailSheetNewName:Region»`,并在需要时配置单独的命名模式。 | +| *主工作表会保留在最终文件中吗?* | 默认会保留。如果不需要,可在处理后调用 `workbook.Worksheets.RemoveAt(0)` 将其移除。 | +| *Aspose 如何处理非常大的数据集?* | 它会高效地流式处理数据,但如果遇到内存限制,可能需要增加 `MemorySetting`。 | +| *我可以导出为 CSV 而不是 XLSX 吗?* | 完全可以——使用 `workbook.Save("file.csv", SaveFormat.Csv)`。相同的工作表创建逻辑仍然适用。 | + +--- + +## 后续步骤 + +既然已经掌握了 **动态创建工作表**,你可以进一步探索: + +- 使用密码保护保存工作簿为 XLSX(`workbook.Protect("pwd")`)。 +- 使用 `JsonDataSource` 或 `XmlDataSource` 从 JSON 或 XML 源生成 Excel 表。 +- 通过 `Style` 对象为每个生成的工作表应用样式(字体、颜色)。 +- 自动合并单元格或插入公式,以实现汇总报表。 + +这些扩展都基于相同的 **process master sheet** 概念,迁移过程非常顺畅。 + +--- + +## 结论 + +我们已经完整演示了从初始化工作簿、插入 smart‑marker、配置 **动态工作表名称**、处理主工作表以 **生成 Excel 表**,再到 **保存工作簿为 XLSX** 的全部流程。示例完整、可直接运行,展示了性能与可维护性的最佳实践。 + +快去尝试吧,修改命名模式,导入真实业务数据,观看你的 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/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/czech/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..ff12e0086f --- /dev/null +++ b/cells/czech/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-03-21 +description: Jak vypočítat sešit v C# s Aspose.Cells – naučte se vytvořit excelový + sešit, naplnit buňky v Excelu, vypočítat excelové vzorce a použít funkci řazení. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: cs +og_description: Jak rychle vypočítat sešit v C#. Tento tutoriál ukazuje, jak vytvořit + Excel sešit, naplnit buňky v Excelu, vypočítat Excelové vzorce a použít funkci řazení. +og_title: Jak vypočítat sešit v C# – Kompletní průvodce řazením +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Jak vypočítat sešit v C# – Průvodce řazením a vzorci +url: /cs/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak vypočítat sešit v C# – Průvodce řazením a vzorci + +Už jste se někdy zamýšleli **jak vypočítat hodnoty v sešitu** za běhu, aniž byste otevírali Excel? Nejste v tom sami. V mnoha automatizačních scénářích potřebujete vytvořit soubor Excel, vložit do něj čísla, seřadit je a získat výsledky zpět do vaší .NET aplikace – a to vše programově. + +V tomto průvodci si projdeme přesně to: **vytvoříme excelový sešit**, **naplníme buňky**, přidáme **vzorec SORT** a nakonec **vypočítáme excelové vzorce**, abyste mohli přímo v C# přečíst seřazené pole. Na konci budete mít spustitelný úryvek, který můžete vložit do libovolného projektu odkazujícího na Aspose.Cells (nebo podobnou knihovnu). + +## Požadavky + +- .NET 6+ (kód funguje také na .NET Framework 4.7.2) +- Aspose.Cells pro .NET (bezplatná zkušební NuGet balíček `Aspose.Cells`) +- Základní znalost syntaxe C# +- Není potřeba mít nainstalovanou kopii Microsoft Excel; knihovna provede veškeré těžké operace za vás + +Pokud s tímto souhlasíte, pojďme na to. + +## Jak vypočítat sešit – Inicializace sešitu + +První věc, kterou musíte udělat, je vytvořit nový objekt sešitu. Představte si to jako otevření zcela nového, prázdného souboru Excel. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Proč je to důležité:** Třída `Workbook` je vstupním bodem pro každou operaci – bez ní nemůžete přidávat listy, buňky ani vzorce. Správná inicializace zajišťuje, že pracujete s čistým listem. + +## Vytvoření excelového sešitu a přístup k listu + +Nyní, když sešit existuje, musíme se ujistit, že ukazujeme na správný list. Většina knihoven ve výchozím nastavení používá jediný list pojmenovaný „Sheet1“, ale můžete jej přejmenovat nebo přidat další, pokud chcete. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Tip:** Pojmenování listů hned na začátku usnadní pozdější odkazy ve vzorcích (`'Data'!A1:A10`). Také to zjednoduší ladění. + +## Naplnění excelových buněk daty + +Dále **naplníme excelové buňky** čísly, která chceme seřadit. Příklad používá jen dvě buňky, ale můžete rozšířit rozsah na desítky řádků. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Proč používáme `PutValue`** – Automaticky detekuje datový typ (int, double, string atd.) a uloží jej správně, takže se vyhnete ručnímu přetypování. + +## Použití funkce SORT pomocí vzorce + +Excelová funkce `SORT` dělá přesně to, co napovídá její název: vrací seřazené pole, aniž by měnila původní data. Vložíme tento vzorec do buňky `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Poznámka o okrajových případech:** `SORT` vrací **pole**. Ve starších verzích Excelu (před Office 365) by to vyžadovalo Ctrl+Shift+Enter. S Aspose.Cells získáte pole automaticky při výpočtu sešitu. + +## Výpočet excelových vzorců pro získání výsledků + +V tuto chvíli sešit ví *co* má vypočítat, ale ne *že* to má udělat. Volání `CalculateFormula` spustí engine, který vyhodnotí každý vzorec, včetně našeho `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Očekávaný výstup v konzoli** + +``` +Sorted array: {2, 5} +``` + +> **Co se právě stalo?** +> 1. Sešit vytvořil interní výpočetní engine. +> 2. Vzorec `SORT` prozkoumal rozsah `A1:A2`. +> 3. Engine vytvořil nové pole, které jsme načetli z `B1`. + +Pokud změníte hodnoty v `A1` a `A2` (nebo rozšíříte rozsah) a znovu spustíte `CalculateFormula`, výstup se automaticky aktualizuje – žádný další kód není potřeba. + +## Použití funkce SORT na větších datech (volitelné) + +Většina reálných scénářů zahrnuje více než dva řádky. Zde je rychlá úprava, která funguje pro libovolný počet položek: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Proč byste to mohli potřebovat:** Řazení velkých rozsahů vám umožní vytvářet žebříčky, řadit finanční data nebo jednoduše vyčistit importované CSV soubory před dalším zpracováním. + +## Časté úskalí a jak se jim vyhnout + +| Problém | Proč se vyskytuje | Řešení | +|-------|----------------|-----| +| **`#VALUE!` v B1** | Vzorec `SORT` odkazuje na prázdný nebo ne‑číselný rozsah. | Ujistěte se, že každá buňka ve zdrojovém rozsahu obsahuje číslo nebo text, který lze řadit. | +| **Zkrácení pole** | Pokus o načtení pole z jediné buňky bez přetypování. | Přetypujte `worksheet.Cells["B1"].Value` na `object[]` (nebo na vhodný typ). | +| **Zpomalení výkonu** | Opakované přepočítávání obrovských sešitů po každé malé změně. | Volajte `CalculateFormula` až po dokončení úprav listu, nebo použijte `CalculateFormulaOptions` k omezení rozsahu. | + +## Kompletní funkční příklad (připravený ke kopírování) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Snímek výsledku** +> ![jak vypočítat výsledek sešitu v Excelu](https://example.com/images/sorted-result.png "jak vypočítat výsledek sešitu v Excelu") + +Obrázek výše zobrazuje sešit po výpočtu – buňka **B1** obsahuje seřazené pole `{2, 5}`. + +## Závěr + +Právě jsme prošli **jak vypočítat hodnoty v sešitu** programově: vytvořili jsme excelový sešit, naplnili buňky, vložili vzorec `SORT` a nakonec **vypočítali excelové vzorce**, abychom získali seřazená data. Přístup funguje jak pro jednoduché dvou‑buněčné příklady, tak i pro rozsáhlejší datové sady. + +Co dál? Vyzkoušejte kombinaci s dalšími funkcemi jako `FILTER`, `UNIQUE` nebo dokonce s vlastní logikou ve stylu VBA pomocí `WorksheetFunction`. Můžete také sešit uložit na disk (`workbook.Save("Sorted.xlsx")`) a otevřít jej v Excelu pro vizuální kontrolu. + +Nebojte se experimentovat – měňte čísla, upravujte rozsahy nebo řetězte více vzorců dohromady. Automatizace je o rychlém iterování a nyní máte pevný základ, na kterém můžete stavět. + +Šťastné kódování a ať se vaše sešity vždy vypočítají přesně tak, jak očekáváte! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/czech/net/conversion-and-rendering/_index.md index 73247ac84f..19969b7ddc 100644 --- a/cells/czech/net/conversion-and-rendering/_index.md +++ b/cells/czech/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Naučte se bezproblémově převádět Excel do PDF pomocí Aspose.Cells v .NET. Naučte se, jak převést list aplikace Excel do formátu SVG pomocí Aspose.Cells pro .NET v tomto podrobném návodu. Ideální pro vývojáře .NET, kteří chtějí vykreslit Excel do formátu SVG. ### [Převod Excelu do MHTML v .NET](./converting-excel-to-mhtml/) Naučte se, jak efektivně převádět soubory Excelu do formátu MHTML v .NET pomocí Aspose.Cells a vylepšit tak své možnosti tvorby reportů a sdílení dat. +### [Vytvoření obrázku z Excelu – Export kontingenční tabulky do PNG v C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Naučte se exportovat kontingenční tabulku z Excelu do PNG pomocí Aspose.Cells v C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/czech/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..f3351e5b49 --- /dev/null +++ b/cells/czech/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Vytvořte obrázek z Excelu v C# pomocí Aspose.Cells. Naučte se, jak převést + Excel na obrázek, exportovat kontingenční tabulku a uložit obrázek jako PNG s kompletním, + spustitelným příkladem. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: cs +og_description: Vytvořte obrázek z Excelu v C# rychle. Tento průvodce ukazuje, jak + převést Excel na obrázek, exportovat kontingenční tabulku a uložit obrázek jako + PNG s přehledným kódem. +og_title: Vytvořit obrázek z Excelu – Exportovat kontingenční tabulku do PNG v C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Vytvořit obrázek z Excelu – Exportovat kontingenční tabulku do PNG v C# +url: /cs/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvořit obrázek z Excelu – Exportovat kontingenční tabulku do PNG v C# + +Už jste někdy potřebovali **vytvořit obrázek z Excelu**, ale nebyli jste si jisti, kterou API použít? Nejste v tom sami — mnoho vývojářů narazí na tento problém, když se snaží převést živou kontingenční tabulku na sdílený PNG. + +V tomto tutoriálu projdeme kompletní, připravené řešení, které **převádí Excel na obrázek**, ukazuje **jak exportovat kontingenční tabulku** a vysvětluje **jak uložit obrázek** jako soubor PNG. Na konci budete mít jednu metodu, která udělá vše, plus tipy na okrajové případy, na které můžete narazit. + +## Co budete potřebovat + +- **Aspose.Cells for .NET** (NuGet balíček `Aspose.Cells`). Jedná se o komerční knihovnu, ale nabízí bezplatný evaluační režim — ideální pro testování. +- .NET 6+ (nebo .NET Framework 4.6+). +- Jednoduchý Excel sešitu (`Pivot.xlsx`) obsahující alespoň jednu kontingenční tabulku. +- Jakékoliv IDE podle vašeho výběru — Visual Studio, Rider nebo i VS Code. + +To je vše. Žádné další DLL, žádná COM interop a žádné nešikovné triky s automatizací Excelu. + +Teď se ponořme do kódu. + +## Krok 1: Načtení sešitu – Vytvořit obrázek z Excelu + +Prvním krokem je otevřít Excel soubor, který obsahuje kontingenční tabulku. Tento krok je zásadní, protože renderer pracuje s objektem `Workbook` v paměti. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Proč je to důležité:* Načtením sešitu získáme přístup k **kontingenční tabulce** a veškerému formátování, které bude respektováno při pozdějším **převodu Excelu na obrázek**. Pokud tento krok přeskočíte, renderer nebude mít s čím pracovat. + +## Krok 2: Nastavení možností exportu – Převést Excel na obrázek + +Dále řekneme Aspose, jak má výsledný obrázek vypadat. Třída `ImageOrPrintOptions` nám umožní zvolit PNG, nastavit DPI a dokonce i barvu pozadí. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Proč je to důležité:* Nastavením vysokého DPI zajistíme, že **export Excelu do PNG** bude ostrý, i když kontingenční tabulka obsahuje mnoho řádků. DPI můžete snížit, pokud vás trápí velikost souboru. + +## Krok 3: Vykreslení listu – Jak exportovat kontingenční tabulku + +Nyní přichází jádro procesu: převést list (s jeho kontingenční tabulkou) na obrázek. Třída `WorksheetRender` provádí těžkou práci. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Proč je to důležité:* Zde se **exportuje kontingenční tabulka** do vizuálního formátu. Renderer respektuje veškeré formátování kontingenční tabulky, slicery a podmíněné styly, takže PNG vypadá přesně tak, jak vidíte v Excelu. + +## Krok 4: Spojit vše dohromady – Jak uložit obrázek + +Nakonec zveřejníme jedinou veřejnou metodu, která propojí všechny části. Toto je metoda, kterou zavoláte ze své aplikace, služby nebo konzolového nástroje. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Kompletní funkční příklad + +Vytvořte nový konzolový projekt, přidejte NuGet balíček `Aspose.Cells` a vložte následující soubor `Program.cs`: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Očekávaný výsledek:** Po spuštění programu se v určené složce objeví soubor `PivotImage.png`, který zobrazí pixel‑dokonalý snímek kontingenční tabulky. + +![Create image from Excel example](https://example.com/placeholder.png "Create image from Excel example") + +*Alt text:* create image from excel example showing exported pivot table as PNG. + +## Časté otázky a okrajové případy + +### Co když má můj sešit více listů? + +Pomocná metoda momentálně používá `Worksheets[0]`. Pro cílení na konkrétní list předejte název listu: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG je rozmazané — jak to opravit? + +Zvyšte `HorizontalResolution` a `VerticalResolution` v `GetImageOptions`. Hodnoty 300–600 DPI obvykle poskytují ostrý výsledek. Pamatujte, že vyšší DPI znamená větší velikost souboru. + +### Moje kontingenční tabulka přesahuje jednu stránku — mohu exportovat všechny stránky? + +Ano. Projděte `renderer.PageCount` a zavolejte `ToImage(pageIndex, …)` pro každou stránku, nebo nastavte `OnePagePerSheet = false` a získáte samostatné obrázky pro každou stránku. + +### Potřebuji jen část listu (např. konkrétní oblast)? + +Použijte `ImageOrPrintOptions` a nastavte `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Tím **převodíte Excel na obrázek** jen pro oblast, která vás zajímá. + +### Funguje to i s .xls (Excel 97‑2003) soubory? + +Ano. Aspose.Cells abstrahuje formát souboru, takže můžete použít `.xls`, `.xlsx`, `.xlsm` nebo dokonce `.ods` a stále **exportovat excel do png**. + +## Profesionální tipy a úskalí + +- **Licence:** V evaluačním režimu Aspose přidává vodoznak. Pro produkci nasadíte řádnou licenci. +- **Spotřeba paměti:** Rendering velkých sešitů může být náročný na paměť. Objekt `Workbook` co nejdříve uvolněte nebo jej obalte do `using` bloku. +- **Bezpečnost vláken:** `Workbook` není thread‑safe. Vytvořte novou instanci pro každý požadavek, pokud běžíte ve webové službě. +- **Flexibilita formátu obrázku:** Pokud potřebujete JPEG nebo BMP, stačí změnit `ImageFormat` v `GetImageOptions`. + +## Závěr + +Nyní máte solidní, end‑to‑end recept na **vytvoření obrázku z Excelu**, konkrétně na **export kontingenční tabulky** jako vysoce kvalitního PNG. Výše uvedený úryvek ukazuje kompletní, spustitelný kód, vysvětluje **jak uložit obrázek** a pokrývá varianty jako více listů nebo vlastní tiskové oblasti. + +Další kroky? Zkuste propojit tento exportér s e‑mailovou službou a automaticky posílat PNG, nebo experimentujte s `ImageOrPrintOptions` pro generování PDF místo PNG. Stejný vzor funguje pro **convert excel to image** úkoly v mnoha formátech. + +Máte další otázky? Zanechte komentář 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/converting-excel-files-to-other-formats/_index.md b/cells/czech/net/converting-excel-files-to-other-formats/_index.md index de61c4ec61..35a334a503 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 @@ -46,6 +46,8 @@ Aspose.Cells pro .NET zjednodušuje transformace dokumentů, což vývojářům Naučte se, jak převést CSV do JSON v .NET pomocí Aspose.Cells. Podrobný návod pro transformaci dat s snadno srozumitelnými příklady kódu. ### [Programový převod souboru Excel do DOCX v .NET](./converting-excel-file-to-docx/) Naučte se v tomto podrobném návodu, jak programově převádět soubory Excelu do formátu DOCX pomocí Aspose.Cells pro .NET. Ideální pro generování sestav a sdílení dat. +### [Uložení Excelu jako DOCX v C# – Kompletní průvodce krok za krokem](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Naučte se, jak pomocí Aspose.Cells v C# uložit soubor Excel jako DOCX v podrobném průvodci krok za krokem. ### [Převod souboru Excel do HTML pomocí Tooltipu v .NET](./converting-excel-file-to-html-with-tooltip/) Převeďte Excel do HTML s popisky pomocí Aspose.Cells pro .NET v několika jednoduchých krocích. Vylepšete své webové aplikace interaktivními daty z Excelu bez námahy. ### [Programový převod souboru Excel do Markdownu v .NET](./converting-excel-file-to-markdown/) diff --git a/cells/czech/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/czech/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..4d71877dc4 --- /dev/null +++ b/cells/czech/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Uložte Excel jako Docx v C# — naučte se, jak převést Excel do Wordu, + vložit grafy a načíst sešit Excel v C# pomocí Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: cs +og_description: Uložení Excelu jako Docx v C# je vysvětleno v první větě. Postupujte + podle tohoto tutoriálu, jak převést Excel do Wordu, vložit grafy a načíst Excel + sešit v C#. +og_title: Uložte Excel jako Docx pomocí C# – Kompletní průvodce +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Uložte Excel jako DOCX pomocí C# – Kompletní krok‑za‑krokem průvodce +url: /cs/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Uložení Excelu jako Docx v C# – Kompletní průvodce krok za krokem + +Už jste někdy potřebovali **save Excel as Docx**, ale nebyli jste si jisti, kde začít? Nejste sami — mnoho vývojářů narazilo na stejný problém, když chtějí *convert Excel to Word* a zachovat grafy nedotčené. V tomto tutoriálu projdeme přesně kód, který potřebujete, vysvětlíme, proč je každý řádek důležitý, a ukážeme vám, jak vložit grafy z Excelu bez ztráty kvality. + +Také přidáme několik dalších tipů na scénáře **load Excel workbook C#**, takže na konci se budete cítit jistě při konverzi Excelu do Docx v jakémkoli .NET projektu. Žádné vágní odkazy, jen konkrétní, spustitelný příklad, který můžete okamžitě zkopírovat‑vložit. + +--- + +## Co tento průvodce pokrývá + +- Načtení existujícího souboru `.xlsx` pomocí Aspose.Cells (nebo jakékoli kompatibilní knihovny). +- Volitelná manipulace s listy nebo grafy před konverzí. +- Uložení sešitu jako soubor `.docx` při zachování vložených grafů. +- Ověření výstupu a řešení běžných okrajových případů, jako jsou velké sešity nebo nepodporované typy grafů. + +Pokud se ptáte **why you’d want to convert Excel to Docx**, představte si zprávy, které musíte poslat ne‑technickým stakeholderům — Word dokumenty jsou univerzálně přijímány a zachovávají vizuální věrnost vašich grafů. Pojďme na to. + +--- + +## Požadavky – Load Excel Workbook C# + +Než napíšeme jakýkoli kód, ujistěte se, že máte následující: + +| Požadavek | Důvod | +|-----------|-------| +| **.NET 6.0 or later** | Moderní runtime, lepší výkon a plná podpora pro Aspose.Cells. | +| **Aspose.Cells for .NET** (NuGet package `Aspose.Cells`) | Poskytuje třídu `Workbook` používanou k načtení Excelu a exportu do DOCX. | +| **Visual Studio 2022** (or any IDE you prefer) | Praktické pro ladění a IntelliSense. | +| **An Excel file with charts** (`AdvancedCharts.xlsx`) | Pro zobrazení funkce *embed excel charts* v akci. | + +Knihovnu můžete nainstalovat pomocí Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** Pokud používáte CI/CD pipeline, přidejte balíček do vašeho `*.csproj`, aby se obnovy prováděly automaticky. + +--- + +## Krok 1 – Načtení Excel sešitu (Save Excel as Docx začíná zde) + +První věc, kterou uděláme, je načtení zdrojového sešitu. Zde vstupuje do hry fráze **load excel workbook c#**. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Proč je to důležité:** Načtení souboru vám poskytuje přístup ke každému listu, grafu a stylu. Bez tohoto kroku není co konvertovat a API nemůže zachovat vaše vložené grafiky. + +--- + +## Krok 2 – (Volitelné) Úprava sešitu před konverzí + +Možná budete chtít přejmenovat list, skrýt sloupec nebo dokonce změnit název grafu. Tento krok je volitelný, ale ukazuje, jak flexibilní může být konverze. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Okrajový případ:** Některé starší typy grafů (např. Radar) se nemusí v Wordu vykreslit dokonale. Otestujte své konkrétní grafy po konverzi. + +--- + +## Krok 3 – Uložení sešitu jako Word dokument (Hlavní akce “Save Excel as Docx”) + +Nyní přichází okamžik pravdy: skutečně **save Excel as Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Když se to spustí, Aspose.Cells zapíše každý list jako tabulku uvnitř Word souboru a vloží každý graf jako vysoce rozlišený obrázek. Výsledkem je plně editovatelný `.docx`, který vypadá přesně jako původní zobrazení v Excelu. + +> **Proč zvolit DOCX místo PDF?** DOCX umožňuje příjemcům později upravovat text nebo nahrazovat grafy, zatímco PDF je statický snímek. + +--- + +## Krok 4 – Ověření výstupu a řešení běžných problémů + +Po dokončení konverze otevřete `ChartsInWord.docx` v Microsoft Word: + +1. **Zkontrolujte, že každý list se zobrazuje jako samostatná sekce** – měli byste vidět tabulky odrážející vaše Excel data. +2. **Potvrďte, že grafy jsou vloženy** – měly by být vybratelné obrázky, ne poškozené zástupce. +3. **Pokud graf chybí**, ujistěte se, že typ grafu je podporován Aspose.Cells (viz [official compatibility list](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tip:** Pro velké sešity zvažte zvýšení `MemorySetting` v Aspose.Cells, aby se předešlo `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Kompletní funkční příklad (připravený ke zkopírování‑vložením) + +Níže je kompletní program připravený ke kompilaci. Nahraďte `YOUR_DIRECTORY` skutečnou cestou ke složce na vašem počítači. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Očekávaný výsledek:** Word dokument (`ChartsInWord.docx`), který obsahuje všechny listy jako tabulky a každý graf jako vložený, vysoce rozlišený obrázek. Otevřete jej ve Wordu a uvidíte přesně stejný vizuální rozvrh, jaký jste měli v Excelu. + +--- + +## Často kladené otázky (FAQ) + +**Q: Můžu konvertovat více Excel souborů ve smyčce?** +A: Rozhodně. Zabalte logiku konverze do smyčky `foreach (var file in Directory.GetFiles(...))` a znovu použijte stejný vzor instance `Workbook`. + +**Q: Funguje to také s `.xls` soubory?** +A: Ano — Aspose.Cells podporuje starší formáty. Stačí změnit příponu zdroje; stejný volání `SaveFormat.Docx` se použije. + +**Q: Co když potřebuji zachovat vzorce při konverzi?** +A: Word nativně nepodporuje Excelové vzorce. Konverze převádí vzorce na jejich vypočítané hodnoty. Pokud potřebujete živé výpočty, zvažte vložení sešitu jako OLE objekt. + +**Q: Existuje způsob, jak ovládat rozlišení obrázku grafů?** +A: Použijte `ImageOrPrintOptions` před uložením: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Vkládání Excel grafů přímo do Wordu (Mimo Save Excel as Docx) + +Pokud chcete, aby graf zůstal editovatelný ve Wordu, můžete vložit celý Excel list jako OLE objekt: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Tato technika *embed excel charts* jako živé objekty, umožňuje koncovým uživatelům dvojklikem je upravit v Excelu přímo z Wordu. Je to praktická alternativa, když potřebujete interaktivitu. + +--- + +## Závěr + +Nyní máte robustní řešení end‑to‑end pro **save Excel as docx** pomocí C#. Tutoriál pokryl načtení sešitu, volitelné úpravy, samotnou operaci uložení, kroky ověření a dokonce rychlý pohled na vkládání grafů pro editovatelné scénáře. Dodržením výše uvedeného kódu můžete **convert Excel to Word**, zachovat každý graf a elegantně pracovat s velkými soubory. + +Jste připraveni na další výzvu? Zkuste automatizovat hromadnou konverzi, integrovat tuto logiku do ASP.NET Core API, nebo prozkoumat **convert Excel to docx** pro vícelistové dashboardy. Dovednosti, které jste právě získali, jsou základem pro jakýkoli projekt automatizace dokumentů. + +Máte otázky nebo obtížný sešit, který se odmítá konvertovat? Zanechte komentář a společně to vyřešíme. Šťastné kódování! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..8faededac8 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 – přidání vlastní vlastnosti v C#](./how-to-save-xlsb-add-custom-property-in-c/) +Naučte se, jak uložit soubor XLSB a přidat vlastní vlastnost pomocí Aspose.Cells pro .NET v jazyce C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/czech/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..a08af2b8e3 --- /dev/null +++ b/cells/czech/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: Naučte se, jak ukládat soubory xlsb v C# a přidávat vlastní vlastnost, + například ProjectId. Tento průvodce ukazuje, jak vytvořit sešit Excel, přidat vlastní + vlastnost a ověřit ji. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: cs +og_description: Objevte, jak ukládat soubory xlsb a přidávat vlastní vlastnost, například + ProjectId, pomocí C#. Podrobný návod krok za krokem s kompletním kódem. +og_title: Jak uložit XLSB – Přidat vlastní vlastnost v C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Jak uložit XLSB – Přidat vlastní vlastnost v C# +url: /cs/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak uložit XLSB – Přidat vlastní vlastnost v C# + +Už jste se někdy zamysleli, **jak uložit xlsb** soubory a zároveň do nich vložit kousek metadat? Možná budujete reportingový engine, který potřebuje skrytý ProjectId, nebo prostě chcete označit listy pro následné zpracování. **Jak uložit xlsb** není raketová věda, ale kombinace s vlastní vlastností přidává malý zvrat, který mnoho vývojářů přehlíží. + +V tomto tutoriálu vás provedeme vytvořením Excel sešitu, přidáním vlastní vlastnosti (ano, *add custom property*), uložením souboru jako **XLSB** binárního sešitu a nakonec jeho načtením zpět, abychom prokázali, že vlastnost přetrvala. Po cestě se také podíváme na **how to add custom property** hodnoty jako ProjectId, takže si odnesete znovupoužitelný vzor pro budoucí projekty. + +> **Pro tip:** Pokud už používáte knihovnu Aspose.Cells (kód níže to dělá), získáte nativní podporu pro vlastní vlastnosti bez jakýchkoli COM interop problémů. + +--- + +## Požadavky + +- .NET 6+ (nebo .NET Framework 4.6+). +- Aspose.Cells for .NET – nainstalujte přes NuGet: `Install-Package Aspose.Cells`. +- Základní znalost C# – nic složitého, jen pár `using` direktiv. + +To je vše. Žádná instalace Office, žádný interop, jen čistý spravovaný kód. + +--- + +## Krok 1: Jak uložit XLSB – Vytvořit Excel sešit + +Prvním krokem je vytvořit nový objekt sešitu. Představte si to jako otevření prázdného Excel souboru, který existuje pouze v paměti, dokud se nerozhodnete jej zapsat na disk. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Proč začít sešitem? Protože **create excel workbook** je základem pro jakoukoli další manipulaci – ať už později vkládáte vzorce, grafy nebo vlastní vlastnosti. Třída `Workbook` abstrahuje celý soubor, zatímco `Worksheets` vám poskytuje přístup k jednotlivým listům. + +--- + +## Krok 2: Přidat vlastní vlastnost do listu + +Nyní přichází zábavná část – **add custom property**. V Aspose.Cells můžete vlastnost připojit přímo k listu (nebo k celému sešitu). Zde uložíme číselný ProjectId, který následné služby mohou přečíst, aniž by se dotýkaly viditelných buněk. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? Stačí zavolat `CustomProperties.Add(name, value)`. API automaticky zpracuje podkladové XML, takže se nemusíte starat o nízko‑úrovňové detaily. Toto je nejbezpečnější způsob, jak vložit metadata, která nejsou viditelná koncovému uživateli. + +--- + +## Krok 3: Uložit sešit jako XLSB + +S připraveným sešitem a připojenou vlastní vlastností je čas na **how to save xlsb**. Formát XLSB ukládá data v binárním reprezentaci, což je obvykle menší a rychlejší k otevření než klasický XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Uložení jako XLSB je tak jednoduché jako předat `SaveFormat.Xlsb` metodě `Save`. Pokud se ptáte, jestli tím odstraníte vlastní vlastnost – nebojte se, Aspose.Cells zachovává jak vlastnosti na úrovni sešitu, tak na úrovni listu v binárním souboru. + +--- + +## Krok 4: Ověřit vlastní vlastnost + +Dobrou praxí je soubor znovu načíst a potvrdit, že vlastnost přežila celý cyklus. To také ukazuje **how to add custom property** později, pokud ji potřebujete aktualizovat. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Pokud konzole vypíše `12345`, úspěšně jste **how to save xlsb** *a* **add project id** najednou. Vlastnost žije uvnitř interních metadat souboru, je neviditelná v UI, ale zcela čitelná kódem. + +--- + +## Další tipy: Přidávání více vlastností a okrajové případy + +### Přidání více než jedné vlastnosti + +Můžete naskládat libovolný počet vlastností: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Aktualizace existující vlastnosti + +Pokud vlastnost již existuje, stačí přiřadit novou hodnotu: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Zpracování chybějících vlastností + +Pokus o přečtení neexistující vlastnosti vyvolá `KeyNotFoundException`. Ošetřete to: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Kompatibilita napříč verzemi + +XLSB funguje v Excelu 2007 + a ve webové verzi Excelu. Starší verze Office (< 2007) však XLSB soubory otevřít nedokážou. Pokud potřebujete širší kompatibilitu, zvažte uložení druhé kopie jako XLSX. + +### Úvahy o výkonu + +Binární soubory XLSB jsou typicky o 30‑50 % menší než XLSX a načítají se rychleji. U velkých datových sad (stovky tisíc řádků) může být rozdíl ve výkonu znatelný. + +--- + +## Úplný funkční příklad + +Níže je celý program, který můžete zkopírovat a vložit do konzolového projektu. Obsahuje všechny kroky, ošetření chyb a komentáře potřebné k okamžitému spuštění. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Očekávaný výstup** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Pokud vidíte výše uvedené, zvládli jste **how to save xlsb**, **add custom property** i **add project id** – vše v přehledném, znovupoužitelném úryvku. + +--- + +## Často kladené otázky + +**Q: Funguje to s .NET Core?** +A: Naprosto. Aspose.Cells je kompatibilní s .NET Standard, takže stejný kód běží na .NET 5/6/7 i na .NET Framework. + +**Q: Můžu přidat vlastní vlastnost k celému sešitu místo jen jednoho listu?** +A: Ano. Použijte `workbook.CustomProperties.Add("Key", value);` pro připojení na úrovni sešitu. + +**Q: Co když potřebuji uložit velký řetězec (např. JSON) jako vlastnost?** +A: API přijímá řetězce libovolné délky, ale mějte na paměti, že extrémně velké bloky mohou zvýšit velikost souboru. Pro masivní data zvažte skrytý list. + +**Q: Je vlastní vlastnost viditelná v uživatelském rozhraní Excelu?** +A: Ne přímo. Uživatelé ji mohou zobrazit přes **File → Info → Properties → Advanced Properties → Custom**, ale v mřížce se neobjeví. + +--- + +## Závěr + +Probrali jsme **how to save xlsb** soubory v C# a **přidání vlastní vlastnosti** jako ProjectId. Dodržením krok‑za‑krokem vzoru – **create excel workbook**, **add custom property**, **save as XLSB**, a **verify** – máte nyní solidní referenci, která slouží jak vyhledávačům, tak AI asistentům. + +Dále můžete zkoumat: + +- **How to add custom property** do více listů ve smyčce. +- Export dat z `DataTable` do sešitu před uložením. +- Šifrování XLSB souboru pro zvýšenou bezpečnost. + +Neváhejte experimentovat, měnit názvy vlastností nebo vyměnit binární formát za XLSX, pokud potřebujete širší kompatibilitu. Máte-li složitý scénář? Zanechte komentář a společně to vyřešíme. Šťastné kódování! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/czech/net/excel-autofilter-validation/_index.md index 3f93f67c85..f7e6bfe114 100644 --- a/cells/czech/net/excel-autofilter-validation/_index.md +++ b/cells/czech/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Náš tutoriál na téma [Ověření desetinných dat v Excelu](./decimal-data-v Naučte se, jak bez námahy automaticky filtrovat řádky Excelu pomocí Aspose.Cells v .NET s tímto komplexním podrobným návodem. ### [Ověření desetinných dat v Excelu](./decimal-data-validation-in-excel/) Zjistěte, jak implementovat validaci desetinných dat v Excelu pomocí Aspose.Cells pro .NET s naším snadno srozumitelným průvodcem. Vylepšete integritu dat bez námahy. +### [Odstranění AutoFiltru z Excelu – Kompletní průvodce C#](./remove-autofilter-from-excel-complete-c-guide/) +Naučte se, jak pomocí Aspose.Cells v .NET odstranit automatický filtr z Excelu v kompletním C# průvodci. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/czech/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..8e2d573e90 --- /dev/null +++ b/cells/czech/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,209 @@ +--- +category: general +date: 2026-03-21 +description: Naučte se, jak odstranit AutoFilter z Excelu pomocí C#. Tento krok‑za‑krokem + průvodce také ukazuje, jak smazat AutoFilter, vypnout AutoFilter v Excelu a vymazat + filtr v Excelové tabulce. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: cs +og_description: Odstraňte AutoFilter z Excelu pomocí C#. Tento tutoriál ukazuje, jak + smazat AutoFilter, vypnout AutoFilter v Excelu a vymazat filtr v tabulce Excelu + pomocí několika řádků kódu. +og_title: Odstranit AutoFilter z Excelu – Kompletní průvodce C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Odstranění AutoFiltru z Excelu – Kompletní průvodce C# +url: /cs/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Odstranění AutoFilter z Excelu – Kompletní průvodce v C# + +Už jste někdy potřebovali **remove AutoFilter from Excel**, ale nebyli jste si jisti, který API volání jej skutečně vypne? Nejste v tom sami. V mnoha reportingových pipelinech UI filtrů překáží následnému zpracování, takže jejich odstranění je častý požadavek. V tomto tutoriálu projdeme stručné, připravené pro produkci řešení, které nejen ukazuje **how to delete AutoFilter**, ale také vysvětluje **turn off AutoFilter Excel** stylové filtry a jak **clear Excel table filter** úplně. + +> **Co získáte:** připravený C# program, který načte existující sešit, odstraní filtr z první tabulky a uloží novou kopii bez jakýchkoli zbylých UI prvků. + +## Požadavky + +- .NET 6+ (nebo .NET Framework 4.7.2+) +- Balíček NuGet **Aspose.Cells** (API, které používáme v kódu) +- Ukázkový sešit (`TableWithFilter.xlsx`) který již obsahuje tabulku s aplikovaným AutoFilter +- Základní znalost syntaxe C# (není potřeba hluboké znalosti interního fungování Excelu) + +Pokud je máte, pojďme na to. + +--- + +## Krok 1 – Instalace Aspose.Cells a nastavení projektu + +Než spustíte jakýkoli kód, potřebujete knihovnu, která poskytuje třídy `Workbook`, `Worksheet` a `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Pro tip:** Použijte bezplatnou evaluační verzi pro testování; jen nezapomeňte nastavit licenční klíč před nasazením do produkce. + +### Proč je to důležité +Aspose.Cells abstrahuje nízkoúrovňové zpracování OOXML, takže můžeme manipulovat s tabulkami, filtry a styly, aniž bychom museli sami parsovat XML. Proto se úkoly **remove autofilter from excel** stávají jednorázovým řádkem místo několika manipulací s XML. + +## Krok 2 – Načtení sešitu, který obsahuje tabulku + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +Objekt `Workbook` představuje celý Excel soubor. Jeho načtení jako první zajišťuje, že máme čistou kopii v paměti, na které můžeme pracovat, což je klíčové, když později **clear excel table filter** bez ovlivnění ostatních listů. + +## Krok 3 – Získání listu a cílové tabulky + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +**ListObject** je termín Aspose pro Excel tabulku. I když má váš list více tabulek, můžete projít `worksheet.ListObjects` a aplikovat stejnou logiku na každou z nich. Tato flexibilita odpovídá na otázku „co když mám několik tabulek?“, kterou si klade mnoho vývojářů. + +## Krok 4 – Odstranění AutoFilter z tabulky + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Nastavení `AutoFilter` na `null` **odstraní objekt filtru úplně**, což je nejspolehlivější způsob, jak **how to delete autofilter**. Alternativní vlastnost `ShowAutoFilter` pouze skryje UI, ale nechává filtraci aktivní – užitečné, pokud chcete jen **turn off autofilter excel** vizuálně a zachovat podkladová kritéria. + +> **Edge case:** Pokud tabulka nemá aplikovaný AutoFilter, `table.AutoFilter` bude již `null`. Výše uvedený řádek je bezpečný; jednoduše nic neudělá. + +## Krok 5 – Uložení upraveného sešitu + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Uložení do nového souboru zachová originál – osvědčená praxe při automatizaci transformací Excelu. Po spuštění programu otevřete `NoAutoFilter.xlsx`; uvidíte tabulku bez jakýchkoli rozbalovacích filtrů, což potvrzuje úspěšnost operace **remove excel table filter**. + +## Ověření výsledku – Co očekávat + +1. **Otevřete `NoAutoFilter.xlsx`** v Excelu. +2. **Vyberte tabulku** – malé ikony trychtýře vedle záhlaví sloupců by měly zmizet. +3. **Zkontrolujte ostatní listy** – zůstanou nedotčeny, což dokazuje, že jsme **clear excel table filter** provedli jen na požadovaném listu. + +Pokud jsou ikony stále tam, zkontrolujte, že jste cílili na správný index `ListObject`. Pamatujte, že tabulky v Excelu jsou v Aspose indexovány od nuly, takže `ListObjects[0]` je první tabulka na listu. + +## Práce s více tabulkami nebo listy + +Někdy potřebujete **remove autofilter from excel** sešity, které obsahují několik tabulek na různých listech. Zde je rychlé rozšíření: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Tato smyčka zajišťuje, že **turn off autofilter excel** je provedeno všude, čímž odstraní skryté filtry, které by mohly narušit následný import dat. + +## Časté úskalí a jak se jim vyhnout + +| Problém | Proč se stane | Oprava | +|---------|----------------|-----| +| **Filtr zůstane po uložení** | Použití `ShowAutoFilter = false` pouze skryje UI. | Použijte `table.AutoFilter = null` pro skutečné smazání. | +| **Špatný index tabulky** | Předpokládáte, že první tabulka je ta, kterou potřebujete. | Zkontrolujte `worksheet.ListObjects.Count` a používejte smysluplné názvy (`tbl.Name`). | +| **Chybějící licence** | Evaluační verze může vkládat vodoznaky. | Zaregistrujte licenci co nejdříve: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Soubor uzamčen** | Excel stále má otevřený zdrojový soubor. | Ujistěte se, že je sešit v Excelu zavřený před spuštěním skriptu. | + +## Bonus: Přidání AutoFilter zpět (pokud změníte názor) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Mít k dispozici opačnou operaci dělá z tohoto tutoriálu jediné místo pro scénáře **remove autofilter from excel** i **how to delete autofilter**. + +## Kompletní funkční příklad (připravený ke kopírování a vložení) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Spuštěním výše uvedeného kódu **remove autofilter from excel** pro každou tabulku v sešitu, získáte čistý základ pro další zpracování. + +## Závěr + +Právě jsme probrali vše, co potřebujete k **remove autofilter from excel** pomocí C#. Od instalace Aspose.Cells, načtení sešitu, nalezení tabulky, skutečného smazání filtru až po uložení čistého souboru – každý krok byl vysvětlen s „proč“. Nyní víte, jak **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel** a **clear excel table filter** v jednom znovupoužitelném úryvku. + +Jste připraveni na další výzvu? Zkuste automatizovat přidání podmíněného formátování, nebo prozkoumejte, jak programově **add an AutoFilter back**. Obě témata staví přímo na konceptech, které jsme právě probrali, a obohatí vaši sadu nástrojů pro automatizaci Excelu. + +Máte otázky, nebo jste narazili na scénář, který jsme neprobírali? Zanechte komentář níže – šťastné programování! + +![Snímek obrazovky ukazující list Excelu bez jakýchkoli rozbalovacích filtrů – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/czech/net/excel-comment-annotation/_index.md index f2188d7a9f..de90f05f0a 100644 --- a/cells/czech/net/excel-comment-annotation/_index.md +++ b/cells/czech/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Naučte se, jak přidávat komentáře k obrázky v Excelu pomocí Aspose.Cells Naučte se, jak přidávat komentáře k buňkám v Excelu pomocí Aspose.Cells pro .NET. Podrobný návod pro začátečníky, jak vylepšit funkce Excelu. ### [Formátování komentářů - písmo, barva, zarovnání](./format-comments-font-color-alignment/) Zjistěte, jak snadno formátovat komentáře v Excelu pomocí Aspose.Cells pro .NET. Upravte písmo, velikost a zarovnání pro vylepšení vašich tabulek. +### [Vytvoření Excel sešitu v C# – Přidání a vyplnění komentářů pomocí inteligentních značek](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Naučte se, jak vytvořit sešit Excel v C# a přidat komentáře s inteligentními značkami pomocí Aspose.Cells pro .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/czech/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..b225273025 --- /dev/null +++ b/cells/czech/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-03-21 +description: Vytvořte Excel sešit v C# a naučte se, jak přidat komentář do Excelu, + automaticky vyplnit komentář pomocí Smart Markers. Krok za krokem průvodce pro vývojáře. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: cs +og_description: Vytvořte Excel sešit v C# a rychle přidejte komentář do Excelu, poté + vyplňte komentář pomocí Smart Markerů. Kompletní tutoriál s kódem. +og_title: Vytvořte Excel sešit v C# – Přidávejte a vyplňujte komentáře +tags: +- C# +- Excel automation +- Aspose.Cells +title: Vytvořit Excel sešit v C# – Přidat a vyplnit komentáře pomocí chytrých značek +url: /cs/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření Excel sešitu C# – Přidání a vyplnění komentářů pomocí Smart Markers + +Už jste někdy potřebovali **create Excel workbook C#** a přemýšleli, jak vložit komentář, který se automaticky aktualizuje? Nejste v tom sami. V mnoha scénářích reportování chcete komentář buňky, který říká *„Created by Alice on 2024‑07‑15“* bez ručního kódování jména nebo data pokaždé. + +V tomto tutoriálu vám ukážeme přesně **how to add comment to Excel**, pak **how to fill comment** pomocí Smart Markers od Aspose.Cells. Na konci budete mít připravený program, který vytvoří sešit, vloží dynamický komentář a uloží soubor – vše během několika úhledných kroků. + +> **Co získáte:** kompletní, kompilovatelnou C# konzolovou aplikaci, vysvětlení každého řádku, tipy na běžné úskalí a nápady, jak řešení rozšířit. + +## Požadavky + +- .NET 6.0 SDK nebo novější (kód funguje také s .NET Core a .NET Framework) +- Visual Studio 2022 nebo jakékoli IDE, které preferujete +- **Aspose.Cells for .NET** NuGet balíček (`Install-Package Aspose.Cells`) – tato knihovna poskytuje třídy `Workbook`, `Worksheet` a `SmartMarkerProcessor` použité níže. +- Základní znalost syntaxe C# – pokud jste již použili `Console.WriteLine`, jste připraveni. + +Nyní, když je základ připraven, pojďme se ponořit dovnitř. + +![Snímek obrazovky příkladu vytvoření Excel sešitu C#](excel-workbook.png "Příklad vytvoření Excel sešitu C#") + +## Krok 1: Inicializace nového sešitu – Základy vytvoření Excel sešitu C# + +Nejprve potřebujeme čistý objekt sešitu. Představte si `Workbook` jako prázdné plátno; bez něj nemůžete umístit žádné buňky, řádky ani komentáře. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Proč je to důležité:** `Workbook` automaticky vytvoří výchozí list, takže nemusíte volat `Add`, pokud nepotřebujete další záložky. Přístup k `Worksheets[0]` je nejrychlejší způsob, jak začít naplňovat data. + +## Krok 2: Vložení komentáře s Smart Marker – Jak přidat komentář pomocí tokenů + +Dále umístíme komentář do buňky **B2**, který obsahuje tokeny Smart Marker (`«UserName»` a `«CreatedDate»`). Tyto tokeny budou později nahrazeny skutečnými hodnotami. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Vysvětlení:** +- `CreateComment()` vytvoří objekt komentáře, pokud neexistuje; jinak vrátí existující. +- Vlastnost `Note` obsahuje viditelný text. Zabalíme‑li zástupné symboly do `« »`, řekneme Aspose.Cells, že se jedná o **Smart Markery** – zástupné symboly, které lze nahradit najednou. + +> **Pro tip:** Pokud potřebujete víceřádkový komentář, použijte `\n` uvnitř řetězce, např. `"Line1\nLine2"`. + +## Krok 3: Příprava datového objektu – Jak dynamicky vyplnit komentář + +Smart Markery potřebují datový zdroj. V C# je nejjednodušší způsob anonymní typ, který odpovídá názvům zástupných symbolů. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Proč anonymní typ?** +Je lehký, nevyžaduje žádný další soubor třídy a přesně odpovídá názvům vlastností (`UserName`, `CreatedDate`) názvům tokenů. Pokud dáváte přednost silně typovanému modelu, stačí vytvořit třídu se stejnými vlastnostmi. + +## Krok 4: Zpracování Smart Markerů – Jak vyplnit komentář pomocí datového objektu + +Nyní se děje magie. `SmartMarkerProcessor` prohledá sešit na výskyt tokenů `«…»` a nahradí je hodnotami z `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Co se děje pod kapotou?** +`SmartMarkerProcessor` prochází každou buňku, komentář, záhlaví atd., hledá vzor `«Token»`. Když jej najde, použije reflexi k načtení odpovídající vlastnosti z `markerData` a zapíše hodnotu zpět. Žádné ruční smyčky nejsou potřeba. + +## Krok 5: Uložení sešitu – Vyplnění Excel komentáře a uložení souboru + +Nakonec zapíšeme sešit na disk. Komentář nyní vypadá například takto *„Created by Alice on 03/21/2026 10:15 AM“*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Ověření výsledku:** Otevřete `CommentFilled.xlsx` v Excelu, najděte buňku **B2** a uvidíte komentář se skutečným jménem uživatele a časovým razítkem. Pro další spuštění není potřeba měnit kód – stačí změnit hodnoty v `markerData`. + +--- + +## Běžné varianty a okrajové případy + +### Použití vlastního formátu data + +Pokud chcete datum ve formátu `yyyy‑MM‑dd`, upravte datový objekt: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Přidání více komentářů + +Můžete opakovat **Krok 2** pro jiné buňky. Každý komentář může mít svůj vlastní soubor tokenů, nebo sdílet stejné, pokud jsou informace univerzální. + +### Práce s existujícími sešity + +Místo `new Workbook()` načtěte existující soubor: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Zbytek kroků zůstává stejný – Smart Markery fungují jak na nových, tak na předchozích souborech. + +### Zpracování nulových hodnot + +Pokud může token chybět, zabalte vlastnost do nullable typu nebo poskytněte náhradní hodnotu: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +Procesor vloží *„Unknown“* když je zdroj `null`. + +--- + +## Kompletní funkční příklad (připravený ke kopírování) + +Níže je **celý program**, který můžete vložit do projektu konzolové aplikace a spustit okamžitě (jen nahraďte `YOUR_DIRECTORY` skutečnou cestou ke složce). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Spusťte program, otevřete vygenerovaný soubor a uvidíte dynamický komentář v buňce **B2**. Jednoduché, že? + +--- + +## Často kladené otázky (FAQ) + +**Q: Funguje to s .NET Framework 4.7?** +A: Rozhodně. Aspose.Cells podporuje .NET Framework 4.0+ a .NET Core/5/6/7. Stačí odkazovat na příslušný DLL nebo NuGet balíček. + +**Q: Mohu tento přístup použít pro validaci dat nebo podmíněné formátování?** +A: Smart Markery slouží především k vkládání hodnot do buněk, komentářů, záhlaví a zápatí. Pro podmíněné formátování byste stále použili standardní API `Style`. + +**Q: Co když potřebuji přidat komentář do **jiného** listu?** +A: Získejte cílový list (`workbook.Worksheets["MySheet"]`) a opakujte **Krok 2** na buňkách tohoto listu. + +## Další kroky a související témata + +- **How to add comment to Excel** programatically pro více buněk (procházet rozsah). +- **Fill Excel comment** s daty z databáze (použijte `DataTable` jako zdroj dat pro Smart Markery). +- Prozkoumejte **Smart Marker arrays** pro automatické generování tabulek. +- Naučte se o **Aspose.Cells styling** pro formátování písma, barvy a velikosti komentáře. + +### Závěr + +Právě jsme prošli celý proces **create excel workbook c#**, **add comment to excel**, a **fill excel comment** pomocí Smart Markerů. Řešení je kompaktní, znovupoužitelné a připravené pro produkci. + +Vyzkoušejte to, upravte zástupné symboly a nechte knihovnu udělat těžkou práci. Pokud narazíte na problémy, zanechte komentář níže – šť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/_index.md b/cells/czech/net/excel-custom-number-date-formatting/_index.md index dc65fecfc1..34724568d0 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,8 @@ 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. +### [Nastavení vlastního formátu buňky v C# – Kompletní průvodce zápisem a čtením dat v Excelu](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +V tomto podrobném tutoriálu se naučíte, jak nastavit vlastní formát buňky a pracovat s daty v Excelu pomocí Aspose.Cells pro .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/czech/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..70868db32f --- /dev/null +++ b/cells/czech/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-03-21 +description: Nastavte vlastní formát buňky v C# a naučte se, jak zapisovat datum do + Excelu, aplikovat vlastní formát data, číst DateTime z Excelu a rychle vytvořit + sešit a list. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: cs +og_description: Nastavte vlastní formát buňky v C# pro zápis data do Excelu, použijte + vlastní formát data, načtěte DateTime z Excelu a snadno vytvořte list pracovního + sešitu. +og_title: Nastavte vlastní formát buňky v C# – Zápis a čtení dat v Excelu +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Nastavení vlastního formátu buňky v C# – Kompletní průvodce zápisem a čtením + dat v Excelu +url: /cs/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Nastavení vlastního formátu buňky – zápis a čtení dat v Excelu pomocí C# + +## Co se naučíte + +- Jak **create workbook worksheet** programmatically. +- Přesné kroky k **write date to Excel** pomocí řetězce specifického pro locale. +- Jak **apply custom date format** (včetně zápisu japonské éry). +- Jak **read DateTime from Excel** zpět do objektu `DateTime`. +- Tipy, úskalí a varianty, na které můžete narazit při práci s daty v Excelu. + +Žádná externí dokumentace není potřeba – vše, co potřebujete, je zde. + +## Požadavky + +- .NET 6.0 nebo novější (kód také funguje na .NET Framework 4.7+). +- Aspose.Cells pro .NET nainstalovaný přes NuGet (`Install-Package Aspose.Cells`). +- Základní znalost syntaxe C# – nic složitého. + +> **Pro tip:** Pokud používáte Visual Studio, povolte *nullable reference types*, abyste včas zachytili jemné chyby. + +## Krok 1: Vytvořte Workbook a Worksheet + +Nejprve potřebujete objekt workbook, který představuje soubor Excel, a worksheet, kde budou data uložena. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Proč je to důležité:* Třída `Workbook` je vstupním bodem pro všechny operace s Excelem. Vytvoření v paměti znamená, že se souborový systém nedotýkáte, dokud explicitně neuložíte, což udržuje proces rychlý a vhodný pro testování. + +## Krok 2: Zapsat datum do Excelu + +Dále vložíme řetězec japonské éry (`"R02-04-01"`) do buňky **A1**. Řetězec napodobuje éru Reiwa (rok 2, duben 1). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Co se děje:* `PutValue` uloží surový řetězec. Aspose.Cells se jej později pokusí parsovat podle stylu buňky. Pokud tento krok přeskočíte a zapíšete přímo `DateTime`, ztratíte informaci o éře, kterou chcete zobrazit. + +## Krok 3: Použijte vestavěný číselný formát data (ID 14) + +Excel má vestavěný formát data s ID 14 (`mm-dd-yy`). Použitím tohoto formátu řeknete enginu, že buňka **obsahuje datum**, nikoli jen text. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Proč použít ID 14?* Jedná se o univerzální „krátký datum“ formát, který zajišťuje, že Excel zachází s obsahem jako s hodnotou data, což je předpoklad pro správnou funkci jakéhokoli vlastního formátu. + +## Krok 4: Nastavte vlastní formát pro zobrazení zápisu japonské éry + +Nyní zábavná část: řekneme Excelu, aby zobrazil datum pomocí formátu japonské éry. Vlastní řetězec `[$-ja-JP]ggge年m月d日` to přesně provede. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Explanation:* +- `[$-ja-JP]` vynutí locale na japonštinu. +- `ggg` je název éry (např. „R“ pro Reiwa). +- `e` je rok éry. +- `年`, `月`, `日` jsou doslovné japonské znaky pro rok, měsíc, den. + +Pokud potřebujete jiné locale, jednoduše nahraďte `ja-JP` odpovídajícím kódem kultury (např. `en-US`). + +## Krok 5: Získat parsovanou hodnotu DateTime + +Nakonec si přečteme **skutečný `DateTime`**, který Excel z buňky parsoval. To dokazuje, že řetězec byl správně interpretován. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Výsledek:* Konzole vypíše `Parsed DateTime: 2020-04-01`. I když jsme zadali řetězec japonské éry, Excel interně ukládá gregoriánské datum, které můžete použít pro výpočty, porovnání nebo další export. + +## Krok 6: Uložit Workbook (volitelné) + +Pokud chcete vidět formátovaný workbook v Excelu, stačí jej uložit na disk. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Otevřete vygenerovaný soubor **JapaneseEraDate.xlsx** a uvidíte buňku **A1**, která zobrazuje `R02年4月1日` (přesný formát japonské éry, který jsme nastavili). + +![příklad nastavení vlastního formátu buňky](image-placeholder.png "Buňka Excelu zobrazující datum japonské éry – nastavení vlastního formátu buňky") + +*Alt text výše obsahuje hlavní klíčové slovo, splňující požadavek SEO pro obrázek.* + +## Běžné varianty a okrajové případy + +### Zápis jiného formátu data + +Pokud dáváte přednost ISO‑8601 (`2020-04-01`) místo řetězce éry, stačí změnit volání `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Práce s nulovými nebo prázdnými buňkami + +Při čtení data vždy kontrolujte prázdné buňky, abyste se vyhnuli `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Podpora více locale + +Můžete projít seznam kódů kultur a aplikovat je dynamicky: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Profesionální tipy a úskalí + +- **Vždy nejprve nastavte vestavěný číselný formát** (`Style.Number`). Bez něj Excel považuje buňku za prostý text a vlastní formát je ignorován. +- **Kódy locale jsou necitlivé na velikost písmen**, ale použití kanonické podoby (`ja-JP`) zabraňuje záměně. +- **Ukládání je volitelné** pro zpracování v paměti; můžete workbook streamovat přímo do webové odpovědi (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Licence Aspose.Cells**: Bezplatná evaluační verze přidává vodoznak. Pro produkci se ujistěte, že máte platnou licenci, aby nedošlo k výkonovým penalizacím. + +## Shrnutí + +Ukázali jsme, jak **nastavit vlastní formát buňky** v C# pro zobrazení dat japonské éry, jak **zapsat datum do Excelu**, **aplikovat vlastní formát data**, **číst DateTime z Excelu** a **vytvořit workbook worksheet** – vše v jednom samostatném programu. Hlavní klíčové slovo se objevuje přirozeně v celém textu, zatímco sekundární klíčová slova jsou zapletena do nadpisů a těla textu, což splňuje jak SEO, tak standardy AI‑citací. + +## Co dál? + +- Prozkoumejte **conditional formatting** pro zvýraznění prošlých termínů. +- Kombinujte tento přístup s **PivotTables** pro dynamické reportování. +- Vyzkoušejte **čtení velkých CSV souborů** a jejich převod do Excelu se stejnou logikou zpracování dat. + +Neváhejte experimentovat s různými locale, vlastními vzory nebo dokonce časovými pásmy. Pokud narazíte na problémy, zanechte komentář níže – šť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-data-export-retrieval/_index.md b/cells/czech/net/excel-data-export-retrieval/_index.md index af46817c33..c90a1b74ed 100644 --- a/cells/czech/net/excel-data-export-retrieval/_index.md +++ b/cells/czech/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Chcete vědět, jak na to? Podívejte se na tohoto praktického průvodce. [Nač ### [Načtení dat z buněk v Excelu](./retrieve-data-from-cells-in-excel/) Naučte se, jak načíst data z buněk aplikace Excel pomocí Aspose.Cells pro .NET v tomto podrobném tutoriálu, který je ideální pro začátečníky i zkušené vývojáře. +### [Export tabulky dat z Excelu v C# – Kompletní průvodce](./export-excel-data-table-in-c-complete-guide/) +Naučte se, jak pomocí Aspose.Cells pro .NET exportovat tabulky dat z Excelu v C# v tomto podrobném průvodci. + +### [Jak exportovat data z Excelu v C# – krok za krokem průvodce](./how-to-export-excel-data-in-c-step-by-step-guide/) +Naučte se, jak exportovat data z Excelu v C# pomocí Aspose.Cells pro .NET v tomto podrobném krok‑za‑krokem průvodci. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/czech/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/czech/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..f77f474de6 --- /dev/null +++ b/cells/czech/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Exportujte tabulku dat z Excelu do DataTable s hlavičkami, omezte počet + desetinných míst a exportujte prvních 100 řádků pomocí Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: cs +og_description: Naučte se, jak exportovat tabulku dat z Excelu do DataTable, zachovat + záhlaví, omezit počet desetinných míst a načíst prvních 100 řádků v C#. +og_title: Export datové tabulky Excel v C# – krok za krokem +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Export datové tabulky Excelu v C# – Kompletní průvodce +url: /cs/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Export tabulky dat z Excelu – Kompletní průvodce v C# + +Potřebujete **export excel data table** z sešitu do .NET `DataTable`? Jste na správném místě—tento průvodce vám přesně ukáže, jak to provést, zachovat záhlaví sloupců, omezit desetinná místa a načíst pouze prvních 100 řádků. + +Pokud jste někdy zírali na tabulku a přemýšleli: „Jak to dostanu do své aplikace, aniž bych přišel o formátování?“, nejste sami. V následujících několika minutách proměníme tuto otázku v konkrétní řešení ke zkopírování a vložení, které funguje s Aspose.Cells, populární knihovnou pro práci s Excelem. + +## Co se naučíte + +- Jak **export excel to datatable** pomocí metody `ExportDataTable`. +- Jak zachovat původní názvy sloupců (`export excel with headers`). +- Jak **limit decimal places excel** hodnoty nastavením `ExportTableOptions`. +- Jak bezpečně načíst jen prvních 100 řádků (`export first 100 rows`). + +Žádné externí skripty, žádné magické řetězce—jen čistý C#, který můžete vložit do libovolného .NET projektu. + +## Požadavky + +| Požadavek | Proč je to důležité | +|-------------|----------------| +| .NET 6 nebo novější (nebo .NET Framework 4.7+) | Aspose.Cells podporuje oba, ale novější runtime poskytují asynchronně připravená API. | +| Aspose.Cells for .NET NuGet package | Poskytuje `Workbook`, `ExportTableOptions` a pomocnou metodu `ExportDataTable`. | +| Vzorek souboru Excel (např. `Numbers.xlsx`) | Zdroj dat, která budete exportovat. | +| Základní znalost C# | Budete sledovat ukázky kódu, ale nic složitého není potřeba. | + +Pokud vám některý z těchto bodů není známý, stáhněte si NuGet balíček pomocí `dotnet add package Aspose.Cells` a vytvořte malý soubor Excel s několika čísly—vaše testovací data. + +![příklad exportu tabulky dat z Excelu](excel-data-table.png "Snímek obrazovky listu Excel, který bude exportován do DataTable") + +## Krok 1: Načtení sešitu (export excel data table) + +První, co potřebujete, je instance `Workbook`, která ukazuje na váš Excel soubor. Představte si to jako otevření knihy, než začnete číst kapitoly. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Proč je to důležité:** Načtení sešitu vám poskytne přístup k jeho listům, buňkám a stylům. Pokud je cesta k souboru špatná, Aspose vyhodí `FileNotFoundException`, takže zkontrolujte umístění. + +## Krok 2: Nastavení možností exportu – limit decimal places excel + +Ve výchozím nastavení Aspose exportuje každou číselnou hodnotu s plnou přesností. Často však stačí jen několik významných číslic, zejména když data předáváte do UI gridu nebo API, které očekává zaokrouhlená čísla. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Tip:** Pokud potřebujete jinou strategii zaokrouhlování (např. vždy nahoru), můžete po exportu `DataTable` doprocesovat. Nastavení `SignificantDigits` je nejrychlejší způsob, jak **limit decimal places excel** bez psaní dalších smyček. + +## Krok 3: Export požadovaného rozsahu (export first 100 rows) + +Nyní řekneme Aspose, který blok buněk chceme přenést do `DataTable`. V tomto tutoriálu načteme prvních 100 řádků a prvních 10 sloupců, ale můžete tyto hodnoty upravit podle svých potřeb. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Hraniční případ:** Pokud list obsahuje méně než 100 řádků, Aspose jednoduše exportuje to, co je k dispozici, aniž by vyhodil chybu. Přesto můžete chtít chránit před nečekaně malým rozsahem: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Krok 4: Ověření výsledku – rychlý výpis do konzole + +Zobrazit data v debuggeru je fajn, ale vypsání několika řádků do konzole potvrdí, že **export excel to datatable** skutečně fungoval a že desetinná místa jsou oříznuta. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Očekávaný výstup + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Všimněte si, že číselné sloupce nyní ukazují jen čtyři významné číslice, což odpovídá nastavení `SignificantDigits = 4`, které jsme použili dříve. + +## Krok 5: Zabalit vše dohromady – kompletní spustitelný příklad + +Níže je celý program, který můžete zkopírovat a vložit do konzolové aplikace. Obsahuje ošetření chyb, volitelnou kontrolu počtu řádků a pomocnou metodu pro výpis. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Spusťte program a uvidíte prvních 100 řádků vašeho listu, pěkně zaokrouhlených, s neporušenými názvy sloupců. + +## Často kladené otázky a úskalí + +| Otázka | Odpověď | +|----------|--------| +| **Co když má můj list sloučené buňky?** | `ExportDataTable` rozplývá sloučené buňky tak, že vezme hodnotu z levé horní buňky. Pokud potřebujete vlastní zpracování, nejprve buňky rozlučte nebo čtěte surové objekty `Cell`. | +| **Mohu exportovat místo toho do `DataSet`?** | Ano — použijte `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/czech/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..f917bf8a31 --- /dev/null +++ b/cells/czech/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,262 @@ +--- +category: general +date: 2026-03-21 +description: Jak exportovat data z Excelu s názvy sloupců, zachovat formát čísel a + číst konkrétní řádky pomocí Aspose.Cells v C#. Naučte se efektivně číst list Excelu + a exportovat specifické řádky. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: cs +og_description: Jak exportovat data z Excelu s názvy sloupců, zachovat formát čísel + a číst konkrétní řádky pomocí Aspose.Cells. Kompletní, spustitelný příklad pro vývojáře + C#. +og_title: Jak exportovat data z Excelu v C# – Kompletní programovací průvodce +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Jak exportovat data z Excelu v C# – krok za krokem +url: /cs/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak exportovat data z Excelu v C# – Kompletní programovací průvodce + +Už jste se někdy zamysleli nad **jak exportovat excel** data bez ztráty původního formátování? Možná jste zkusili rychlé kopírování‑vkládání a skončili s daty, kde datum vypadá jako „44728“ nebo chybí záhlaví sloupců. To je frustrující, že? V tomto tutoriálu uvidíte čistý, end‑to‑end způsob, jak načíst list Excelu, zachovat formát čísel, exportovat se jmény sloupců a dokonce vybrat jen řádky, které potřebujete. + +Budeme používat knihovnu Aspose.Cells, protože poskytuje detailní kontrolu nad možnostmi exportu. Na konci tohoto průvodce budete mít znovupoužitelný úryvek, který můžete vložit do libovolného .NET projektu, a pochopíte, proč každá volba má význam. Žádná externí dokumentace není potřeba – vše, co potřebujete, je zde. + +--- + +## Co se naučíte + +- **Read Excel worksheet** do paměti pomocí Aspose.Cells. +- **Export specific rows** (např. řádky 0‑49) při zachování názvů sloupců. +- **Preserve number format** aby měny, data a procenta zůstaly nezměněny. +- Jak **export with column names** a zahrnout komentáře buněk, pokud je potřebujete. +- Kompletní, připravený k spuštění C# příklad plus tipy pro běžné úskalí. + +### Předpoklady + +- .NET 6.0 nebo novější (kód funguje také s .NET Framework 4.6+). +- Aspose.Cells pro .NET nainstalovaný přes NuGet (`Install-Package Aspose.Cells`). +- Soubor Excel (`input.xlsx`) umístěný ve složce, na kterou můžete odkazovat. + +> **Pro tip:** Pokud používáte CI pipeline, zvažte stažení NuGet balíčku z privátního zdroje, abyste se vyhnuli překvapením s licencí. + +## Krok 1 – Instalace Aspose.Cells a přidání jmenných prostorů + +Nejprve se ujistěte, že balíček Aspose.Cells je ve vašem projektu. Otevřete Package Manager Console a spusťte: + +```powershell +Install-Package Aspose.Cells +``` + +Poté přidejte požadované `using` direktivy na začátek vašeho C# souboru: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Tyto importy vám poskytují přístup k `Workbook`, `Worksheet`, `ExportTableOptions` a `DataTable` – základním částem pro **reading an Excel worksheet** a export dat. + +## Krok 2 – Načtení sešitu (Read the Excel File) + +Nyní skutečně **read the Excel worksheet**. Konstruktor `Workbook` přijímá cestu k souboru a Aspose.Cells zvládne jak formát `.xlsx`, tak starší `.xls`. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Why this matters:** Načtení sešitu jednou a opětovné použití stejného objektu `Worksheet` je mnohem efektivnější než opakované otevírání souboru, zejména u velkých tabulek. + +## Krok 3 – Konfigurace možností exportu (Preserve Number Format & Column Names) + +Zde říkáme Aspose.Cells *jak* exportovat. Třída `ExportTableOptions` nám umožňuje jemně doladit výstup. Aktivujeme tři příznaky: + +1. `ExportAsString = true` – vynutí, aby se každá buňka stala řetězcem, což zaručuje, že čísla zachovají svůj vizuální vzhled. +2. `IncludeCellComments = true` – kopíruje všechny komentáře připojené k buňkám (užitečné pro dokumentaci). +3. `PreserveNumberFormat = true` – zachová původní formát čísla (symboly měny, vzory dat atd.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Edge case:** Pokud nastavíte `ExportAsString` na `false`, ale stále chcete zachovat formáty čísel, můžete skončit s čistými číselnými hodnotami (např. 44728 pro datum). Nechat oba příznaky zapnuté tomuto překvapení předchází. + +## Krok 4 – Získání prvního listu (Read Excel Worksheet) + +Většina jednoduchých souborů má potřebná data na prvním listu, takže jej získáme podle indexu. Pokud potřebujete jiný list, stačí nahradit `0` odpovídajícím nulovým indexem nebo použít `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Why it’s useful:** Přímý přístup k objektu listu vám dává plnou kontrolu nad jeho kolekcí `Cells`, což je nezbytné pro **export specific rows** později. + +## Krok 5 – Export rozsahu buněk (Export Specific Rows) + +Nyní jádro tutoriálu: export řádků 0‑49 a sloupců 0‑4 (tj. prvních 50 řádků a prvních pěti sloupců) do `DataTable`. Také požádáme Aspose.Cells, aby zahrnul názvy sloupců jako první řádek `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Co to dělá + +- **`startRow: 0`** – začíná na úplně vrcholu listu. +- **`totalRows: 50`** – získá prvních 50 řádků (tj. **export specific rows**). +- **`totalColumns: 5`** – omezuje export na prvních pět sloupců. +- **`includeColumnNames: true`** – zajišťuje, že záhlaví sloupců `DataTable` odpovídá řádku s hlavičkou v Excelu, což splňuje požadavek **export with column names**. +- **`exportOptions`** – použije nastavení z Kroku 3, takže vaše číselné hodnoty zůstanou ve formátu jako “$1,234.56” místo “1234.56”. + +## Krok 6 – Ověření exportu (Jak výsledek vypadá) + +Vytiskněme několik prvních řádků do konzole, abyste viděli, že formátování přežilo. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Očekávaný výstup (příklad):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Všimněte si, že data se zobrazují ve formátu `MM/dd/yyyy` a měna si zachovává symbol `$` – díky **preserve number format**. + +## Běžné úskalí a jak se jim vyhnout + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| Data se změní na velká čísla | `ExportAsString` zůstalo `false` | Nechte `ExportAsString = true` nebo buňky převádějte ručně | +| Chybí záhlaví sloupců | `includeColumnNames` nastaveno na `false` | Nastavte na `true`, když potřebujete **export with column names** | +| Komentáře zmizí | `IncludeCellComments` není povoleno | Zapněte `IncludeCellComments` v `ExportTableOptions` | +| Export špatného listu | Použití `Worksheets[0]` u souboru s více listy | Zadejte název listu: `workbook.Worksheets["Data"]` | +| Výjimka mimo rozsah | `totalRows` překračuje skutečný počet řádků | Použijte `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +## Bonus: Export celého listu při zachování formátů + +Pokud později rozhodnete, že potřebujete celý list, stačí nahradit `totalRows` a `totalColumns` maximálními rozměry listu: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Nyní máte rutinu **read excel worksheet**, která funguje pro jakoukoli velikost, přičemž stále **preserving number format** a **exporting with column names**. + +## Kompletní funkční příklad (připravený ke kopírování‑vkládání) + +Níže je kompletní program, který můžete vložit do konzolové aplikace. Obsahuje všechny kroky, importy a jednoduchý výpis pro ověření. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Uložte to jako `Program.cs`, spusťte `dotnet run` a měli byste vidět formátovaný náhled ve vašem terminálu. + +## Závěr + +Právě jsme prošli **how to export excel** data pomocí Aspose.Cells, pokrývající vše od načtení sešitu po zachování formátu čísel, export se jmény sloupců a omezení exportu na konkrétní řádky. Kód je samostatný, plně spustitelný a obsahuje praktické ochrany proti nejčastějším úskalím. + +Jste připraveni na další výzvu? Zkuste exportovat přímo do CSV při zachování původního formátování čísel, nebo vložte `DataTable` do kontextu Entity Framework Core pro hromadné vkládání do databáze. Obě situace staví na stejných základech, které jsme zde probírali. + +Pokud vám tento průvodce přišel užiteč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-workbook/_index.md b/cells/czech/net/excel-workbook/_index.md index e2720be448..5ec9dfd7a6 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 sešit Excel s formátovanou tabulkou – krok‑za‑krokem](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Naučte se, jak pomocí Aspose.Cells pro .NET vytvořit sešit Excel s formátovanou tabulkou, včetně nastavení stylů a formátování, krok za krokem. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/czech/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..4fa35e5773 --- /dev/null +++ b/cells/czech/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,274 @@ +--- +category: general +date: 2026-03-21 +description: Vytvořte sešit Excel a importujte datovou tabulku do Excelu při nastavení + stylu sloupce, exportujte data do Excelu a formátujte datum v buňkách Excelu na + minuty. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: cs +og_description: Rychle vytvořte sešit Excel. Naučte se importovat datovou tabulku + do Excelu, nastavit styl sloupce, exportovat data do Excelu a formátovat datum v + buňkách Excelu v jednom průvodci. +og_title: Vytvořte Excel sešit – Kompletní návod pro stylování a export +tags: +- C# +- Aspose.Cells +- Excel automation +title: Vytvořte Excel sešit se stylovanou tabulkou – průvodce krok za krokem +url: /cs/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření Excel sešitu – Kompletní programovací tutoriál + +Už jste někdy potřebovali **create excel workbook**, který vypadá profesionálně přímo z kódu? Možná taháte data z databáze a chcete, aby se data zobrazovala ve správném formátu, aniž byste museli později upravovat v Excelu. To je častý problém – zejména když výstup skončí v e‑mailu klienta a ten očekává, že vše bude připravené k použití. + +V tomto průvodci projdeme jedním, samostatným řešením, které **imports datatable to excel**, použije **set column style** a nakonec **export data to excel** jako pěkně naformátovaný soubor. Ukážeme vám přesně, jak **format excel cells date**, aby se tabulka četla jako profesionální zpráva, a na konci získáte kompletní, spustitelný příklad. Žádné chybějící části, žádné zkratky typu „viz dokumentace“ – jen čistý kód, který můžete dnes vložit do svého projektu. + +--- + +## Co se naučíte + +- Jak **create excel workbook** pomocí knihovny Aspose.Cells (nebo jakéhokoli kompatibilního API). +- Nejrychlejší způsob, jak **import datatable to excel** bez ručních smyček buňka‑po‑buňce. +- Techniky pro **set column style**, včetně aplikace formátu data na konkrétní sloupec. +- Jak **export data to excel** jedním voláním `Save`. +- Běžné úskalí při pokusu **format excel cells date** a jak se jim vyhnout. + +### Požadavky + +- .NET 6+ (nebo .NET Framework 4.6+). +- Aspose.Cells pro .NET nainstalováno (`Install-Package Aspose.Cells`). +- `DataTable` připravená k exportu – vaším zdrojem dat může být SQL, CSV nebo cokoliv, co lze převést na `DataTable`. + +Pokud už jste zvyklí na C# a máte všechny součásti připravené, můžete rovnou začít. Jinak vám výše uvedená sekce „Požadavky“ poskytne rychlý kontrolní seznam. + +--- + +## Krok 1 – Vytvoření instance Excel sešitu + +První věc, kterou uděláte, když chcete programově **create excel workbook**, je vytvořit instanci objektu workbook. Představte si to jako otevření prázdného sešitu, do kterého později zapíšete svá data. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Proč je to důležité:** +> Třída `Workbook` je vstupním bodem pro každou operaci v Aspose.Cells. Vytvořením předem získáte čisté plátno a později můžete načíst existující soubor, pokud potřebujete přidat data místo toho, abyste začínali od nuly. + +--- + +## Krok 2 – Připravte DataTable pro import + +Než budeme moci **import datatable to excel**, potřebujeme `DataTable`. V reálných projektech často pochází z `SqlDataAdapter.Fill` nebo `DataTable.Load`. Pro přehlednost vytvoříme metodu, která vrátí připravenou tabulku. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tip:** Pokud jsou vaše data uložena jako řetězce, nejprve je převeďte na `DateTime` – jinak krok **format excel cells date** nebude fungovat podle očekávání. + +--- + +## Krok 3 – Definujte styly pro každý sloupec (Set Column Style) + +Nyní přichází část, kde **set column style**. Vytvoříme pole objektů `Style` – jeden pro každý sloupec. První sloupec získá vestavěný formát data (kód 14), zatímco ostatní zůstanou v obecné podobě (kód 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Proč používat objekty stylu?** +> Aplikace stylu jednou a jeho opakované použití je mnohem efektivnější než nastavení formátu na každou buňku zvlášť. Také to zaručuje, že celý sloupec dodržuje stejný pravidlo **format excel cells date**, což je zásadní pro konzistenci při otevírání souboru v různých locale. + +--- + +## Krok 4 – Importujte DataTable se styly do listu + +S připraveným workbookem a definovanými styly nyní **import datatable to excel**. Metoda `ImportDataTable` provádí těžkou práci: zapíše názvy sloupců, řádky a použije předané styly. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Co se děje pod kapotou?** +> - `true` říká Aspose.Cells, aby zahrnulo názvy sloupců jako první řádek. +> - `0, 0` jsou počáteční indexy řádku a sloupce (levý horní roh). +> - `columnStyles` přiřadí každý sloupec ke stylu, který jsme připravili, čímž zajišťuje, že se na sloupec s datem použije pravidlo **format excel cells date**. + +--- + +## Krok 5 – Uložení (Export) workbooku do fyzického souboru + +Nakonec **export data to excel** uložením workbooku na disk. Cestu můžete změnit na libovolnou složku, nebo soubor přímo streamovat do HTTP odpovědi pro webové API. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** Použijte `workbook.Save(Stream, SaveFormat.Xlsx)`, když potřebujete soubor poslat po síti, aniž byste jej zapisovali na disk. + +--- + +## Kompletní funkční příklad (všechny kroky dohromady) + +Níže je kompletní, připravený k spuštění program. Zkopírujte jej do konzolové aplikace, upravte výstupní cestu a během několika sekund budete mít pěkně naformátovaný Excel soubor. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Očekávaný výstup:** +Když otevřete `StyledTable.xlsx`, sloupec A zobrazí data jako `03/19/2026` (v závislosti na vašem locale), zatímco sloupce B a C zobrazí názvy produktů a množství jako prostý text/čísla. Žádné další kroky formátování nejsou potřeba – váš proces **create excel workbook** je hotov. + +--- + +## Často kladené otázky a okrajové případy + +### 1️⃣ Co když má můj DataTable více než tři sloupce? + +Přidejte více objektů `Style` do pole `columnStyles` a upravte vlastnost `Number` u sloupců, které potřebují speciální formát (např. měna, procenta). Metoda `ImportDataTable` přiřadí každý styl podle pozice. + +### 2️⃣ Můžu použít vlastní formát data místo vestavěného 14? + +Určitě. Nahraďte `columnStyles[i].Number = 14;` tímto: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Jak **export data to excel** v webovém API bez zápisu na disk? + +Použijte `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Co když locale uživatele očekává jiný oddělovač data? + +Vestavěný formát data (ID 14) respektuje nastavení locale workbooku. Pokud potřebujete pevný formát bez ohledu na locale, použijte vlastnost `Custom`, jak je uvedeno výše. + +### 5️⃣ Funguje to s .NET Core? + +Ano – Aspose.Cells podporuje .NET Standard 2.0 a novější, takže stejný kód běží na .NET 6, .NET 7 nebo jakémkoli kompatibilním runtime. + +--- + +## Tipy pro nejlepší praxi (Pro tipy) + +- **Znovupoužívejte styly**: Vytvoření stylu pro každý sloupec je levné, ale opakované použití stejného objektu stylu pro identické sloupce šetří paměť. +- **Vyhněte se smyčkám buňka‑po‑buňce**: `ImportDataTable` je vysoce optimalizovaný; ruční smyčky jsou pomalejší a náchylné k chybám. +- **Nastavte kulturu workbooku brzy**, pokud potřebujete konzistentní oddělovače čísel/dat napříč prostředími: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Ověřte DataTable** před importem – nulová data vyvolají výjimku, když se použije styl data. +- **Zapněte výpočty**, pokud po importu přidáváte vzorce: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Závěr + +Nyní máte kompletní, end‑to‑end návod, jak **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel** a **format excel cells date** – vše v méně než dvanácti řádcích C# kódu. Přístup je rychlý, spolehlivý a udržuje formátování uvnitř kódu, takže finální tabulka je připravena pro obchodní uživatele hned po otevření. + +Připraven na další výzvu? Zkuste přidat podmíněné formátování, vložit grafy nebo převést the + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/czech/net/row-and-column-management/_index.md index 20d30665a1..02c86151c4 100644 --- a/cells/czech/net/row-and-column-management/_index.md +++ b/cells/czech/net/row-and-column-management/_index.md @@ -76,6 +76,8 @@ Naučte se, jak vložit řádek do Excelu pomocí Aspose.Cells pro .NET s tímto Naučte se vkládat řádek s formátováním v Excelu pomocí Aspose.Cells pro .NET. Pro snadnou implementaci postupujte podle našeho podrobného návodu. ### [Vložení více řádků do Aspose.Cells .NET](./insert-multiple-rows-aspose-cells/) Naučte se vkládat více řádků v Excelu pomocí Aspose.Cells pro .NET. Postupujte podle našeho podrobného návodu pro bezproblémovou manipulaci s daty. +### [Načtení souboru Excel v C# – Jak mazat řádky a odstranit konkrétní řádky](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Naučte se načíst soubor Excel a odstranit řádky nebo konkrétní řádky pomocí Aspose.Cells pro .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/czech/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..ee9c2291e9 --- /dev/null +++ b/cells/czech/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-03-21 +description: Načtěte Excel soubor v C# a odstraňte řádky s daty pomocí Aspose.Cells. + Naučte se, jak mazat řádky, odstraňovat konkrétní řádky a ovládněte mazání řádků + v Excelu v C# během několika minut. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: cs +og_description: Načtěte soubor Excel v C# a rychle odstraňte řádky, odstraňte konkrétní + řádky a řešte mazání řádků v Excelu v C# pomocí Aspose.Cells. Kompletní krok‑za‑krokem + průvodce. +og_title: Načíst Excel soubor v C# – Smazat řádky a odstranit konkrétní řádky +tags: +- C# +- Excel +- Aspose.Cells +title: Načíst Excel soubor v C# – Jak smazat řádky a odstranit konkrétní řádky +url: /cs/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Načtení Excel souboru C# – Jak smazat řádky a odstranit konkrétní řádky + +Už jste někdy potřebovali **load Excel file C#** a pak odstranit řádky, které nepotřebujete? Možná čistíte výpis dat, nebo máte šablonu, kde musí některé řádky zmizet, než pošlete sešit klientovi. V každém případě je problém stejný: máte `.xlsx` soubor na disku, chcete jej otevřít v .NET a potřebujete **delete rows** bez poškození skrytých tabulek nebo objektů seznamu. + +Takže tady je věc—Aspose.Cells to dělá hračkou. V tomto tutoriálu uvidíte kompletní, připravený příklad, který přesně ukazuje **how to delete rows**, jak **remove specific rows**, a proč by vás mohlo zajímat **c# excel row deletion**. Na konci budete mít čistý `output.xlsx`, který obsahuje jen řádky, které chcete. + +## Co tento průvodce pokrývá + +- Načtení Excel sešitu z disku pomocí Aspose.Cells. +- Smazání rozsahu řádků (např. řádky 5‑10) s ohledem na hlavičky ListObject. +- Uložení upraveného sešitu zpět do souborového systému. +- Běžné úskalí, jako je nechtěné smazání řádků uvnitř tabulky, a tipy, jak je řešit. +- Kompletní spustitelný ukázkový kód, který můžete dnes vložit do konzolové aplikace. + +> **Požadavky** +> • .NET 6+ (nebo .NET Framework 4.6+). +> • Aspose.Cells pro .NET nainstalovaný přes NuGet (`Install-Package Aspose.Cells`). +> • Základní znalost C# a konceptů Excelu (listy, buňky, tabulky). + +Pokud se ptáte **why you should use Aspose.Cells** místo např. `Microsoft.Office.Interop.Excel`, odpověď je rychlost, žádná potřeba COM a možnost běhu na serverech bez nainstalovaného Office. Navíc je API přímočaré pro úkoly mazání řádků. + +--- + +## Krok 1: Načtení Excel sešitu v C# + +Než budete moci něco smazat, musíte načíst sešit do paměti. Třída `Workbook` představuje celý Excel soubor. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Proč je to důležité:** +Načtení souboru vytvoří objektový graf, který odráží strukturu Excelu—listy, buňky, tabulky a podobně. Držením reference na `ws` můžete manipulovat s řádky přímo, aniž byste se museli starat o zamknutí souboru nebo zvláštnosti COM interop. + +## Krok 2: Smazání řádků, které obsahují pouze data + +Nyní, když je sešit v paměti, můžete mazat řádky. Metoda `Cells.DeleteRows(startRow, totalRows)` odstraňuje souvislý blok. V našem příkladu odstraníme řádky 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Jak to funguje:** +- `startRow` je nulově indexováno, takže `5` ve skutečnosti odkazuje na řádek 6 v Excelu. Přizpůsobte podle potřeby. +- Pokud list obsahuje **ListObject** (Excel tabulku), jejíž hlavička je v řádku 4, Aspose.Cells ochrání hlavičku a smaže jen datové řádky pod ní. Toto vestavěné zabezpečení zabraňuje poškození strukturovaných tabulek—častý okrajový případ při **removing data rows**. + +> **Tip:** Pokud potřebujete smazat nesouvislé řádky (např. řádky 3, 7, 12), projděte obráceně kolekci indexů řádků a pro každý zavolejte `DeleteRows(rowIndex, 1)`. Mazání odspodu nahoru zachovává původní indexy pro zbývající řádky. + +## Krok 3: Uložení upraveného sešitu + +Jakmile jsou nechtěné řádky odstraněny, jednoduše zapíšete sešit zpět na disk. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +Metoda `Save` automaticky určuje formát souboru podle přípony (`.xlsx` v tomto případě). Pokud potřebujete jiný formát—CSV, PDF, atd.—stačí změnit příponu nebo předat enum `SaveFormat`. + +### Očekávaný výsledek + +Otevřete `output.xlsx` v Excelu a uvidíte, že řádky 5‑14 (původní řádky 5‑10) jsou pryč. Veškerá ostatní data se posunou nahoru a všechny vzorce, které odkazovaly na smazané řádky, jsou automaticky upraveny Aspose.Cells. + +## Často kladené otázky (FAQ) + +### Jak smazat řádky na základě podmínky (např. všechny řádky, kde je sloupec A prázdný)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +Smyčka běží pozpátku, aby se zabránilo posunu indexů. Tento vzor odpovídá širší otázce **c# excel row deletion**, když potřebujete podmíněnou logiku. + +### Co když můj list obsahuje více ListObjectů? + +Aspose.Cells zachází s každým ListObjectem samostatně. Pokud by hlavička jakékoli tabulky byla ovlivněna rozsahem mazání, API vyhodí `InvalidOperationException`. Řešením je buď upravit rozsah, nebo dočasně vymazat vlastnost `ShowTableStyleFirstColumn` ListObjectu, provést mazání a poté ji obnovit. + +### Můžu smazat řádky bez načtení celého sešitu do paměti? + +Ano—Aspose.Cells nabízí **streaming API** (`Workbook.LoadOptions`), které čte data po částech. Přesto mazání řádků vyžaduje strukturu listu, takže cílový list musíte načíst do paměti. Pro obrovské soubory (>500 MB) zvažte zpracování po dávkách nebo použití **cell‑by‑cell** API. + +## Kompletní spustitelný příklad + +Níže je kompletní program, který můžete zkompilovat a spustit jako konzolovou aplikaci. Nahraďte `YOUR_DIRECTORY` skutečnou cestou ke složce na vašem počítači. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Spuštění kódu:** +1. Otevřete terminál nebo Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Nahraďte `Program.cs` výše uvedeným úryvkem. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Měli byste vidět výstup v konzoli potvrzující smazání a umístění uloženého souboru. + +## Běžná úskalí a jak se jim vyhnout + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Náhodné smazání hlavičky ListObject** | `DeleteRows` nekontroluje skryté hlavičky tabulky, když se rozsah překrývá s nimi. | Ujistěte se, že počáteční řádek je **za** jakoukoli hlavičkou tabulky, nebo použijte API `ListObject` k mazání řádků uvnitř tabulky (`ListObject.DeleteRows`). | +| **Index řádku o jeden posunutý** | Aspose.Cells používá nulové indexování, zatímco uživatelé Excelu myslí v indexování od 1. | Pamatujte, že musíte odečíst 1 od čísla řádku v Excelu při psaní kódu. | +| **Vzorce selžou po smazání** | Mazání řádků může způsobit chyby `#REF!`, pokud vzorce odkazují na odstraněné řádky. | Aspose.Cells automaticky aktualizuje většinu vzorců, ale dvakrát zkontrolujte jakékoli externí odkazy nebo pojmenované oblasti. | +| **Zpomalení výkonu u velkých souborů** | Mazání mnoha řádků spouští interní přeindexování. | Provádějte hromadné mazání (odstraňte velký rozsah najednou) místo mnoha jednorázových mazání řádků. Používejte `DeleteRows(start, count)` kdekoliv je to možné. | + +## Další kroky a související témata + +- **Odstranit konkrétní řádky na základě hodnot buněk:** Kombinujte podmíněnou smyčku uvedenou v FAQ s `DeleteRows`. +- **Hromadné vkládání řádků:** Použijte `InsertRows` k přidání zástupných řádků před naplněním dat. +- **Práce s tabulkami (ListObjects):** Prozkoumejte metody `ListObject` pro operace na úrovni řádků uvnitř strukturovaných tabulek. +- **Export do CSV po smazání řádků:** Zavolejte `workbook.Save("output.csv", SaveFormat.Csv)` pro vytvoření čistého CSV bez odstraněných řádků. + +Každý z těchto kroků staví na základním workflow **load excel file c#**, který jste právě zvládli, a umožňuje vám programově doladit Excel soubory. + +## Závěr + +Prošli jsme praktickým scénářem **load excel file c#**, ukázali **how to delete rows** a pokryli nuance **remove specific rows** a **remove data rows** pomocí Aspose.Cells. Načtením sešitu, voláním `DeleteRows` a uložením výsledku dosáhnete spolehlivého **c# excel row deletion** bez zátěže COM interop. + +Vyzkoušejte to na reálných datech—například vyčistěte prodejní zprávu nebo odstraňte testovací řádky ze šablony. Jakmile budete mít jistotu, experimentujte s podmíněným mazáním a operacemi uvědomujícími si tabulky. API je dostatečně robustní jak pro jednoduché skripty, tak pro podnikovou dávkovou zpracování. + +Šťastné kódování a neváhejte zanechat komentář, pokud narazíte na nějaké potíže! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/czech/net/worksheet-operations/_index.md index 817f06d10e..0dd1d11289 100644 --- a/cells/czech/net/worksheet-operations/_index.md +++ b/cells/czech/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Naučte se nastavit grafické pozadí v souborech ODS pomocí Aspose.Cells pro . Naučte se aktualizovat historii protokolů revizí ve sdílených sešitech pomocí Aspose.Cells pro .NET. Zjednodušte si spolupráci a udržujte přehledné záznamy o dokumentech. ### [Využití vlastnosti Sheet_SheetId v OpenXml v pracovním listu](./utilize-sheet-sheetid-property/) Odemkněte sílu Excelu s Aspose.Cells pro .NET. Naučte se efektivně manipulovat s ID listů s naším podrobným návodem. +### [Jak vytvořit pracovní listy – průvodce krok za krokem pro dynamické generování Excelu](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Naučte se vytvářet pracovní listy dynamicky v Excelu pomocí Aspose.Cells pro .NET s podrobným krok za krokem návodem. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/czech/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..3a7f7c9036 --- /dev/null +++ b/cells/czech/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,278 @@ +--- +category: general +date: 2026-03-21 +description: Naučte se, jak vytvářet listy, generovat Excelové soubory s dynamickými + názvy listů a uložit sešit jako XLSX pomocí Aspose.Cells v C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: cs +og_description: Jak vytvořit listy v Excelu pomocí Aspose.Cells, generovat listy Excelu + s dynamickými názvy listů a uložit sešit jako XLSX. +og_title: Jak vytvořit pracovní listy – kompletní C# tutoriál +tags: +- Aspose.Cells +- C# +- Excel automation +title: Jak vytvořit pracovní listy – krok za krokem průvodce dynamickým generováním + Excelu +url: /cs/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak vytvořit listy – Kompletní C# tutoriál + +Už jste se někdy zamysleli **jak vytvořit listy** za běhu, aniž byste museli pokaždé ručně otevírat Excel? Nejste v tom sami. Mnoho vývojářů narazí na problém, když potřebují **generovat Excel listy** z datových zdrojů a chtějí, aby každý list měl smysluplný, dynamický název. Dobrá zpráva? S Aspose.Cells můžete automatizovat celý proces, **zpracovat hlavní list**, a nakonec **uložit sešit jako XLSX** během několika řádků kódu. + +V tomto tutoriálu projdeme reálný scénář: začneme s prázdným sešitem, vložíme token smart‑markeru, který řekne Aspose, které podrobné listy vytvořit, nakonfigurujeme pojmenovací vzor, aby každý list získal jedinečný název, a nakonec výsledek uložíme na disk. Na konci budete mít připravený C# program, který vytváří listy, generuje Excel listy s dynamickými názvy listů a ukládá sešit jako XLSX — bez nutnosti zasahovat do uživatelského rozhraní. + +> **Požadavky** +> • .NET 6+ (nebo .NET Framework 4.6+). +> • Aspose.Cells pro .NET (bezplatná zkušební verze stačí pro tuto ukázku). +> • Základní znalost C# — žádné složité Excel interop triky nejsou potřeba. + +--- + +## Přehled toho, co vytvoříme + +- **Hlavní list** obsahující placeholder smart‑markeru (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor**, který načte datový zdroj (např. `DataTable`) a vytvoří nový list pro každé oddělení. +- **Dynamické názvy listů** podle vzoru `Dept_{0}`, kde `{0}` je nahrazeno názvem oddělení. +- **Finální soubor XLSX** uložený do složky, kterou určíte. + +To je vše. Jednoduché, ale dostatečně výkonné pro faktury, reporty nebo jakýkoli vícelistý výstup Excelu. + +--- + +![Diagram ukazující, jak je hlavní list zpracován k vygenerování více dynamických listů](/images/how-to-create-worksheets-diagram.png "Diagram jak vytvořit listy") + +*Alt text: ilustrace, jak vytvořit listy s dynamickými názvy listů pomocí Aspose.Cells.* + +--- + +## Krok 1: Nastavení projektu a přidání Aspose.Cells + +### Proč je to důležité +Než se spustí jakýkoli kód, kompilátor musí vědět, kde se nacházejí třídy `Workbook`, `Worksheet` a `SmartMarkerProcessor`. Přidání NuGet balíčku zajistí, že máte nejnovější, plně vybavené API. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Tip:** Pokud používáte Visual Studio, klikněte pravým tlačítkem na projekt → *Manage NuGet Packages* → vyhledejte *Aspose.Cells* a nainstalujte nejnovější stabilní verzi. + +--- + +## Krok 2: Vytvoření nového sešitu a hlavního listu + +### Co děláme +Začneme čistým sešitem, pak získáme první list (index 0). Tento list bude fungovat jako **hlavní list**, který obsahuje token smart‑markeru. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +Třída `Workbook` je kontejner pro všechny listy. Ve výchozím nastavení vytvoří jeden list nazvaný *Sheet1*; přejmenování na „Master“ usnadní orientaci v konečném souboru. + +--- + +## Krok 3: Vložení tokenu smart‑markeru pro názvy podrobných listů + +### Proč použít smart‑marker? +Smart markery umožňují Aspose.Cells nahradit placeholdery daty za běhu. Token `«DetailSheetNewName:Dept»` říká procesoru: *„Když toto uvidíš, vytvoř nový podrobný list pro každý řádek ve sloupci `Dept`.“* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Token můžete umístit kamkoli; pro přehlednost jsme zvolili **A1**. Když procesor běží, nahradí token skutečným názvem oddělení a vygeneruje odpovídající list. + +--- + +## Krok 4: Příprava datového zdroje + +### Jak data řídí tvorbu listů +Aspose.Cells pracuje s libovolným datovým zdrojem `IEnumerable`. Pro tuto ukázku použijeme `DataTable` s jediným sloupcem nazvaným `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Co když máte více sloupců?** +> Procesor bude ignorovat nadbytečné sloupce, pokud je nebudete odkazovat v dalších smart markerech. To udržuje generování listů lehkým. + +--- + +## Krok 5: Konfigurace SmartMarkerProcessoru a pojmenovacího vzoru + +### Dynamické názvy listů v akci +Chceme, aby každý nový list byl pojmenován `Dept_Finance`, `Dept_HR` atd. Volba `DetailSheetNewName` nám umožňuje definovat vzor, kde `{0}` je nahrazen skutečným názvem oddělení. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Pokud se oddělení objeví dvakrát, Aspose automaticky přidá číselný přípon (např. `Dept_Finance_1`), aby nedošlo ke konfliktu názvů listů. + +--- + +## Krok 6: Zpracování hlavního listu a vytvoření podrobných listů + +### Jádro **process master sheet** +Volání `Process` provede těžkou práci: prohledá hlavní list po smart markerech, vytvoří nové listy, zkopíruje rozvržení hlavního listu a naplní je daty z řádku. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Po tomto volání obsahuje sešit jeden hlavní list a čtyři podrobné listy — každý pojmenovaný podle našeho vzoru a naplněný názvem oddělení v buňce A1. + +--- + +## Krok 7: Uložení sešitu jako XLSX + +### Poslední krok — **save workbook as XLSX** +Nyní, když listy existují, zapíšeme soubor na disk. Můžete zvolit libovolnou cestu, jen se ujistěte, že adresář existuje. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Otevření souboru `DetailSheets.xlsx` ukáže: + +| Název listu | Obsah buňky A1 | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (nezměněno) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Hraniční případ:** Pokud cílová složka neexistuje, `Save` vyhodí `DirectoryNotFoundException`. Zabalte volání do try‑catch bloku nebo složku vytvořte předem. + +--- + +## Kompletní funkční příklad + +Celý program můžete zkopírovat a vložit do konzolové aplikace: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Spusťte program, otevřete vzniklý soubor a uvidíte přesně rozložení popsané výše. Žádné ruční kopírování, žádný COM interop — jen čistý C# kód, který **generuje Excel listy** s **dynamickými názvy listů**. + +--- + +## Často kladené otázky a úskalí + +| Otázka | Odpověď | +|----------|--------| +| *Mohu použít DataSet s více tabulkami?* | Ano. Předávejte příslušnou tabulku metodě `Process` nebo použijte slovník tabulek. | +| *Co když potřebuji na hlavním listu více než jeden smart‑marker?* | Umístěte další tokeny jako `«DetailSheetNewName:Region»` a případně nakonfigurujte samostatný pojmenovací vzor. | +| *Zůstává hlavní list v konečném souboru?* | Ve výchozím nastavení ano. Pokud jej nepotřebujete, po zpracování zavolejte `workbook.Worksheets.RemoveAt(0)`. | +| *Jak Aspose zpracovává velmi velké datové sady?* | Data streamuje efektivně, ale můžete zvýšit `MemorySetting`, pokud narazíte na limity paměti. | +| *Mohu exportovat do CSV místo XLSX?* | Samozřejmě — použijte `workbook.Save("file.csv", SaveFormat.Csv)`. Logika vytváření listů zůstává stejná. | + +--- + +## Další kroky + +Nyní, když umíte **jak dynamicky vytvářet listy**, můžete zkusit: + +- **Uložit sešit jako XLSX** s ochranou heslem (`workbook.Protect("pwd")`). +- **Generovat Excel listy** z JSON nebo XML zdrojů pomocí `JsonDataSource` nebo `XmlDataSource`. +- **Aplikovat styly** na každý vytvořený list (písma, barvy) pomocí objektů `Style`. +- **Sloučit buňky** nebo automaticky vložit vzorce pro souhrnné reporty. + +Každé z těchto rozšíření staví na stejném konceptu **process master sheet**, takže přechod bude plynulý. + +--- + +## Závěr + +Prošli jsme celým procesem: od inicializace sešitu, vložení smart‑markeru, konfigurace **dynamických názvů listů**, zpracování hlavního listu k **vytvoření Excel listů** a nakonec **uložení sešitu jako XLSX**. Příklad je kompletní, spustitelný a ukazuje osvědčené postupy jak pro výkon, tak pro udržovatelnost. + +Vyzkoušejte to, upravte pojmenovací vzor, naplňte jej reálnými firemními daty a sledujte, jak vaše automatizace Excelu nabírá na obrátkách. Pokud narazíte na problémy, zanechte komentář níže — šťastné kódová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/dutch/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/dutch/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..ee42f925da --- /dev/null +++ b/cells/dutch/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Hoe een werkmap te berekenen in C# met Aspose.Cells – leer een Excel-werkmap + te maken, Excel-cellen te vullen, Excel-formules te berekenen en de sorteerfunctie + te gebruiken. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: nl +og_description: Hoe je snel een werkmap in C# berekent. Deze tutorial laat zien hoe + je een Excel-werkmap maakt, Excel-cellen vult, Excel-formules berekent en de sorteerfunctie + gebruikt. +og_title: Hoe een werkmap te berekenen in C# – Complete sorteerhandleiding +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Hoe een werkmap te berekenen in C# – Sorteren & Formulegids +url: /nl/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe een Werkmap te Berekenen in C# – Sort & Formula Gids + +Heb je je ooit afgevraagd **hoe je een werkmap berekent** waarden on‑the‑fly zonder Excel te openen? Je bent niet de enige. In veel automatiseringsscenario's moet je een Excel‑bestand aanmaken, enkele getallen invoeren, ze sorteren en de resultaten terughalen in je .NET‑app—allemaal programmatically. + +In deze gids lopen we precies dat stap voor stap door: we zullen **create excel workbook**, **populate excel cells**, een **SORT**‑formule toevoegen, en uiteindelijk **calculate excel formulas** zodat je de gesorteerde array direct vanuit C# kunt lezen. Aan het einde heb je een uitvoerbare snippet die je in elk project kunt plaatsen dat Aspose.Cells (of een vergelijkbare bibliotheek) referereert. + +## Vereisten + +- .NET 6+ (de code werkt ook op .NET Framework 4.7.2) +- Aspose.Cells voor .NET (gratis proef‑NuGet‑pakket `Aspose.Cells`) +- Een basisbegrip van C#‑syntaxis +- Geen geïnstalleerde kopie van Microsoft Excel nodig; de bibliotheek doet het zware werk voor je + +Als je hiermee vertrouwd bent, laten we erin duiken. + +## Hoe een Werkmap te Berekenen – Het Initialiseren van de Werkmap + +Het allereerste wat je moet doen is een nieuw workbook‑object aanmaken. Beschouw het als het openen van een gloednieuw Excel‑bestand dat volledig leeg is. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Waarom dit belangrijk is:** De `Workbook`‑klasse is het toegangspunt voor elke bewerking—zonder deze kun je geen bladen, cellen of formules toevoegen. Het correct initialiseren zorgt ervoor dat je met een schone lei werkt. + +## Maak een Excel Workbook en Toegang tot Werkblad + +Nu het workbook bestaat, moeten we ervoor zorgen dat we naar het juiste werkblad wijzen. De meeste bibliotheken gebruiken standaard één blad met de naam “Sheet1”, maar je kunt het hernoemen of meer toevoegen indien gewenst. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Pro tip:** Het vroeg benoemen van bladen helpt wanneer je later naar ze verwijst in formules (`'Data'!A1:A10`). Het maakt ook debuggen makkelijker. + +## Vul Excel Cell​en met Gegevens + +Vervolgens gaan we **populate excel cells** met de getallen die we willen sorteren. Het voorbeeld gebruikt slechts twee cellen, maar je kunt het bereik uitbreiden tot tientallen rijen. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Waarom we `PutValue` gebruiken** – Het detecteert automatisch het gegevenstype (int, double, string, etc.) en slaat het op de juiste manier op, waardoor je handmatig type‑casting bespaart. + +## Pas de SORT‑functie toe via Formule + +De `SORT`‑functie van Excel doet precies wat de naam suggereert: hij retourneert een gesorteerde array zonder de oorspronkelijke gegevens te wijzigen. We plaatsen die formule in cel `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Opmerking over randgeval:** `SORT` retourneert een **array**‑resultaat. In oudere Excel‑versies (pre‑Office 365) zou dit Ctrl+Shift+Enter vereisen. Met Aspose.Cells krijg je de array automatisch wanneer je het workbook berekent. + +## Bereken Excel Formules om Resultaten te Krijgen + +Op dit punt weet het workbook alleen *wat* te berekenen, niet *dat* het dat moet doen. Het aanroepen van `CalculateFormula` activeert de engine om elke formule te evalueren, inclusief onze `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Verwachte console‑output** + +``` +Sorted array: {2, 5} +``` + +> **Wat is er net gebeurd?** +> 1. Het workbook heeft een interne berekeningsengine aangemaakt. +> 2. De `SORT`‑formule onderzocht het bereik `A1:A2`. +> 3. De engine produceerde een nieuwe array, die we haalden op uit `B1`. + +Als je de waarden in `A1` en `A2` wijzigt (of het bereik uitbreidt) en `CalculateFormula` opnieuw uitvoert, wordt de output automatisch bijgewerkt—geen extra code nodig. + +## Gebruik de Sort‑functie op Grotere Datasets (Optioneel) + +De meeste real‑world scenario's omvatten meer dan twee rijen. Hier is een snelle aanpassing die werkt voor elk aantal items: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Waarom je dit nodig zou kunnen hebben:** Het sorteren van grote bereiken stelt je in staat om ranglijsten te genereren, financiële gegevens te rangschikken, of simpelweg geïmporteerde CSV‑bestanden op te schonen vóór verdere verwerking. + +## Veelvoorkomende Valkuilen & Hoe ze te Vermijden + +| Probleem | Waarom het gebeurt | Oplossing | +|----------|--------------------|-----------| +| **`#VALUE!` in B1** | De `SORT`‑formule verwijst naar een leeg of niet‑numeriek bereik. | Zorg ervoor dat elke cel in het bronbereik een getal of tekst bevat die gesorteerd kan worden. | +| **Array truncation** | Proberen een array uit één cel te lezen zonder casting. | Cast `worksheet.Cells["B1"].Value` naar `object[]` (of het juiste type). | +| **Performance slowdown** | Het opnieuw berekenen van enorme workbooks na elke kleine wijziging. | Roep `CalculateFormula` alleen aan nadat je klaar bent met het wijzigen van het blad, of gebruik `CalculateFormulaOptions` om de scope te beperken. | + +## Volledig Werkend Voorbeeld (Klaar om te Kopiëren‑Plakken) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Result screenshot** +> ![hoe je een werkmapresultaat in Excel berekent](https://example.com/images/sorted-result.png "hoe je een werkmapresultaat in Excel berekent") + +De afbeelding hierboven toont het workbook na berekening—cel **B1** bevat de gesorteerde array `{2, 5}`. + +## Conclusie + +We hebben zojuist **how to calculate workbook** waarden programmatisch behandeld: een Excel workbook maken, Excel cellen vullen, een `SORT`‑formule insluiten, en uiteindelijk **calculate Excel formulas** om de gesorteerde data te extraheren. De aanpak werkt voor kleine voorbeelden met twee cellen en schaalt elegant naar grotere datasets. + +Wat is het volgende? Probeer dit te combineren met andere functies zoals `FILTER`, `UNIQUE`, of zelfs aangepaste VBA‑achtige logica via `WorksheetFunction`. Je kunt het workbook ook naar schijf schrijven (`workbook.Save("Sorted.xlsx")`) en openen in Excel voor visuele verificatie. + +Voel je vrij om te experimenteren—vervang de getallen, wijzig het bereik, of koppel meerdere formules aan elkaar. Automatisering draait om snel itereren, en nu heb je een solide basis om op voort te bouwen. + +Veel plezier met coderen, en moge je workbooks altijd precies berekenen zoals je verwacht! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/dutch/net/conversion-and-rendering/_index.md index 3fcc34cf0b..2b40614c2d 100644 --- a/cells/dutch/net/conversion-and-rendering/_index.md +++ b/cells/dutch/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Leer hoe je Excel naadloos naar PDF kunt converteren met Aspose.Cells in .NET. V Leer hoe je een Excel-werkblad naar SVG converteert met Aspose.Cells voor .NET met deze stapsgewijze handleiding. Perfect voor .NET-ontwikkelaars die Excel naar SVG willen renderen. ### [Excel naar MHTML converteren in .NET](./converting-excel-to-mhtml/) Leer hoe u Excel-bestanden efficiënt kunt converteren naar het MHTML-formaat in .NET met Aspose.Cells. Zo verbetert u uw rapportage- en gegevensdelingsmogelijkheden. +### [Afbeelding maken vanuit Excel – Export Pivot naar PNG in C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Leer hoe u een afbeelding van een draaitabel in Excel kunt exporteren naar PNG met Aspose.Cells in C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/dutch/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..e5cbdd087d --- /dev/null +++ b/cells/dutch/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Maak een afbeelding van Excel in C# met Aspose.Cells. Leer hoe je Excel + naar afbeelding converteert, een draaitabel exporteert en de afbeelding opslaat + als PNG met een volledig, uitvoerbaar voorbeeld. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: nl +og_description: Maak snel een afbeelding van Excel in C#. Deze gids laat zien hoe + je Excel naar afbeelding converteert, een draaitabel exporteert en de afbeelding + opslaat als PNG met duidelijke code. +og_title: Afbeelding maken vanuit Excel – Pivot exporteren naar PNG in C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Afbeelding maken vanuit Excel – Exporteer draaitabel naar PNG in C# +url: /nl/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Maak afbeelding van Excel – Export pivot naar PNG in C# + +Heb je ooit **een afbeelding van Excel moeten maken** maar wist je niet welke API je moet gebruiken? Je bent niet de enige—veel ontwikkelaars lopen tegen dit obstakel aan wanneer ze proberen een live‑pivot‑tabel om te zetten naar een deelbare PNG. + +In deze tutorial lopen we een complete, kant‑klaar oplossing door die **Excel naar afbeelding converteert**, laat **hoe je een pivot exporteert**, en uitlegt **hoe je een afbeelding opslaat** als een PNG‑bestand. Aan het einde heb je één methode die de hele taak uitvoert, plus tips voor randgevallen waar je tegenaan kunt lopen. + +## Wat je nodig hebt + +- **Aspose.Cells for .NET** (het NuGet‑pakket `Aspose.Cells`). Het is een commerciële bibliotheek maar biedt een gratis evaluatiemodus—perfect voor testen. +- .NET 6+ (of .NET Framework 4.6+). +- Een eenvoudige Excel‑werkmap (`Pivot.xlsx`) die minstens één pivot‑tabel bevat. +- Elke IDE die je wilt—Visual Studio, Rider, of zelfs VS Code werkt. + +Dat is alles. Geen extra DLL's, geen COM‑interop, en geen rommelige Excel‑automatiseringstrucs. + +Laten we nu in de code duiken. + +## Stap 1: Laad de werkmap – Maak afbeelding van Excel + +Het eerste wat we doen is het Excel‑bestand openen dat de pivot‑tabel bevat. Deze stap is cruciaal omdat de renderer werkt tegen een `Workbook`‑object in het geheugen. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Waarom dit belangrijk is:* Het laden van de werkmap geeft ons toegang tot de **pivot** en alle opmaak die gerespecteerd zal worden wanneer we later **Excel naar afbeelding converteren**. Als je dit overslaat, heeft de renderer niets om mee te werken. + +## Stap 2: Configureer exportopties – Converteer Excel naar afbeelding + +Vervolgens vertellen we Aspose hoe we de uiteindelijke afbeelding willen hebben. De `ImageOrPrintOptions`‑klasse laat ons PNG kiezen, DPI instellen, en zelfs de achtergrondkleur regelen. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Waarom dit belangrijk is:* Door een hoge DPI in te stellen zorgen we ervoor dat de **export van Excel naar PNG** er scherp uitziet, zelfs wanneer de pivot veel rijen bevat. Je kunt de DPI verlagen als de bestandsgrootte een zorg is. + +## Stap 3: Render het werkblad – Hoe een pivot exporteren + +Nu volgt het hart van het proces: het werkblad (met zijn pivot) omzetten naar een afbeelding. De `WorksheetRender`‑klasse doet het zware werk. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Waarom dit belangrijk is:* Hier **exporteer je de pivot** naar een visueel formaat. De renderer respecteert alle pivot‑opmaak, slicers en voorwaardelijke stijlen, zodat de PNG er precies uitziet zoals je in Excel ziet. + +## Stap 4: Alles samenvoegen – Hoe een afbeelding opslaan + +Tot slot bieden we één openbare methode die alle onderdelen samenvoegt. Dit is de methode die je vanuit je app, service of console‑tool aanroept. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Volledig werkend voorbeeld + +Maak een nieuw console‑project aan, voeg het NuGet‑pakket `Aspose.Cells` toe, en plaats vervolgens het volgende `Program.cs` erin: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Verwacht resultaat:** Na het uitvoeren van het programma verschijnt `PivotImage.png` in de map die je hebt opgegeven, met een pixel‑perfecte weergave van de pivot‑tabel. + +![Voorbeeld van afbeelding maken vanuit Excel](https://example.com/placeholder.png "Voorbeeld van afbeelding maken vanuit Excel") + +*Alt‑tekst:* voorbeeld van afbeelding maken vanuit Excel, toont geëxporteerde pivot‑tabel als PNG. + +## Veelgestelde vragen & randgevallen + +### Wat als mijn werkmap meerdere werkbladen heeft? + +De helper haalt momenteel `Worksheets[0]` op. Om een specifiek blad te targeten, geef je de bladnaam door: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### De PNG is onscherp—hoe los ik dat op? + +Verhoog `HorizontalResolution` en `VerticalResolution` in `GetImageOptions`. Waarden van 300–600 DPI leveren meestal scherpe resultaten op. Houd er rekening mee dat een hogere DPI een grotere bestandsgrootte betekent. + +### Mijn pivot strekt zich over meer dan één pagina—kan ik alle pagina's exporteren? + +Ja. Loop over `renderer.PageCount` en roep `ToImage(pageIndex, ...)` aan voor elke pagina, of stel `OnePagePerSheet = false` in om afzonderlijke afbeeldingen per pagina te krijgen. + +### Ik heb alleen een deel van het blad nodig (bijv. een specifiek bereik)? + +Gebruik `ImageOrPrintOptions` om `PrintArea` in te stellen: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Op die manier **converteer je Excel naar afbeelding** alleen voor het gebied dat je nodig hebt. + +### Werkt dit met .xls (Excel 97‑2003) bestanden? + +Absoluut. Aspose.Cells abstraheert het bestandsformaat, dus je kunt `.xls`, `.xlsx`, `.xlsm` of zelfs `.ods` gebruiken en nog steeds **excel naar png exporteren**. + +## Pro‑tips & valkuilen + +- **Licentie is belangrijk**: In evaluatiemodus voegt Aspose een watermerk toe. Implementeer een juiste licentie voor productie. +- **Geheugengebruik**: Het renderen van grote werkmappen kan veel geheugen verbruiken. Ruim het `Workbook`‑object direct op of plaats het in een `using`‑blok. +- **Thread‑veiligheid**: `Workbook` is niet thread‑veilig. Maak per verzoek een nieuwe instantie aan als je in een webservice zit. +- **Flexibiliteit beeldformaat**: Als je JPEG of BMP nodig hebt, wijzig dan simpelweg `ImageFormat` in `GetImageOptions`. + +## Conclusie + +Je hebt nu een solide, end‑to‑end recept om **een afbeelding van Excel te maken**, specifiek om **pivot‑gegevens te exporteren** als een PNG van hoge kwaliteit. Het fragment hierboven toont de volledige, uitvoerbare code, legt uit **hoe je een afbeelding opslaat**, en behandelt variaties zoals meerdere bladen of aangepaste afdrukgebieden. + +Volgende stappen? Probeer deze exporter te koppelen aan een e‑mailservice om de PNG automatisch te verzenden, of experimenteer met `ImageOrPrintOptions` om PDF’s in plaats van PNG’s te genereren. Hetzelfde patroon werkt voor **excel naar afbeelding converteren** taken in veel formaten. + +Heb je meer vragen? Laat een reactie achter, en veel plezier met coderen! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..66b825b858 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 @@ -44,26 +44,40 @@ Aspose.Cells voor .NET vereenvoudigt documenttransformaties, waardoor ontwikkela ## Zelfstudies voor het converteren van Excel-bestanden naar andere formaten ### [CSV programmatisch naar JSON converteren in .NET](./converting-csv-to-json/) Leer hoe je CSV naar JSON converteert in .NET met Aspose.Cells. Stapsgewijze handleiding voor datatransformatie met eenvoudig te volgen codevoorbeelden. + ### [Excel-bestand programmatisch naar DOCX converteren in .NET](./converting-excel-file-to-docx/) Leer in deze stapsgewijze handleiding hoe u Excel-bestanden programmatisch naar DOCX kunt converteren met Aspose.Cells voor .NET. Perfect voor het genereren van rapporten en het delen van gegevens. + +### [Excel opslaan als Docx met C# – Complete stapsgewijze handleiding](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Leer hoe u Excel-bestanden opslaat als Docx met C# via een volledige stap‑voor‑stap handleiding. + ### [Excel-bestand converteren naar HTML met tooltips in .NET](./converting-excel-file-to-html-with-tooltip/) Converteer Excel naar HTML met tooltips met Aspose.Cells voor .NET in een paar eenvoudige stappen. Verbeter uw webapps moeiteloos met interactieve Excel-gegevens. + ### [Excel-bestand programmatisch naar Markdown converteren in .NET](./converting-excel-file-to-markdown/) Leer hoe u Excel-bestanden naar Markdown-formaat converteert met Aspose.Cells voor .NET in deze gedetailleerde, stapsgewijze handleiding. Verhoog uw productiviteit met eenvoudige bestandsconversie. + ### [Excel-bestand converteren naar PDF (A-1a) programmatisch in .NET](./converting-excel-file-to-pdf-a-1a/) Leer hoe u Excel-bestanden naar PDF/A-1a kunt converteren voor archivering met Aspose.Cells voor .NET. Stapsgewijze handleiding met codevoorbeelden inbegrepen. + ### [JSON programmatisch naar CSV converteren in .NET](./converting-json-to-csv/) 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. + ### [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/) Leer in deze gedetailleerde tutorial hoe u Numbers-spreadsheets kunt lezen en ze naar PDF kunt converteren met Aspose.Cells voor .NET. + ### [Werkmap opslaan in Strict Open XML Spreadsheet-indeling in .NET](./saving-workbook-to-strict-open-xml-spreadsheet-format/) Leer in deze gedetailleerde tutorial hoe u een werkmap opslaat in de Strict Open XML Spreadsheet-indeling met behulp van Aspose.Cells voor .NET. + ### [De voortgang van documentconversie programmatisch volgen in .NET](./tracking-document-conversion-progress/) Beschrijving: Leer in deze gedetailleerde tutorial hoe u de voortgang van documentconversie programmatisch kunt volgen met Aspose.Cells voor .NET. + ### [Documentconversievoortgang voor TIFF programmatisch volgen in .NET](./tracking-document-conversion-progress-for-tiff/) Leer hoe u de voortgang van TIFF-conversie programmatisch kunt volgen met Aspose.Cells voor .NET met onze stapsgewijze handleiding. Verbeter uw vaardigheden in documentbeheer. diff --git a/cells/dutch/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/dutch/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..e48e8cbd4b --- /dev/null +++ b/cells/dutch/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Excel opslaan als Docx in C# — leer hoe je Excel naar Word converteert, + grafieken insluit en een Excel‑werkmap laadt in C# met Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: nl +og_description: Sla Excel op als Docx in C# uitgelegd in de eerste zin. Volg deze + tutorial om Excel naar Word te converteren, grafieken in te sluiten en een Excel-werkmap + te laden in C#. +og_title: Excel opslaan als Docx met C# – Complete gids +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Excel opslaan als Docx met C# – Complete stap‑voor‑stapgids +url: /nl/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel opslaan als Docx met C# – Complete stap‑voor‑stap handleiding + +Heb je ooit moeten **Excel opslaan als Docx** maar wist je niet waar te beginnen? Je bent niet de enige—veel ontwikkelaars lopen tegen dezelfde muur aan wanneer ze *Excel naar Word willen converteren* terwijl ze de grafieken intact houden. In deze tutorial lopen we de exacte code door die je nodig hebt, leggen we uit waarom elke regel belangrijk is, en laten we je zien hoe je Excel‑grafieken kunt insluiten zonder kwaliteitsverlies. + +We zullen ook een paar extra tips toevoegen over **load Excel workbook C#** scenario's, zodat je aan het einde comfortabel Excel naar Docx kunt converteren in elk .NET‑project. Geen vage verwijzingen, alleen een concreet, uitvoerbaar voorbeeld dat je meteen kunt copy‑paste. + +--- + +## Wat deze gids behandelt + +- Het laden van een bestaand `.xlsx`‑bestand met Aspose.Cells (of een andere compatibele bibliotheek). +- Optionele manipulatie van werkbladen of grafieken vóór conversie. +- Het opslaan van het werkboek als een `.docx`‑bestand terwijl ingesloten grafieken behouden blijven. +- Het verifiëren van de output en het afhandelen van veelvoorkomende randgevallen zoals grote werkboeken of niet‑ondersteunde grafiektype­n. + +Als je je afvraagt **waarom je Excel naar Docx zou willen converteren**, denk dan aan rapporten die je moet sturen naar niet‑technische belanghebbenden—Word‑documenten worden universeel geaccepteerd, en ze behouden de visuele nauwkeurigheid van je grafieken. Laten we beginnen. + +--- + +## Vereisten – Load Excel Workbook C# + +Voordat we code schrijven, zorg dat je het volgende hebt: + +| Requirement | Reason | +|-------------|--------| +| **.NET 6.0 or later** | Moderne runtime, betere prestaties, en volledige ondersteuning voor Aspose.Cells. | +| **Aspose.Cells for .NET** (NuGet package `Aspose.Cells`) | Biedt de `Workbook`‑klasse die wordt gebruikt om Excel te lezen en naar DOCX te exporteren. | +| **Visual Studio 2022** (or any IDE you prefer) | Handig voor debugging en IntelliSense. | +| **An Excel file with charts** (`AdvancedCharts.xlsx`) | Om de *embed excel charts*‑functie in actie te zien. | + +You can install the library via the Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** Als je in een CI/CD‑pipeline werkt, voeg dan het pakket toe aan je `*.csproj` zodat restores automatisch plaatsvinden. + +--- + +## Stap 1 – Laad het Excel‑werkboek (Save Excel as Docx begint hier) + +Het eerste wat we doen is het bron‑werkboek laden. Hier komt de **load excel workbook c#**‑uitdrukking van pas. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Waarom dit belangrijk is:** Het laden van het bestand geeft je toegang tot elk werkblad, elke grafiek en elke stijl. Zonder deze stap is er niets om te converteren, en kan de API je ingesloten afbeeldingen niet behouden. + +--- + +## Stap 2 – (Optioneel) Pas het werkboek aan vóór conversie + +Je wilt misschien een blad hernoemen, een kolom verbergen, of zelfs de titel van een grafiek wijzigen. Deze stap is optioneel, maar laat zien hoe flexibel de conversie kan zijn. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Randgeval:** Sommige oudere grafiektype­n (bijv. Radar) worden mogelijk niet perfect weergegeven in Word. Test je specifieke grafieken na de conversie. + +--- + +## Stap 3 – Sla het werkboek op als Word‑document (De kern “Save Excel as Docx” actie) + +Nu komt het moment van de waarheid: we **slaan Excel op als Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Wanneer dit wordt uitgevoerd, schrijft Aspose.Cells elk werkblad als een tabel in het Word‑bestand en voegt elke grafiek in als een afbeelding met hoge resolutie. Het resultaat is een volledig bewerkbaar `.docx` dat er precies uitziet als de oorspronkelijke Excel‑weergave. + +> **Waarom kiezen voor DOCX in plaats van PDF?** DOCX laat ontvangers later tekst bewerken of grafieken vervangen, terwijl PDF een statisch momentopname is. + +--- + +## Stap 4 – Verifieer de output en los veelvoorkomende problemen op + +After the conversion finishes, open `ChartsInWord.docx` in Microsoft Word: + +1. **Controleer of elk werkblad als een aparte sectie verschijnt** – je zou tabellen moeten zien die je Excel‑gegevens weerspiegelen. +2. **Bevestig dat grafieken zijn ingesloten** – ze moeten selecteerbare afbeeldingen zijn, geen gebroken placeholders. +3. **Als een grafiek ontbreekt**, controleer dan of het grafiektype wordt ondersteund door Aspose.Cells (zie de [official compatibility list](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tip:** Voor grote werkboeken, overweeg het verhogen van de `MemorySetting` van Aspose.Cells om `OutOfMemoryException` te voorkomen: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Volledig werkend voorbeeld (Klaar om te copy‑pasten) + +Hieronder staat het volledige programma, klaar om te compileren. Vervang `YOUR_DIRECTORY` door het daadwerkelijke mappad op jouw machine. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Verwacht resultaat:** Een Word‑document (`ChartsInWord.docx`) dat alle werkbladen bevat als tabellen en elke grafiek als een ingesloten afbeelding met hoge resolutie. Open het in Word, en je ziet de exacte visuele lay-out die je in Excel had. + +--- + +## Veelgestelde vragen (FAQ) + +**Q: Kan ik meerdere Excel‑bestanden in een lus converteren?** +A: Absoluut. Plaats de conversielogica in een `foreach (var file in Directory.GetFiles(...))`‑lus en hergebruik hetzelfde `Workbook`‑instance‑patroon. + +**Q: Werkt dit ook met `.xls`‑bestanden?** +A: Ja—Aspose.Cells ondersteunt legacy‑formaten. Verander gewoon de bron‑extensie; dezelfde `SaveFormat.Docx`‑aanroep geldt. + +**Q: Wat als ik formules moet behouden bij het converteren?** +A: Word ondersteunt Excel‑formules niet natively. De conversie zet formules om in hun berekende waarden. Als je live‑berekeningen nodig hebt, overweeg dan om het werkboek als OLE‑object in te sluiten. + +**Q: Is er een manier om de afbeeldingsresolutie van grafieken te regelen?** +A: Gebruik `ImageOrPrintOptions` vóór het opslaan: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Excel‑grafieken direct in Word insluiten (Voorbij Save Excel as Docx) + +Als je de grafiek bewerkbaar wilt houden in Word, kun je het volledige Excel‑blad insluiten als een OLE‑object: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Deze techniek *embed excel charts* als live‑objecten, waardoor eindgebruikers kunnen dubbelklikken om ze direct in Excel te bewerken vanuit Word. Het is een handige alternatieve wanneer je interactiviteit nodig hebt. + +--- + +## Conclusie + +Je hebt nu een solide, end‑to‑end‑oplossing voor **save Excel as docx** met C#. De tutorial behandelde het laden van het werkboek, optionele aanpassingen, de daadwerkelijke opslaan‑operatie, verificatiestappen, en zelfs een snelle blik op het insluiten van grafieken voor bewerkbare scenario's. Door de bovenstaande code te volgen kun je **Excel naar Word converteren**, elke grafiek behouden, en grote bestanden soepel verwerken. + +Klaar voor de volgende uitdaging? Probeer een batch‑conversie te automatiseren, integreer deze logica in een ASP.NET Core‑API, of verken **convert Excel to docx** voor multi‑sheet‑dashboards. De vaardigheden die je net hebt opgedaan vormen een basis voor elk document‑automatiseringsproject. + +Heb je vragen of een lastig werkboek dat niet wil converteren? Laat een reactie achter, en we lossen het samen op. Veel programmeerplezier! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..c72a18dd7b 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 – aangepaste eigenschap toevoegen in C#](./how-to-save-xlsb-add-custom-property-in-c/) +Leer hoe u een aangepaste eigenschap toevoegt aan een XLSB-bestand met Aspose.Cells voor .NET in C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/dutch/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..90f0e6a07f --- /dev/null +++ b/cells/dutch/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: Leer hoe je xlsb‑bestanden opslaat in C# terwijl je een aangepaste eigenschap + zoals ProjectId toevoegt. Deze gids laat zien hoe je een Excel‑werkmap maakt, een + aangepaste eigenschap toevoegt en deze verifieert. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: nl +og_description: Ontdek hoe je xlsb‑bestanden opslaat en een aangepaste eigenschap + zoals ProjectId toevoegt met C#. Stapsgewijze handleiding met volledige code. +og_title: Hoe XLSB op te slaan – Aangepaste eigenschap toevoegen in C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Hoe XLSB opslaan – Aangepaste eigenschap toevoegen in C# +url: /nl/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe XLSB op te slaan – Aangepaste eigenschap toevoegen in C# + +Heb je je ooit afgevraagd **how to save xlsb** bestanden op te slaan terwijl je ook een stukje metadata erin verbergt? Misschien bouw je een rapportage‑engine die een verborgen ProjectId nodig heeft, of wil je gewoon werkbladen taggen voor downstream verwerking. **How to save xlsb** is geen rocket science, maar het combineren met een aangepaste eigenschap voegt een kleine wending toe die veel ontwikkelaars over het hoofd zien. + +In deze tutorial lopen we stap voor stap door het maken van een Excel‑werkmap, het toevoegen van een aangepaste eigenschap (ja, *add custom property*), het opslaan van het bestand als een **XLSB** binair werkboek, en uiteindelijk het opnieuw laden om te bewijzen dat de eigenschap behouden blijft. Onderweg behandelen we ook **how to add custom property** waarden zoals een ProjectId, zodat je met een herbruikbaar patroon voor toekomstige projecten weggaat. + +> **Pro tip:** Als je al de Aspose.Cells‑bibliotheek gebruikt (de code hieronder doet dat), krijg je native ondersteuning voor aangepaste eigenschappen zonder COM‑interop hoofdpijn. + +--- + +## Vereisten + +- .NET 6+ (of .NET Framework 4.6+). +- Aspose.Cells voor .NET – installeren via NuGet: `Install-Package Aspose.Cells`. +- Basis C#‑kennis – niets ingewikkelds, alleen een paar `using`‑statements. + +Dat is alles. Geen Office‑installatie, geen interop, alleen pure managed code. + +--- + +## Stap 1: Hoe XLSB op te slaan – Excel‑werkmap maken + +Het allereerste wat je moet doen is een nieuw workbook‑object maken. Beschouw het als het openen van een leeg Excel‑bestand dat alleen in het geheugen bestaat totdat je besluit het naar schijf te schrijven. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Waarom beginnen met een workbook? Omdat **create excel workbook** de basis is voor elke verdere manipulatie—of je nu later formules, grafieken of aangepaste eigenschappen toevoegt. De `Workbook`‑klasse abstraheert het hele bestand, terwijl `Worksheets` je toegang geven tot individuele tabbladen. + +--- + +## Stap 2: Aangepaste eigenschap toevoegen aan werkblad + +Nu komt het leuke gedeelte—**add custom property**. In Aspose.Cells kun je een eigenschap direct aan een werkblad (of aan het werkboek zelf) koppelen. Hier slaan we een numerieke ProjectId op die downstream services kunnen lezen zonder de zichtbare cellen aan te raken. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? Roep gewoon `CustomProperties.Add(name, value)` aan. De API verwerkt automatisch de onderliggende XML, zodat je je geen zorgen hoeft te maken over de low‑level details. Dit is de veiligste manier om metadata in te sluiten die niet zichtbaar is voor de eindgebruiker. + +--- + +## Stap 3: Werkboek opslaan als XLSB + +Met het werkboek klaar en de aangepaste eigenschap toegevoegd, is het tijd om **how to save xlsb**. Het XLSB‑formaat slaat gegevens op in een binaire representatie, die meestal kleiner en sneller te openen is dan het klassieke XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Opslaan als XLSB is zo simpel als `SaveFormat.Xlsb` doorgeven aan de `Save`‑methode. Als je je afvraagt of dit de aangepaste eigenschap verwijdert—wees gerust, Aspose.Cells behoudt zowel werkboek‑niveau als werkblad‑niveau eigenschappen in het binaire bestand. + +--- + +## Stap 4: De aangepaste eigenschap verifiëren + +Een goede gewoonte is het bestand opnieuw te laden en te bevestigen dat de eigenschap de round‑trip heeft overleefd. Dit toont ook **how to add custom property** later aan als je deze moet bijwerken. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Als de console `12345` afdrukt, heb je succesvol **how to save xlsb** *en* **add project id** in één keer uitgevoerd. De eigenschap zit in de interne metadata van het bestand, onzichtbaar voor de UI maar perfect leesbaar door code. + +--- + +## Aanvullende tips: Meerdere eigenschappen toevoegen & randgevallen + +### Meer dan één eigenschap toevoegen + +Je kunt zoveel eigenschappen stapelen als je wilt: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Een bestaande eigenschap bijwerken + +Als een eigenschap al bestaat, wijs dan gewoon een nieuwe waarde toe: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Ontbrekende eigenschappen afhandelen + +Proberen een niet‑bestaande eigenschap te lezen veroorzaakt een `KeyNotFoundException`. Bescherm hiertegen: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Compatibiliteit tussen versies + +XLSB werkt in Excel 2007 + en in de webversie van Excel. Oudere Office‑versies (< 2007) kunnen echter geen XLSB‑bestanden openen. Als je bredere compatibiliteit nodig hebt, overweeg dan een tweede kopie op te slaan als XLSX. + +### Prestatie‑overwegingen + +Binaire XLSB‑bestanden zijn doorgaans 30‑50 % kleiner dan XLSX, en ze laden sneller. Voor grote datasets (honderdduizenden rijen) kan de snelheidswinst merkbaar zijn. + +--- + +## Volledig werkend voorbeeld + +Hieronder staat het volledige programma dat je kunt kopiëren‑en‑plakken in een console‑project. Het bevat alle stappen, foutafhandeling en commentaren die je nodig hebt om direct aan de slag te gaan. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Verwachte output** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Als je het bovenstaande ziet, heb je **how to save xlsb**, **add custom property**, en **add project id** onder de knie—alles in een net, herbruikbaar fragment. + +--- + +## Veelgestelde vragen + +**Q: Werkt dit met .NET Core?** +A: Absoluut. Aspose.Cells is .NET Standard‑compatibel, dus dezelfde code draait op .NET 5/6/7 en op .NET Framework. + +**Q: Kan ik een aangepaste eigenschap toevoegen aan het hele werkboek in plaats van een enkel blad?** +A: Ja. Gebruik `workbook.CustomProperties.Add("Key", value);` om het op werkboek‑niveau toe te voegen. + +**Q: Wat als ik een lange string (bijv. JSON) als eigenschap moet opslaan?** +A: De API accepteert strings van elke lengte, maar houd er rekening mee dat extreem grote blobs de bestandsgrootte kunnen vergroten. Voor enorme data, overweeg een verborgen blad. + +**Q: Is de aangepaste eigenschap zichtbaar in de UI van Excel?** +A: Niet direct. Gebruikers kunnen het bekijken via **Bestand → Info → Eigenschappen → Geavanceerde eigenschappen → Aangepast**, maar het verschijnt niet in het raster. + +--- + +## Conclusie + +We hebben **how to save xlsb** bestanden in C# behandeld terwijl we **add custom property** zoals een ProjectId toevoegen. Door het stap‑voor‑stap patroon te volgen—**create excel workbook**, **add custom property**, **save as XLSB**, en **verify**—heb je nu een solide, citeerbare referentie die zowel voor zoekmachine‑crawlers als AI‑assistenten werkt. + +Vervolgens kun je verkennen: + +- **How to add custom property** aan meerdere werkbladen in een lus. +- Gegevens exporteren vanuit een DataTable naar het werkboek vóór het opslaan. +- Het XLSB‑bestand versleutelen voor extra beveiliging. + +Voel je vrij om te experimenteren, de eigenschapsnamen aan te passen, of het binaire formaat te vervangen door XLSX als je bredere compatibiliteit nodig hebt. Heb je een lastig scenario? Laat een reactie achter, en we lossen het samen op. Veel plezier met coderen! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/dutch/net/excel-autofilter-validation/_index.md index 02ed685e5a..af8faeb2e5 100644 --- a/cells/dutch/net/excel-autofilter-validation/_index.md +++ b/cells/dutch/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Onze tutorial over [Decimale gegevensvalidatie in Excel](./decimal-data-validati Leer hoe u moeiteloos Excel-rijen kunt filteren met Aspose.Cells in .NET met deze uitgebreide stapsgewijze handleiding. ### [Decimale gegevensvalidatie in Excel](./decimal-data-validation-in-excel/) Ontdek hoe u decimale gegevensvalidatie in Excel implementeert met Aspose.Cells voor .NET met onze gebruiksvriendelijke handleiding. Verbeter moeiteloos de gegevensintegriteit. +### [AutoFilter verwijderen uit Excel – Complete C#-gids](./remove-autofilter-from-excel-complete-c-guide/) +Leer hoe u met Aspose.Cells in .NET een AutoFilter uit een Excel-werkblad verwijdert. Volledige C#-stappenplan. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/dutch/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..9ab2d4ccd5 --- /dev/null +++ b/cells/dutch/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,227 @@ +--- +category: general +date: 2026-03-21 +description: Leer hoe je AutoFilter uit Excel kunt verwijderen met C#. Deze stapsgewijze + gids laat ook zien hoe je AutoFilter verwijdert, AutoFilter in Excel uitschakelt + en het filter van een Excel‑tabel wist. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: nl +og_description: Verwijder AutoFilter uit Excel met C#. Deze tutorial laat zien hoe + je AutoFilter verwijdert, AutoFilter in Excel uitschakelt en het filter van een + Excel‑tabel wist in slechts een paar regels code. +og_title: AutoFilter uit Excel verwijderen – Complete C#‑gids +tags: +- C# +- Aspose.Cells +- Excel automation +title: AutoFilter uit Excel verwijderen – Complete C#-gids +url: /nl/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Verwijder AutoFilter uit Excel – Complete C# Gids + +Heb je ooit **remove AutoFilter from Excel** nodig gehad maar wist je niet welke API‑aanroep het daadwerkelijk uitschakelt? Je bent niet de enige. In veel rapportage‑pijplijnen staat de filter‑UI in de weg van de downstream‑verwerking, dus het volledig verwijderen is een veelvoorkomende eis. In deze tutorial lopen we een beknopte, productie‑klare oplossing door die niet alleen laat zien **how to delete AutoFilter**, maar ook uitlegt **turn off AutoFilter Excel** stijl filters, en hoe je **clear Excel table filter** volledig kunt wissen. + +> **Wat je zult meenemen:** een kant‑klaar C#‑programma dat een bestaande werkmap laadt, het filter van de eerste tabel verwijdert, en een nieuwe kopie opslaat zonder achtergebleven UI‑elementen. + +## Vereisten + +- .NET 6+ (of .NET Framework 4.7.2+) +- Het **Aspose.Cells** NuGet‑pakket (de API die we in de code gebruiken) +- Een voorbeeld‑werkmap (`TableWithFilter.xlsx`) die al een tabel met een AutoFilter bevat +- Een basisbegrip van C#‑syntaxis (geen diepgaande Excel‑internals vereist) + +Als je dat hebt, laten we erin duiken. + +--- + +## Stap 1 – Installeer Aspose.Cells en stel het project in + +Voordat er code wordt uitgevoerd, heb je de bibliotheek nodig die ons `Workbook`, `Worksheet` en `ListObject` klassen geeft. + +```bash +dotnet add package Aspose.Cells +``` + +> **Pro tip:** Gebruik de gratis evaluatieversie voor testen; vergeet alleen niet de licentiesleutel in te stellen voordat je naar productie gaat. + +### Waarom dit belangrijk is +Aspose.Cells abstraheert de low‑level OOXML‑afhandeling, zodat we tabellen, filters en stijlen kunnen manipuleren zonder zelf XML te parsen. Daarom worden **remove autofilter from excel** taken een één‑regelige oplossing in plaats van een handvol XML‑handelingen. + +--- + +## Stap 2 – Laad de werkmap die de tabel bevat + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +Het `Workbook`‑object vertegenwoordigt het volledige Excel‑bestand. Het eerst laden zorgt ervoor dat we een schone in‑memory kopie hebben om mee te werken, wat cruciaal is wanneer je later **clear excel table filter** uitvoert zonder andere bladen te beïnvloeden. + +--- + +## Stap 3 – Haal het werkblad en de doel‑tabel op + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +Een **ListObject** is de term van Aspose voor een Excel‑tabel. Zelfs als je blad meerdere tabellen heeft, kun je door `worksheet.ListObjects` itereren en dezelfde logica op elk toepassen. Deze flexibiliteit beantwoordt de vraag “wat als ik meerdere tabellen heb?” die veel ontwikkelaars stellen. + +--- + +## Stap 4 – Verwijder de AutoFilter van de tabel + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Het instellen van `AutoFilter` op `null` **verwijdert het filterobject volledig**, wat de meest betrouwbare manier is om **how to delete autofilter** uit te voeren. De alternatieve eigenschap `ShowAutoFilter` verbergt alleen de UI maar laat de filterengine actief—handig als je alleen **turn off autofilter excel** visueel wilt uitschakelen terwijl je de onderliggende criteria behoudt. + +> **Edge case:** Als de tabel geen AutoFilter heeft toegepast, is `table.AutoFilter` al `null`. De bovenstaande regel is veilig; hij doet gewoon niets. + +--- + +## Stap 5 – Sla de gewijzigde werkmap op + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Opslaan naar een nieuw bestand houdt het origineel intact—een best practice bij het automatiseren van Excel‑transformaties. Na het uitvoeren van het programma, open `NoAutoFilter.xlsx`; je ziet de tabel zonder filter‑dropdowns, wat bevestigt dat de **remove excel table filter** operatie geslaagd is. + +--- + +## Verifieer het resultaat – Wat te verwachten + +1. **Open `NoAutoFilter.xlsx`** in Excel. +2. **Select the table** – de kleine trechter‑iconen naast de kolomkoppen zouden verdwenen moeten zijn. +3. **Check other sheets** – ze blijven onaangeroerd, wat bewijst dat we alleen **clear excel table filter** op het beoogde blad hebben uitgevoerd. + +Als de iconen nog steeds aanwezig zijn, controleer dan of je de juiste `ListObject`‑index hebt geselecteerd. Onthoud dat Excel‑tabellen nul‑gebaseerd zijn in Aspose, dus `ListObjects[0]` is de eerste tabel op het blad. + +--- + +## Omgaan met meerdere tabellen of werkbladen + +Soms moet je **remove autofilter from excel** werkboeken die meerdere tabellen over verschillende bladen bevatten. Hier is een snelle uitbreiding: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +--- + +## Veelvoorkomende valkuilen & hoe ze te vermijden + +| Valkuil | Waarom het gebeurt | Oplossing | +|---------|--------------------|----------| +| **Filter remains after saving** | Gebruik van `ShowAutoFilter = false` verbergt alleen de UI. | Gebruik `table.AutoFilter = null` om het echt te verwijderen. | +| **Wrong table index** | Veronderstellen dat de eerste tabel de gewenste is. | Inspecteer `worksheet.ListObjects.Count` en gebruik betekenisvolle namen (`tbl.Name`). | +| **Missing license** | Evaluatieversie kan watermerken toevoegen. | Registreer je licentie vroeg: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **File locked** | Excel heeft het bronbestand nog open. | Zorg ervoor dat de werkmap gesloten is in Excel voordat je het script uitvoert. | + +--- + +## Bonus: Een AutoFilter terug toevoegen (als je van gedachten verandert) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Het hebben van de omgekeerde bewerking bij de hand maakt de tutorial een alles‑in‑één oplossing voor zowel **remove autofilter from excel** als **how to delete autofilter** scenario's. + +--- + +## Volledig werkend voorbeeld (klaar om te kopiëren‑plakken) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Het uitvoeren van de bovenstaande code zal **remove autofilter from excel** voor elke tabel in de werkmap uitvoeren, waardoor je een schone basis krijgt voor verdere verwerking. + +--- + +## Conclusie + +We hebben zojuist alles behandeld wat je nodig hebt om **remove autofilter from excel** te gebruiken met C#. Van het installeren van Aspose.Cells, het laden van de werkmap, het vinden van de tabel, het daadwerkelijk verwijderen van het filter, tot het opslaan van het schone bestand—elke stap werd uitgelegd met het “waarom” erachter. Je weet nu hoe je **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel**, en **clear excel table filter** in één herbruikbare snippet kunt uitvoeren. + +Klaar voor de volgende uitdaging? Probeer het automatiseren van het toevoegen van voorwaardelijke opmaak, of verken hoe je **add an AutoFilter back** programmatically kunt doen. Beide onderwerpen bouwen direct voort op de concepten die we net hebben behandeld en zullen je Excel‑automatiseringstoolbox nog rijker maken. + +Heb je vragen, of heb je een scenario opgemerkt dat we niet hebben behandeld? Laat een reactie achter—veel plezier met coderen! + +![Screenshot die een Excel‑blad zonder filter‑dropdowns toont – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/dutch/net/excel-comment-annotation/_index.md index 3dfec4d870..5ed85813e8 100644 --- a/cells/dutch/net/excel-comment-annotation/_index.md +++ b/cells/dutch/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Leer hoe u opmerkingen aan afbeeldingen toevoegt in Excel met Aspose.Cells voor Leer hoe u opmerkingen aan cellen in Excel kunt toevoegen met Aspose.Cells voor .NET. Stapsgewijze handleiding voor beginners om de functionaliteit van Excel te verbeteren. ### [Opmaakopmerkingen - Lettertype, kleur, uitlijning](./format-comments-font-color-alignment/) Ontdek hoe u moeiteloos Excel-opmerkingen kunt opmaken met Aspose.Cells voor .NET. Pas het lettertype, de tekengrootte en de uitlijning aan om uw spreadsheets te verbeteren. +### [Excel-werkmap maken C# – Opmerkingen toevoegen en invullen met slimme markeringen](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Leer hoe u opmerkingen toevoegt en vult met slimme markeringen in een Excel-werkmap met Aspose.Cells voor .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/dutch/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..b2e0b36c87 --- /dev/null +++ b/cells/dutch/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Maak een Excel-werkmap in C# en leer hoe je een opmerking aan Excel kunt + toevoegen en automatisch kunt invullen met Smart Markers. Stapsgewijze handleiding + voor ontwikkelaars. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: nl +og_description: Maak een Excel-werkmap in C# en voeg snel een opmerking toe aan Excel, + vul vervolgens de opmerking met Smart Markers. Volledige tutorial met code. +og_title: Excel-werkboek maken in C# – Opmerkingen toevoegen en invullen +tags: +- C# +- Excel automation +- Aspose.Cells +title: Excel-werkmap maken C# – Opmerkingen toevoegen en invullen met slimme markeringen +url: /nl/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-werkmap maken met C# – Commentaar toevoegen en vullen met Smart Markers + +Heb je ooit **een Excel-werkmap met C# moeten maken** en je afgevraagd hoe je een commentaar kunt invoegen dat zichzelf automatisch bijwerkt? Je bent niet de enige. In veel rapportagescenario's wil je een celcommentaar dat zegt *“Created by Alice on 2024‑07‑15”* zonder elke keer de naam of datum hard te coderen. + +In deze tutorial laten we je precies zien **hoe je commentaar aan Excel toevoegt**, en vervolgens **hoe je commentaar vult** met behulp van Aspose.Cells’ Smart Markers. Aan het einde heb je een kant‑klaar programma dat een werkmap maakt, een dynamisch commentaar injecteert en het bestand opslaat – alles in een paar nette stappen. + +> **Wat je krijgt:** een volledige, compileerbare C# console‑applicatie, een uitleg van elke regel, tips voor veelvoorkomende valkuilen, en ideeën om de oplossing uit te breiden. + +## Vereisten + +- .NET 6.0 SDK of later (de code werkt ook met .NET Core en .NET Framework) +- Visual Studio 2022 of een IDE naar keuze +- **Aspose.Cells for .NET** NuGet‑pakket (`Install-Package Aspose.Cells`) – deze bibliotheek levert de `Workbook`, `Worksheet` en `SmartMarkerProcessor`‑klassen die hieronder worden gebruikt. +- Basiskennis van C#‑syntaxis – als je een `Console.WriteLine` hebt geschreven, ben je klaar om te gaan. + +Nu de basis op orde is, duiken we erin. + +![Voorbeeldscreenshot van Excel-werkmap maken met C#](excel-workbook.png "Voorbeeldscreenshot van Excel-werkmap maken met C#") + +## Stap 1: Een nieuwe werkmap initialiseren – Basis van Excel-werkmap maken met C# + +Eerst hebben we een schone werkmap‑object nodig. Beschouw `Workbook` als het lege canvas; zonder dit kun je geen cellen, rijen of commentaren plaatsen. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Waarom dit belangrijk is:** `Workbook` maakt automatisch een standaard werkblad aan, zodat je niet `Add` hoeft aan te roepen tenzij je extra tabbladen nodig hebt. Toegang tot `Worksheets[0]` is de snelste manier om data te gaan vullen. + +## Stap 2: Een Smart Marker‑commentaar invoegen – Commentaar toevoegen met tokens + +Vervolgens plaatsen we een commentaar in cel **B2** dat Smart Marker‑tokens bevat (`«UserName»` en `«CreatedDate»`). Deze tokens worden later vervangen door de werkelijke waarden. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Uitleg:** +- `CreateComment()` maakt het commentaarobject aan als het nog niet bestaat; anders wordt het bestaande object teruggegeven. +- De `Note`‑eigenschap bevat de zichtbare tekst. Door de placeholders in `« »` te zetten, vertellen we Aspose.Cells dat het **Smart Markers** zijn – placeholders die in één keer kunnen worden vervangen. + +> **Pro‑tip:** Als je een meerregelig commentaar nodig hebt, gebruik dan `\n` binnen de string, bijvoorbeeld `"Line1\nLine2"`. + +## Stap 3: Het gegevensobject voorbereiden – Commentaar dynamisch vullen + +Smart Markers hebben een gegevensbron nodig. In C# is de makkelijkste manier een anonieme type die overeenkomt met de placeholder‑namen. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Waarom een anoniem type?** +Het is lichtgewicht, vereist geen extra klasse‑bestand, en de eigenschapsnamen (`UserName`, `CreatedDate`) komen exact overeen met de token‑namen. Als je een sterk getypeerd model verkiest, maak dan gewoon een klasse met dezelfde eigenschappen. + +## Stap 4: Smart Markers verwerken – Commentaar vullen met het gegevensobject + +Nu gebeurt de magie. De `SmartMarkerProcessor` scant de werkmap op alle `«…»`‑tokens en vervangt ze door waarden uit `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Wat er onder de motorkap gebeurt:** +`SmartMarkerProcessor` doorloopt elke cel, elk commentaar, elke header, enz., op zoek naar het `«Token»`‑patroon. Wanneer er één wordt gevonden, gebruikt hij reflection om de overeenkomende eigenschap uit `markerData` te lezen en schrijft de waarde terug. Geen handmatige loops nodig. + +## Stap 5: De werkmap opslaan – Commentaar vullen en bestand bewaren + +Tot slot schrijven we de werkmap naar schijf. Het commentaar leest nu iets als *“Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Resultaat‑verificatie:** Open `CommentFilled.xlsx` in Excel, beweeg de muis over cel **B2**, en je ziet het commentaar met de daadwerkelijke gebruikersnaam en tijdstempel. Geen extra code‑aanpassingen nodig voor toekomstige runs – alleen de waarden in `markerData` aanpassen. + +--- + +## Veelvoorkomende variaties & randgevallen + +### Een aangepast datumformaat gebruiken + +Wil je de datum in `yyyy‑MM‑dd`‑formaat, pas dan het gegevensobject aan: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Meerdere commentaren toevoegen + +Je kunt **Stap 2** herhalen voor andere cellen. Elk commentaar kan zijn eigen set tokens hebben, of dezelfde tokens delen als de informatie universeel is. + +### Werken met bestaande werkboeken + +In plaats van `new Workbook()`, laad een bestaand bestand: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +De rest van de stappen blijft identiek – Smart Markers werken zowel op nieuwe als op reeds bestaande bestanden. + +### Omgaan met null‑waarden + +Als een token mogelijk ontbreekt, wikkel de eigenschap dan in een nullable type of geef een fallback: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +De processor zal *“Unknown”* invoegen wanneer de bron `null` is. + +--- + +## Volledig werkend voorbeeld (Klaar‑om‑te‑kopiëren) + +Hieronder staat het **complete programma** dat je in een console‑app‑project kunt plakken en direct kunt uitvoeren (vervang `YOUR_DIRECTORY` door een echt pad). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Voer het programma uit, open het gegenereerde bestand, en je ziet het dynamische commentaar in cel **B2**. Makkelijk, toch? + +--- + +## Veelgestelde vragen (FAQ) + +**V: Werkt dit met .NET Framework 4.7?** +A: Absoluut. Aspose.Cells ondersteunt .NET Framework 4.0+ en .NET Core/5/6/7. Verwijs gewoon naar de juiste DLL of NuGet‑package. + +**V: Kan ik deze aanpak gebruiken voor gegevensvalidatie of voorwaardelijke opmaak?** +A: Smart Markers zijn primair bedoeld om waarden in cellen, commentaren, headers en footers in te voegen. Voor voorwaardelijke opmaak gebruik je nog steeds de normale `Style`‑API’s. + +**V: Wat als ik een commentaar moet toevoegen aan een **ander** werkblad?** +A: Haal het gewenste werkblad op (`workbook.Worksheets["MySheet"]`) en herhaal **Stap 2** op de cellen van dat blad. + +--- + +## Volgende stappen & gerelateerde onderwerpen + +- **Hoe commentaar aan Excel** programmatically toevoegen voor meerdere cellen (loop door een bereik). +- **Commentaar in Excel vullen** met data uit een database (gebruik een `DataTable` als gegevensbron voor Smart Markers). +- Verken **Smart Marker‑arrays** om tabellen automatisch te genereren. +- Leer over **Aspose.Cells‑styling** om het lettertype, de kleur en de grootte van het commentaar te formatteren. + +Experimenteer met de fragmenten, wissel de gegevensbron uit, en je beheerst snel **hoe je commentaar vult** in elke Excel‑automatiseringssituatie. + +--- + +### Afsluiting + +We hebben zojuist het volledige proces doorlopen van **excel-werkmap maken met C#**, **commentaar toevoegen aan Excel**, en **commentaar vullen in Excel** met Smart Markers. De oplossing is compact, herbruikbaar en klaar voor productie. + +Probeer het, pas de placeholders aan, en laat de bibliotheek het zware werk doen. Als je ergens vastloopt, laat dan een reactie achter — 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/_index.md b/cells/dutch/net/excel-custom-number-date-formatting/_index.md index c01ca4d83d..5b0f8b87ef 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,8 @@ 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. +### [Cel aangepast formaat instellen in C# – Complete gids voor het schrijven en lezen van datums in Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Leer hoe u met Aspose.Cells voor .NET aangepaste celopmaak instelt en datumwaarden correct schrijft en leest in Excel. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/dutch/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..8cc1076c64 --- /dev/null +++ b/cells/dutch/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-03-21 +description: Stel aangepaste celopmaak in C# in en leer hoe je een datum naar Excel + schrijft, een aangepast datumformaat toepast, DateTime uit Excel leest en snel een + werkmapblad maakt. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: nl +og_description: Stel een aangepaste celopmaak in C# in om een datum naar Excel te + schrijven, pas een aangepast datumformaat toe, lees DateTime uit Excel en maak eenvoudig + een werkblad in een werkmap. +og_title: Aangepaste celopmaak instellen in C# – Datums schrijven en lezen in Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cel aangepast formaat instellen in C# – Complete gids voor het schrijven en + lezen van datums in Excel +url: /nl/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cel aangepast formaat instellen – Datums schrijven & lezen in Excel met C# + +Heb je ooit **cel aangepast formaat** moeten instellen in een Excel‑bestand vanuit C# maar wist je niet waar te beginnen? Je bent niet de enige. In veel rapportagetools of data‑export utilities moet de datum in een specifieke locale verschijnen – denk aan Japanse era‑datums, fiscale kalenders of ISO‑8601‑strings. + +In deze tutorial lopen we een **volledig, uitvoerbaar voorbeeld** door dat laat zien hoe je **datum naar Excel schrijft**, **aangepast datumformaat toepast**, **DateTime uit Excel leest**, en **werkmap werkblad maakt** met Aspose.Cells. Aan het einde heb je een enkel, zelf‑voorzienend programma dat je in elk .NET‑project kunt gebruiken. + +## Wat je zult leren + +- Hoe je **werkmap werkblad** programmatically maakt. +- De exacte stappen om **datum naar Excel te schrijven** met een locale‑specifieke string. +- Hoe je **aangepast datumformaat** toepast (inclusief Japanse era‑notatie). +- De manier om **DateTime uit Excel te lezen** terug naar een `DateTime`‑object. +- Tips, valkuilen en variaties waar je tegenaan kunt lopen bij het werken met Excel‑datums. + +Geen externe documentatie nodig – alles wat je nodig hebt staat hier. + +## Vereisten + +- .NET 6.0 of later (de code werkt ook op .NET Framework 4.7+). +- Aspose.Cells for .NET geïnstalleerd via NuGet (`Install-Package Aspose.Cells`). +- Een basisbegrip van C#‑syntaxis – niets ingewikkelds. + +> **Pro tip:** Als je Visual Studio gebruikt, schakel *nullable reference types* in om subtiele bugs vroegtijdig te detecteren. + +## Stap 1: Een Workbook en Worksheet maken + +Allereerst: je hebt een workbook‑object nodig dat het Excel‑bestand vertegenwoordigt, en een worksheet waar de data zal staan. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Waarom dit belangrijk is:* De `Workbook`‑klasse is het toegangspunt voor alle Excel‑bewerkingen. Het in het geheugen aanmaken betekent dat je het bestandssysteem pas raakt wanneer je expliciet opslaat, wat het proces snel en test‑vriendelijk maakt. + +## Stap 2: Datum naar Excel schrijven + +Vervolgens plaatsen we een Japanse era‑datumsring (`"R02-04-01"`) in cel **A1**. De string bootst de Reiwa‑era na (jaar 2, april 1). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Wat er gebeurt:* `PutValue` slaat de ruwe string op. Aspose.Cells zal later proberen deze te parseren op basis van de stijl van de cel. Als je deze stap overslaat en direct een `DateTime` schrijft, verlies je de era‑informatie die je wilt weergeven. + +## Stap 3: Het ingebouwde datum‑nummerformaat toepassen (ID 14) + +Excel heeft een ingebouwd datumformaat met ID 14 (`mm-dd-yy`). Het toepassen hiervan vertelt de engine dat cel **een datum bevat**, niet alleen tekst. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Waarom ID 14 gebruiken?* Het is het universele “korte datum”‑formaat dat ervoor zorgt dat Excel de inhoud als een datumwaarde behandelt, wat een voorwaarde is voor elk aangepast formaat om correct te werken. + +## Stap 4: Een aangepast formaat instellen om Japanse era‑notatie weer te geven + +Nu het leuke gedeelte: we laten Excel de datum weergeven met het Japanse era‑formaat. De aangepaste string `[$-ja-JP]ggge年m月d日` doet precies dat. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Uitleg:* +- `[$-ja-JP]` dwingt de locale naar Japans. +- `ggg` is de era‑naam (bijv. “R” voor Reiwa). +- `e` is het era‑jaar. +- `年`, `月`, `日` zijn letterlijke Japanse tekens voor jaar, maand, dag. + +Als je een andere locale nodig hebt, vervang dan simpelweg `ja-JP` door de juiste cultuencode (bijv. `en-US`). + +## Stap 5: De geparseerde DateTime‑waarde ophalen + +Tot slot lezen we de **werkelijke `DateTime`** die Excel uit de cel heeft geparseerd. Dit bewijst dat de string correct is geïnterpreteerd. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Resultaat:* De console print `Parsed DateTime: 2020-04-01`. Hoewel we een Japanse era‑string invoerden, slaat Excel intern de Gregoriaanse datum op, die je kunt gebruiken voor berekeningen, vergelijkingen of verdere export. + +## Stap 6: De Workbook opslaan (optioneel) + +Als je het geformatteerde workbook in Excel wilt bekijken, sla het dan gewoon op schijf op. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Open het gegenereerde **JapaneseEraDate.xlsx** en je ziet dat cel **A1** `R02年4月1日` weergeeft (exact het Japanse era‑formaat dat we hebben ingesteld). + +![stel cel aangepast formaat voorbeeld](image-placeholder.png "Excelcel die Japanse era‑datum toont – stel cel aangepast formaat in") + +*De alt‑tekst hierboven bevat het primaire zoekwoord, wat voldoet aan de image‑SEO‑vereiste.* + +## Veelvoorkomende variaties & randgevallen + +### Een ander datumformaat schrijven + +Als je liever ISO‑8601 (`2020-04-01`) gebruikt in plaats van een era‑string, wijzig dan simpelweg de `PutValue`‑aanroep: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Omgaan met null‑ of lege cellen + +Wanneer je een datum leest, bescherm altijd tegen lege cellen om `InvalidOperationException` te voorkomen: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Meerdere locales ondersteunen + +Je kunt door een lijst met cultuurbestanden itereren en ze dynamisch toepassen: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Pro‑tips & valkuilen + +- **Stel altijd eerst een ingebouwd nummerformaat in** (`Style.Number`). Zonder dit behandelt Excel de cel als platte tekst en wordt het aangepaste formaat genegeerd. +- **Locale‑codes zijn niet‑hoofdlettergevoelig**, maar het gebruik van de canonieke vorm (`ja-JP`) voorkomt verwarring. +- **Opslaan is optioneel** voor verwerking in het geheugen; je kunt de workbook direct naar een web‑response streamen (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Aspose.Cells‑licenties**: De gratis evaluatieversie voegt een watermerk toe. Voor productie zorg je voor een geldige licentie om prestatie‑penalties te vermijden. + +## Samenvatting + +We hebben laten zien hoe je **cel aangepast formaat** in C# instelt om Japanse era‑datums weer te geven, hoe je **datum naar Excel schrijft**, **aangepast datumformaat toepast**, **DateTime uit Excel leest**, en **werkmap werkblad maakt** — allemaal in één enkel, zelf‑voorzienend programma. Het primaire zoekwoord verschijnt natuurlijk door de tekst heen, terwijl secundaire zoekwoorden in koppen en body‑tekst zijn verweven, wat zowel SEO‑ als AI‑citatienormen vervult. + +## Wat is het volgende? + +- Verken **conditionele opmaak** om verlopen datums te markeren. +- Combineer deze aanpak met **draaitabellen** voor dynamische rapportage. +- Probeer **grote CSV‑bestanden te lezen** en ze met dezelfde datum‑logica naar Excel te converteren. + +Voel je vrij om te experimenteren met verschillende locales, aangepaste patronen of zelfs tijdzones. Als je tegen problemen aanloopt, laat dan een reactie achter — 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-data-export-retrieval/_index.md b/cells/dutch/net/excel-data-export-retrieval/_index.md index 2bcc728b6f..bf275b3aef 100644 --- a/cells/dutch/net/excel-data-export-retrieval/_index.md +++ b/cells/dutch/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Wil je weten hoe je dit moet doen? Bekijk deze handige gids op [Gegevens ophalen ### [Gegevens ophalen uit cellen in Excel](./retrieve-data-from-cells-in-excel/) Leer in deze stapsgewijze zelfstudie hoe u gegevens uit Excel-cellen kunt ophalen met Aspose.Cells voor .NET. Deze tutorial is perfect voor zowel beginners als ervaren ontwikkelaars. +### [Excel-gegevens tabel exporteren in C# – Complete gids](./export-excel-data-table-in-c-complete-guide/) +Leer stap voor stap hoe u een Excel-datatabel exporteert met C# en Aspose.Cells, geschikt voor zowel beginners als gevorderden. + +### [Excel-gegevens exporteren in C# – Stapsgewijze gids](./how-to-export-excel-data-in-c-step-by-step-guide/) +Leer stap voor stap hoe u Excel-gegevens exporteert met C# en Aspose.Cells, geschikt voor zowel beginners als gevorderden. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/dutch/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/dutch/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..23db965e7e --- /dev/null +++ b/cells/dutch/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Exporteer een Excel-gegevens tabel naar een DataTable met kopteksten, + beperk het aantal decimalen en exporteer de eerste 100 rijen met Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: nl +og_description: Leer hoe je een Excel-datatabel exporteert naar een DataTable, de + kopteksten behoudt, decimalen beperkt en de eerste 100 rijen ophaalt in C#. +og_title: Excel-gegevens tabel exporteren in C# – Stapsgewijze handleiding +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Excel‑gegevens tabel exporteren in C# – Complete gids +url: /nl/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Export Excel Data Table – Full C# Walkthrough + +Moet je **export excel data table** vanuit een werkmap naar een .NET `DataTable`? Je bent op de juiste plek—deze gids laat je precies zien hoe je dit doet, de kolomkoppen behoudt, decimalen beperkt, en alleen de eerste 100 rijen ophaalt. + +Als je ooit naar een spreadsheet hebt gekeken en je afvroeg: “Hoe krijg ik dit in mijn app zonder de opmaak te verliezen?” dan ben je niet de enige. In de komende paar minuten veranderen we dat “wat‑if” in een concrete, copy‑and‑paste oplossing die werkt met Aspose.Cells, een populaire bibliotheek voor Excel-manipulatie. + +## What You’ll Learn + +- Hoe je **export excel to datatable** gebruikt met de `ExportDataTable`‑methode. +- Hoe je de oorspronkelijke kolomnamen behoudt (`export excel with headers`). +- Hoe je **limit decimal places excel** waarden beperkt door `ExportTableOptions` te configureren. +- Hoe je veilig alleen de eerste 100 rijen ophaalt (`export first 100 rows`). + +Geen externe scripts, geen magische strings—gewoon plain C# die je in elk .NET‑project kunt plaatsen. + +## Prerequisites + +| Vereiste | Waarom het belangrijk is | +|----------|--------------------------| +| .NET 6 of later (of .NET Framework 4.7+) | Aspose.Cells ondersteunt beide, maar nieuwere runtimes geven je async‑ready API's. | +| Aspose.Cells for .NET NuGet‑pakket | Biedt `Workbook`, `ExportTableOptions` en de `ExportDataTable`‑helper. | +| Een voorbeeld Excel‑bestand (bijv. `Numbers.xlsx`) | De bron van de gegevens die je gaat exporteren. | +| Basis C#‑kennis | Je volgt de code‑fragmenten, maar er is niets ingewikkelds nodig. | + +Als een van deze onbekend klinkt, haal dan het NuGet‑pakket op met `dotnet add package Aspose.Cells` en maak een klein Excel‑bestand met een paar getallen—je testgegevens. + +![voorbeeld export excel data table](excel-data-table.png "Schermafbeelding van een Excel‑blad dat wordt geëxporteerd naar een DataTable") + +## Step 1: Load the Workbook (export excel data table) + +Het allereerste wat je nodig hebt is een `Workbook`‑instantie die naar je Excel‑bestand wijst. Beschouw het als het openen van een boek voordat je hoofdstukken kunt lezen. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Waarom dit belangrijk is:** Het laden van de werkmap geeft je toegang tot de werkbladen, cellen en stijlen. Als het bestandspad onjuist is, zal Aspose een `FileNotFoundException` werpen, dus controleer de locatie dubbel. + +## Step 2: Configure Export Options – limit decimal places excel + +Standaard exporteert Aspose elke numerieke waarde met volledige precisie. Vaak heb je slechts een handvol significante cijfers nodig, vooral wanneer je de gegevens in een UI‑grid of een API stopt die afgeronde getallen verwacht. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Pro tip:** Als je een andere afrondingsstrategie nodig hebt (bijv. altijd naar boven afronden), kun je de `DataTable` na het exporteren post‑processen. De `SignificantDigits`‑instelling is de snelste manier om **limit decimal places excel** te beperken zonder extra lussen te schrijven. + +## Step 3: Export the Desired Range (export first 100 rows) + +Nu vertellen we Aspose welk celblok we willen overzetten naar een `DataTable`. In deze tutorial pakken we de eerste 100 rijen en de eerste 10 kolommen, maar je kunt die aantallen aanpassen aan jouw scenario. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Randgeval:** Als het blad minder dan 100 rijen bevat, zal Aspose simpelweg exporteren wat er is zonder een fout te werpen. Je wilt echter mogelijk een bescherming tegen een onverwacht klein bereik: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Step 4: Verify the Result – Quick Console Dump + +De gegevens in je debugger zien is prettig, maar een paar rijen naar de console afdrukken bevestigt dat de **export excel to datatable** daadwerkelijk heeft gewerkt en dat de decimalen zijn bijgesneden. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Expected Output + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Let op hoe de numerieke kolommen nu slechts vier significante cijfers tonen, overeenkomend met de `SignificantDigits = 4`‑instelling die we eerder hebben toegepast. + +## Step 5: Wrap It All Up – A Complete, Runnable Example + +Hieronder staat het volledige programma dat je kunt copy‑paste in een console‑applicatie. Het bevat foutafhandeling, de optionele rij‑telling guard, en de hulpfunctie voor het afdrukken. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Voer het programma uit, en je ziet de eerste 100 rijen van je blad, mooi afgerond, met de kolomnamen intact. + +## Common Questions & Gotchas + +| Vraag | Antwoord | +|-------|----------| +| **Wat als mijn blad samengevoegde cellen heeft?** | `ExportDataTable` maakt samengevoegde cellen plat door de waarde van de boven‑linker cel te nemen. Als je aangepaste handling nodig hebt, splits dan eerst of lees de ruwe `Cell`‑objecten. | +| **Kan ik in plaats daarvan exporteren naar een `DataSet`?** | Ja—gebruik `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/dutch/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..b1e8874560 --- /dev/null +++ b/cells/dutch/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Hoe Excel-gegevens met kolomnamen te exporteren, getalopmaak te behouden + en specifieke rijen te lezen met Aspose.Cells in C#. Leer hoe je een Excel-werkblad + leest en specifieke rijen efficiënt exporteert. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: nl +og_description: Hoe Excel-gegevens met kolomnamen te exporteren, getalnotatie te behouden + en specifieke rijen te lezen met Aspose.Cells. Een volledig, uitvoerbaar voorbeeld + voor C#‑ontwikkelaars. +og_title: Hoe Excel-gegevens exporteren in C# – Complete programmeergids +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Hoe Excel‑gegevens exporteren in C# – Stapsgewijze handleiding +url: /nl/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe Excel-gegevens exporteren in C# – Complete programmeergids + +Heb je je ooit afgevraagd **hoe je excel**‑gegevens kunt exporteren zonder de oorspronkelijke opmaak te verliezen? Misschien heb je een snelle copy‑paste geprobeerd en eindigde je met datums die eruitzien als “44728” of ontbrekende kolomkoppen. Dat is frustrerend, toch? In deze tutorial zie je een nette, end‑to‑end manier om een Excel‑werkblad te lezen, getalopmaak te behouden, te exporteren met kolomnamen en zelfs alleen de rijen te selecteren die je nodig hebt. + +We gebruiken de Aspose.Cells‑bibliotheek omdat die je fijne controle geeft over exportopties. Aan het einde van deze gids heb je een herbruikbaar fragment dat je in elk .NET‑project kunt plaatsen, en begrijp je waarom elke optie belangrijk is. Geen externe documentatie nodig—alles wat je nodig hebt staat hier. + +--- + +## Wat je zult leren + +- **Excel‑werkblad lezen** in het geheugen met Aspose.Cells. +- **Specifieke rijen exporteren** (bijv. rijen 0‑49) terwijl je kolomnamen behoudt. +- **Getalopmaak behouden** zodat valuta, datums en percentages intact blijven. +- Hoe **exporteren met kolomnamen** en celopmerkingen opnemen als je dat nodig hebt. +- Een compleet, kant‑klaar C#‑voorbeeld plus tips voor veelvoorkomende valkuilen. + +### Vereisten + +- .NET 6.0 of later (de code werkt ook met .NET Framework 4.6+). +- Aspose.Cells voor .NET geïnstalleerd via NuGet (`Install-Package Aspose.Cells`). +- Een Excel‑bestand (`input.xlsx`) geplaatst in een map die je kunt refereren. + +> **Pro tip:** Als je in een CI‑pipeline werkt, overweeg dan het NuGet‑pakket van een private feed te halen om licentie‑verrassingen te voorkomen. + +--- + +## Stap 1 – Installeer Aspose.Cells en voeg namespaces toe + +Zorg er eerst voor dat het Aspose.Cells‑pakket in je project staat. Open de Package Manager Console en voer uit: + +```powershell +Install-Package Aspose.Cells +``` + +Voeg vervolgens de benodigde `using`‑directieven toe aan de bovenkant van je C#‑bestand: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Deze imports geven je toegang tot `Workbook`, `Worksheet`, `ExportTableOptions` en `DataTable`—de kernonderdelen voor **het lezen van een Excel‑werkblad** en het exporteren van gegevens. + +--- + +## Stap 2 – Laad de Workbook (Lees het Excel‑bestand) + +Nu lezen we daadwerkelijk **het Excel‑werkblad**. De `Workbook`‑constructor neemt een pad naar het bestand, en Aspose.Cells handelt zowel `.xlsx`‑ als oudere `.xls`‑formaten af. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Waarom dit belangrijk is:** Het workbook één keer laden en vervolgens hetzelfde `Worksheet`‑object hergebruiken is veel efficiënter dan het bestand herhaaldelijk te openen, vooral bij grote spreadsheets. + +--- + +## Stap 3 – Configureer exportopties (Getalopmaak & kolomnamen behouden) + +Hier vertellen we Aspose.Cells *hoe* te exporteren. De `ExportTableOptions`‑klasse laat ons de output fijn afstellen. We schakelen drie vlaggen in: + +1. `ExportAsString = true` – dwingt elke cel om een string te worden, waardoor getallen hun visuele weergave behouden. +2. `IncludeCellComments = true` – kopieert eventuele opmerkingen die aan cellen zijn gekoppeld (handig voor documentatie). +3. `PreserveNumberFormat = true` – behoudt de oorspronkelijke getalopmaak (valutasymbolen, datumpatronen, enz.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Randgeval:** Als je `ExportAsString` op `false` zet maar toch de getalopmaak wilt behouden, kun je eindigen met ruwe numerieke waarden (bijv. 44728 voor een datum). Beide vlaggen aan laten voorkomt die verrassing. + +--- + +## Stap 4 – Haal het eerste werkblad op (Excel‑werkblad lezen) + +De meeste eenvoudige bestanden hebben de benodigde data op het eerste blad, dus halen we het op via de index. Als je een ander blad nodig hebt, vervang dan `0` door de juiste nul‑gebaseerde index of gebruik `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Waarom dit nuttig is:** Directe toegang tot het werkbladobject geeft je volledige controle over de `Cells`‑collectie, wat essentieel is voor **specifieke rijen exporteren** later. + +--- + +## Stap 5 – Export een bereik van cellen (Specifieke rijen exporteren) + +Nu het hart van de tutorial: rijen 0‑49 en kolommen 0‑4 (dus de eerste 50 rijen en eerste vijf kolommen) exporteren naar een `DataTable`. We laten Aspose.Cells ook kolomnamen opnemen als de eerste rij van de `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Wat dit doet + +- **`startRow: 0`** – begint helemaal bovenaan het blad. +- **`totalRows: 50`** – pakt de eerste 50 rijen (dus **specifieke rijen exporteren**). +- **`totalColumns: 5`** – beperkt de export tot de eerste vijf kolommen. +- **`includeColumnNames: true`** – zorgt ervoor dat de kolomkoppen van de `DataTable` overeenkomen met de Excel‑koprij, waardoor de **export met kolomnamen**‑vereiste wordt vervuld. +- **`exportOptions`** – past de instellingen van Stap 3 toe, zodat je numerieke waarden er uitzien als “$1,234.56” in plaats van “1234.56”. + +--- + +## Stap 6 – Verifieer de export (Hoe het resultaat eruitziet) + +Print de eerste paar rijen naar de console zodat je kunt zien dat de opmaak behouden is. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Verwachte output (voorbeeld):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Let op hoe de datums verschijnen in `MM/dd/yyyy`‑formaat en de valuta het `$`‑symbool behoudt—dankzij **preserve number format**. + +--- + +## Veelvoorkomende valkuilen & hoe ze te vermijden + +| Probleem | Waarom het gebeurt | Oplossing | +|----------|--------------------|-----------| +| Datums worden grote getallen | `ExportAsString` staat op `false` | Houd `ExportAsString = true` of converteer cellen handmatig | +| Kolomkoppen ontbreken | `includeColumnNames` staat op `false` | Zet deze op `true` wanneer je **export met kolomnamen** nodig hebt | +| Opmerkingen verdwijnen | `IncludeCellComments` niet ingeschakeld | Schakel `IncludeCellComments` in bij `ExportTableOptions` | +| Verkeerd blad geëxporteerd | `Worksheets[0]` gebruiken in een multi‑sheet bestand | Specificeer de bladnaam: `workbook.Worksheets["Data"]` | +| Out‑of‑range‑exception | `totalRows` overschrijdt het werkelijke aantal rijen | Gebruik `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## Bonus: Het hele blad exporteren terwijl je nog steeds opmaak behoudt + +Als je later besluit dat je het volledige blad nodig hebt, vervang je `totalRows` en `totalColumns` door de maximale afmetingen van het blad: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Nu heb je een **read excel worksheet**‑routine die werkt voor elke grootte, terwijl je nog steeds **preserving number format** en **exporting with column names** behoudt. + +--- + +## Volledig werkend voorbeeld (Kopieer‑en‑plak klaar) + +Hieronder staat het complete programma dat je in een console‑app kunt plakken. Het bevat alle stappen, imports en een eenvoudige verificatie‑print. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Sla dit op als `Program.cs`, voer `dotnet run` uit, en je zou de geformatteerde preview in je terminal moeten zien. + +--- + +## Conclusie + +We hebben net doorlopen **hoe je excel**‑gegevens kunt exporteren met Aspose.Cells, van het laden van de workbook tot het behouden van getalopmaak, exporteren met kolomnamen en het beperken van de export tot specifieke rijen. De code is zelf‑voorzienend, volledig uitvoerbaar, en bevat praktische beveiligingen voor de meest voorkomende randgevallen. + +Klaar voor de volgende uitdaging? Probeer direct naar een CSV te exporteren terwijl je de oorspronkelijke getalopmaak behoudt, of duw de `DataTable` naar een Entity Framework Core‑context voor bulk‑database‑inserts. Beide scenario's bouwen voort op dezelfde fundamenten die we hier hebben behandeld. + +Als je deze gids nuttig vond + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..a83cc9d418 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. | +| [Excel-werkmap maken met gestylede tabel – Stapsgewijze handleiding](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Leer hoe u een Excel-werkmap maakt met een opgemaakte tabel met Aspose.Cells voor .NET. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/dutch/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..bb292413e6 --- /dev/null +++ b/cells/dutch/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-21 +description: Maak een Excel-werkmap en importeer een datatabel naar Excel terwijl + je de kolomstijl instelt, exporteer gegevens naar Excel en formatteer de datum van + Excel-cellen in minuten. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: nl +og_description: Maak snel een Excel-werkmap. Leer hoe je een datatable naar Excel + importeert, kolomstijlen instelt, gegevens exporteert naar Excel en datums in Excel-cellen + formatteert, allemaal in één gids. +og_title: Maak een Excel‑werkboek – Volledige tutorial voor opmaak en export +tags: +- C# +- Aspose.Cells +- Excel automation +title: Maak Excel-werkmap met gestylede tabel – Stapsgewijze handleiding +url: /nl/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-werkmap maken – Complete programmeertutorial + +Heb je ooit moeten **create excel workbook** die er direct uit de code professioneel uitziet? Misschien haal je gegevens uit een database en wil je dat de datums in het juiste formaat verschijnen zonder later in Excel te moeten sleutelen. Dat is een veelvoorkomend pijnpunt—vooral wanneer de output in de inbox van een klant belandt en zij verwachten dat alles direct bruikbaar is. + +In deze gids lopen we stap voor stap door een enkele, zelfstandige oplossing die **imports datatable to excel**, een **set column style** toepast en uiteindelijk **export data to excel** als een mooi opgemaakt bestand. Je ziet precies hoe je **format excel cells date** kunt toepassen zodat het spreadsheet eruitziet als een professioneel rapport, en je krijgt aan het einde een volledig werkend voorbeeld. Geen ontbrekende onderdelen, geen “zie de docs” shortcuts—gewoon pure code die je vandaag nog in je project kunt gebruiken. + +--- + +## Wat je zult leren + +- Hoe je **create excel workbook** gebruikt met de Aspose.Cells bibliotheek (of een andere compatibele API). +- De snelste manier om **import datatable to excel** uit te voeren zonder handmatige cel‑voor‑cel lussen. +- Technieken om **set column style** toe te passen, inclusief het toepassen van een datumformaat op een specifieke kolom. +- Hoe je **export data to excel** doet met één `Save`‑aanroep. +- Veelvoorkomende valkuilen wanneer je probeert **format excel cells date** en hoe je ze kunt vermijden. + +### Vereisten + +- .NET 6+ (of .NET Framework 4.6+). +- Aspose.Cells voor .NET geïnstalleerd (`Install-Package Aspose.Cells`). +- Een `DataTable` klaar om te exporteren—je gegevensbron kan SQL, CSV of iets anders zijn dat omgezet kan worden naar een `DataTable`. + +Als je al vertrouwd bent met C# en die onderdelen klaar hebt, kun je direct aan de slag. Anders geeft de “Prerequisites” sectie hierboven je een snelle checklist. + +--- + +## Stap 1 – Maak de Excel-werkmap instantie + +Het eerste wat je doet wanneer je **create excel workbook** programmatically wilt maken, is het workbook‑object instantieren. Beschouw dit als het openen van een leeg notitieboek waarin je later je gegevens schrijft. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Waarom dit belangrijk is:** +> De `Workbook`‑klasse is het toegangspunt voor elke bewerking in Aspose.Cells. Het vooraf aanmaken geeft je een schoon canvas, en je kunt later een bestaand bestand laden als je gegevens wilt toevoegen in plaats van vanaf nul te beginnen. + +--- + +## Stap 2 – Bereid de DataTable voor om te importeren + +Voordat we **import datatable to excel** kunnen uitvoeren, hebben we een `DataTable` nodig. In echte projecten komt deze vaak van `SqlDataAdapter.Fill` of `DataTable.Load`. Voor de duidelijkheid zullen we een methode stubben die een kant‑klaar tabel retourneert. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tip:** Als je datums als strings zijn opgeslagen, converteer ze dan eerst naar `DateTime`—anders werkt de **format excel cells date** stap niet zoals verwacht. + +--- + +## Stap 3 – Definieer stijlen voor elke kolom (Set Column Style) + +Nu volgt het deel waar we **set column style** toepassen. We maken een array van `Style`‑objecten—één per kolom. De eerste kolom krijgt een ingebouwd datumformaat (code 14), terwijl de andere de algemene indeling behouden (code 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Waarom stijl‑objecten gebruiken?** +> Een stijl één keer toepassen en hergebruiken is veel efficiënter dan het formaat per cel afzonderlijk instellen. Het garandeert ook dat de hele kolom dezelfde **format excel cells date**‑regel volgt, wat essentieel is voor consistentie wanneer het bestand in verschillende regio‑instellingen wordt geopend. + +--- + +## Stap 4 – Importeer de DataTable met stijlen in het werkblad + +Met het workbook klaar en de stijlen gedefinieerd, **import datatable to excel** nu. De `ImportDataTable`‑methode doet het zware werk: hij schrijft de kolomkoppen, rijen en past de stijlen toe die we hebben meegegeven. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Wat er onder de motorkap gebeurt:** +> - `true` vertelt Aspose.Cells om kolomnamen op te nemen als de eerste rij. +> - `0, 0` zijn de start‑rij‑ en kolom‑indexen (linkerbovenhoek). +> - `columnStyles` koppelt elke kolom aan de stijl die we hebben voorbereid, waardoor de **format excel cells date**‑regel op de datumkolom wordt toegepast. + +--- + +## Stap 5 – Sla (export) de werkmap op naar een fysiek bestand + +Tot slot **export data to excel** door het workbook op te slaan op schijf. Je kunt het pad aanpassen naar elke gewenste map, of het bestand direct streamen naar een HTTP‑response voor een web‑API. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** Gebruik `workbook.Save(Stream, SaveFormat.Xlsx)` wanneer je het bestand via het netwerk wilt verzenden zonder naar schijf te schrijven. + +--- + +## Volledig werkend voorbeeld (Alle stappen gecombineerd) + +Hieronder staat het volledige, kant‑klaar programma. Kopieer‑en‑plak het in een console‑app, pas het uitvoerpad aan, en je hebt binnen enkele seconden een mooi opgemaakt Excel‑bestand. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Verwachte output:** +Wanneer je `StyledTable.xlsx` opent, toont kolom A datums zoals `03/19/2026` (afhankelijk van je locale), terwijl kolommen B en C de productnamen en hoeveelheden weergeven als platte tekst/getallen. Geen extra opmaakstappen nodig—je **create excel workbook** proces is voltooid. + +--- + +## Veelgestelde vragen & randgevallen + +### 1️⃣ Wat als mijn DataTable meer dan drie kolommen heeft? +Voeg meer `Style`‑objecten toe aan de `columnStyles`‑array, en pas de `Number`‑eigenschap aan voor elke kolom die een speciaal formaat nodig heeft (bijv. valuta, percentages). De `ImportDataTable`‑methode zal elke stijl op positie afstemmen. + +### 2️⃣ Kan ik een aangepast datumformaat gebruiken in plaats van de ingebouwde 14? +Zeker. Vervang `columnStyles[i].Number = 14;` door: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Hoe **export data to excel** ik in een web‑API zonder naar schijf te schrijven? +Gebruik een `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Wat als de locale van de gebruiker een andere datum‑scheidingsteken verwacht? +Het ingebouwde datumformaat (ID 14) houdt rekening met de locale‑instellingen van het workbook. Als je een vast formaat nodig hebt ongeacht de locale, gebruik dan de `Custom`‑eigenschap zoals hierboven getoond. + +### 5️⃣ Werkt dit met .NET Core? +Ja—Aspose.Cells ondersteunt .NET Standard 2.0 en hoger, dus dezelfde code draait op .NET 6, .NET 7, of elke compatibele runtime. + +--- + +## Best‑practice tips (Pro tips) + +- **Stijlen hergebruiken**: Een stijl per kolom aanmaken is goedkoop, maar hetzelfde stijl‑object hergebruiken voor identieke kolommen bespaart geheugen. +- **Vermijd cel‑voor‑cel lussen**: `ImportDataTable` is sterk geoptimaliseerd; handmatige lussen zijn trager en vatbaar voor fouten. +- **Stel workbook‑culture vroeg in** als je consistente getal‑/datum‑scheidingstekens nodig hebt over omgevingen heen: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Valideer DataTable** vóór import—null‑datums veroorzaken een uitzondering wanneer de datumstijl wordt toegepast. +- **Schakel berekening in** als je formules toevoegt na import: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Conclusie + +Je hebt nu een complete, end‑to‑end recept om **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, en **format excel cells date** uit te voeren—alles in minder dan een dozijn C#‑regels. De aanpak is snel, betrouwbaar, en houdt opmaak‑zaken binnen de code, zodat het uiteindelijke spreadsheet klaar is voor zakelijke gebruikers op het moment dat ze het openen. + +Klaar voor de volgende uitdaging? Probeer conditionele opmaak toe te voegen, grafieken in te voegen, of het te converteren naar + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/dutch/net/row-and-column-management/_index.md index bb826dc162..cf811e8359 100644 --- a/cells/dutch/net/row-and-column-management/_index.md +++ b/cells/dutch/net/row-and-column-management/_index.md @@ -76,6 +76,8 @@ Leer hoe je een rij in Excel invoegt met Aspose.Cells voor .NET met deze stapsge Leer hoe je een rij met opmaak in Excel invoegt met Aspose.Cells voor .NET. Volg onze stapsgewijze handleiding voor eenvoudige implementatie. ### [Meerdere rijen invoegen in Aspose.Cells .NET](./insert-multiple-rows-aspose-cells/) Leer hoe u meerdere rijen in Excel kunt invoegen met Aspose.Cells voor .NET. Volg onze gedetailleerde tutorial voor naadloze gegevensmanipulatie. +### [Excel-bestand laden C# – Hoe rijen te verwijderen en specifieke rijen te verwijderen](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Leer hoe u met Aspose.Cells voor .NET rijen uit een Excel‑bestand kunt verwijderen en specifieke rijen kunt targeten. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/dutch/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..8e622053dc --- /dev/null +++ b/cells/dutch/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-03-21 +description: Laad een Excel‑bestand in C# en verwijder gegevensrijen met Aspose.Cells. + Leer hoe je rijen kunt verwijderen, specifieke rijen kunt verwijderen, en beheer + C# Excel‑rijverwijdering in enkele minuten. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: nl +og_description: Laad Excel‑bestand in C# en verwijder snel rijen, verwijder specifieke + rijen en beheer C# Excel‑rijverwijdering met Aspose.Cells. Complete stapsgewijze + gids. +og_title: Excel-bestand laden C# – Rijen verwijderen & Specifieke rijen verwijderen +tags: +- C# +- Excel +- Aspose.Cells +title: Excel-bestand laden C# – Hoe rijen te verwijderen en specifieke rijen te verwijderen +url: /nl/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-bestand laden met C# – Hoe rijen te verwijderen en specifieke rijen te verwijderen + +Heb je ooit **Excel-bestand laden C#** nodig gehad en vervolgens rijen die je niet nodig hebt weggesneden? Misschien ben je een data‑dump aan het opschonen, of heb je een sjabloon waarbij bepaalde rijen moeten verdwijnen voordat je de werkmap naar een klant verzendt. Hoe dan ook, het probleem is hetzelfde: je hebt een `.xlsx` op schijf, je wilt het openen in .NET, en je moet **rijen verwijderen** zonder verborgen tabellen of lijstobjecten te breken. + +Het punt is—Aspose.Cells maakt dit een eitje. In deze tutorial zie je een compleet, kant‑klaar voorbeeld dat precies laat zien **hoe rijen te verwijderen**, hoe **specifieke rijen te verwijderen**, en waarom je misschien geïnteresseerd bent in **c# excel row deletion** in de eerste plaats. Aan het einde heb je een schoon `output.xlsx` dat alleen de rijen bevat die je wilt. + +## Wat deze gids behandelt + +- Een Excel‑werkmap van schijf laden met Aspose.Cells. +- Een bereik van rijen verwijderen (bijv. rijen 5‑10) met behoud van eventuele ListObject‑koppen. +- De gewijzigde werkmap terug opslaan naar het bestandssysteem. +- Veelvoorkomende valkuilen, zoals per ongeluk rijen binnen een tabel verwijderen, en tips om ze te vermijden. +- Een volledig, uitvoerbaar code‑voorbeeld dat je vandaag nog in een console‑app kunt plaatsen. + +> **Prerequisites** +> • .NET 6+ (of .NET Framework 4.6+). +> • Aspose.Cells for .NET geïnstalleerd via NuGet (`Install-Package Aspose.Cells`). +> • Basiskennis van C# en Excel‑concepten (werkbladen, cellen, tabellen). + +Als je je afvraagt **waarom je Aspose.Cells zou moeten gebruiken** in plaats van bijvoorbeeld `Microsoft.Office.Interop.Excel`, is het antwoord snelheid, geen COM‑vereiste, en de mogelijkheid om op servers te draaien zonder Office geïnstalleerd. Bovendien is de API eenvoudig voor taken rondom het verwijderen van rijen. + +--- + +## Stap 1: De Excel‑werkmap laden in C# + +Voordat je iets kunt verwijderen, moet je de werkmap in het geheugen krijgen. De `Workbook`‑klasse vertegenwoordigt het volledige Excel‑bestand. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Waarom dit belangrijk is:** +Het laden van het bestand creëert een objectgrafiek die de Excel‑structuur weerspiegelt—werkbladen, cellen, tabellen, enzovoort. Door een referentie naar `ws` vast te houden, kun je rijen direct manipuleren zonder je zorgen te maken over bestandsvergrendelingen of COM‑interop‑eigenaardigheden. + +## Stap 2: Rijen verwijderen die alleen gegevens bevatten + +Nu de werkmap in het geheugen staat, kun je rijen verwijderen. De methode `Cells.DeleteRows(startRow, totalRows)` verwijdert een aaneengesloten blok. In ons voorbeeld halen we rijen 5‑10 weg. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Hoe het werkt:** +- `startRow` is nul‑gebaseerd, dus `5` verwijst eigenlijk naar Excel‑rij 6. Pas dit dienovereenkomstig aan. +- Als het werkblad een **ListObject** (Excel‑tabel) bevat waarvan de kop op rij 4 staat, zal Aspose.Cells de kop beschermen en alleen de gegevensrijen eronder verwijderen. Deze ingebouwde veiligheid voorkomt dat je gestructureerde tabellen corrumpeert—een veelvoorkomend randgeval bij het **verwijderen van gegevensrijen**. + +> **Pro tip:** Als je niet‑aaneengesloten rijen moet verwijderen (bijv. rijen 3, 7, 12), loop dan over een omgekeerde collectie van rij‑indices en roep `DeleteRows(rowIndex, 1)` voor elke rij aan. Verwijderen van onderen naar boven behoudt de oorspronkelijke indices voor de resterende rijen. + +## Stap 3: De gewijzigde werkmap opslaan + +Zodra de ongewenste rijen weg zijn, schrijf je de werkmap eenvoudigweg terug naar schijf. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +De `Save`‑methode bepaalt automatisch het bestandsformaat aan de hand van de extensie (`.xlsx` in dit geval). Als je een ander formaat nodig hebt—CSV, PDF, enz.—verander dan gewoon de extensie of geef een `SaveFormat`‑enum op. + +### Verwacht resultaat + +Open `output.xlsx` in Excel en je zult zien dat rijen 5‑14 (de oorspronkelijke rijen 5‑10) verdwenen zijn. Alle andere gegevens schuiven overeenkomstig omhoog, en eventuele formules die naar de verwijderde rijen verwezen, worden automatisch aangepast door Aspose.Cells. + +## Veelgestelde vragen (FAQ) + +### Hoe verwijder ik rijen op basis van een voorwaarde (bijv. alle rijen waarbij kolom A leeg is)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +De lus loopt achterwaarts om indexverschuiving te voorkomen. Dit patroon beantwoordt de bredere **c# excel row deletion**‑vraag wanneer je conditionele logica nodig hebt. + +### Wat als mijn werkblad meerdere ListObjects bevat? + +Aspose.Cells behandelt elk ListObject onafhankelijk. Als de kop van een tabel door het te verwijderen bereik zou worden geraakt, gooit de API een `InvalidOperationException`. Om dit te omzeilen, pas je het bereik aan of maak je tijdelijk de eigenschap `ShowTableStyleFirstColumn` van het ListObject leeg, voer je de verwijdering uit, en herstel je de eigenschap daarna. + +### Kan ik rijen verwijderen zonder de hele werkmap in het geheugen te laden? + +Ja—Aspose.Cells biedt een **streaming API** (`Workbook.LoadOptions`) die gegevens in stukken leest. Echter, het verwijderen van rijen vereist per definitie de structuur van het werkblad, dus je moet toch het doelblad in het geheugen laden. Voor enorme bestanden (>500 MB) kun je overwegen om in batches te verwerken of de **cell‑by‑cell**‑API te gebruiken. + +## Volledig, uitvoerbaar voorbeeld + +Hieronder staat het complete programma dat je kunt compileren en uitvoeren als console‑app. Vervang `YOUR_DIRECTORY` door een daadwerkelijk mappad op jouw machine. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**De code uitvoeren:** +1. Open een terminal of Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Vervang `Program.cs` door het bovenstaande fragment. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Je zou console‑output moeten zien die de verwijdering bevestigt en de locatie van het opgeslagen bestand aangeeft. + +## Veelvoorkomende valkuilen & hoe ze te vermijden + +| Valkuil | Waarom het gebeurt | Oplossing | +|---------|--------------------|-----------| +| **Per ongeluk een ListObject‑kop verwijderen** | `DeleteRows` controleert geen verborgen tabelkoppen wanneer het bereik overlapt. | Zorg ervoor dat je start‑rij **na** elke tabelkop ligt, of gebruik de `ListObject`‑API om rijen binnen de tabel te verwijderen (`ListObject.DeleteRows`). | +| **Rij‑indices één te hoog/laag** | Aspose.Cells gebruikt nul‑gebaseerde indexering, terwijl Excel‑gebruikers denken in 1‑gebaseerde. | Vergeet niet 1 af te trekken van het Excel‑rij‑nummer bij het coderen. | +| **Formules breken na verwijdering** | Het verwijderen van rijen kan `#REF!`‑fouten veroorzaken als formules naar de verwijderde rijen verwijzen. | Aspose.Cells werkt de meeste formules automatisch bij, maar controleer eventuele externe verwijzingen of benoemde bereiken. | +| **Prestatie‑vertraging bij enorme bestanden** | Het verwijderen van veel rijen triggert interne herindexering. | Verwijder in batches (verwijder één groot bereik in één keer) in plaats van vele enkele‑rij‑verwijderingen. Gebruik `DeleteRows(start, count)` waar mogelijk. | + +## Volgende stappen & gerelateerde onderwerpen + +- **Specifieke rijen verwijderen op basis van celwaarden:** Combineer de conditionele lus uit de FAQ met `DeleteRows`. +- **Bulk‑rij‑invoeging:** Gebruik `InsertRows` om tijdelijke rijen toe te voegen voordat je data invoert. +- **Werken met tabellen (ListObjects):** Verken `ListObject`‑methoden voor rij‑niveau bewerkingen binnen gestructureerde tabellen. +- **Exporteren naar CSV na rij‑verwijdering:** Roep `workbook.Save("output.csv", SaveFormat.Csv)` aan om een schone CSV zonder de verwijderde rijen te genereren. + +Elk van deze onderwerpen bouwt voort op de kern‑**load excel file c#**‑workflow die je zojuist onder de knie hebt, waardoor je Excel‑bestanden programmatic kunt verfijnen. + +## Conclusie + +We hebben een praktisch scenario van **load excel file c#** doorlopen, laten zien **hoe rijen te verwijderen**, en de nuances behandeld van **specifieke rijen verwijderen** en **gegevensrijen verwijderen** met Aspose.Cells. Door de werkmap te laden, `DeleteRows` aan te roepen en het resultaat op te slaan, bereik je betrouwbare **c# excel row deletion** zonder de overhead van COM‑interop. + +Probeer het op een echte dataset—misschien een verkooprapport opschonen of test‑rijen uit een sjabloon strippen. Zodra je er vertrouwd mee bent, experimenteer je met conditionele verwijderingen en tabel‑bewuste bewerkingen. De API is robuust genoeg voor zowel eenvoudige scripts als enterprise‑grade batch‑processoren. + +Happy coding, en voel je vrij om een reactie achter te laten als je ergens tegenaan loopt! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/dutch/net/worksheet-operations/_index.md index 3e035cc6bb..8c057c80ea 100644 --- a/cells/dutch/net/worksheet-operations/_index.md +++ b/cells/dutch/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Leer hoe u een grafische achtergrond in ODS-bestanden instelt met Aspose.Cells v Leer hoe u de revisieloggeschiedenis in gedeelde werkmappen kunt bijwerken met Aspose.Cells voor .NET. Vereenvoudig samenwerking en houd uw documentgegevens overzichtelijk. ### [Gebruik de Sheet_SheetId-eigenschap van OpenXml in een werkblad](./utilize-sheet-sheetid-property/) Ontgrendel de kracht van Excel met Aspose.Cells voor .NET. Leer hoe u effectief met werkblad-ID's kunt werken met onze stapsgewijze handleiding. +### [Werkbladen maken – Stapsgewijze handleiding voor dynamische Excel-generatie](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Leer hoe u dynamisch werkbladen maakt in Excel met een stapsgewijze handleiding en voorbeeldcode. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/dutch/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..0e37184010 --- /dev/null +++ b/cells/dutch/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,277 @@ +--- +category: general +date: 2026-03-21 +description: Leer hoe je werkbladen maakt, Excel-werkbladen genereert met dynamische + werkbladnamen en een werkmap opslaat als XLSX met Aspose.Cells in C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: nl +og_description: Hoe werkbladen in Excel te maken met Aspose.Cells, Excel-sheets met + dynamische werkbladnamen te genereren en de werkmap op te slaan als XLSX. +og_title: Hoe je werkbladen maakt – Complete C#‑tutorial +tags: +- Aspose.Cells +- C# +- Excel automation +title: Hoe maak je werkbladen – Stapsgewijze gids voor dynamische Excel‑generatie +url: /nl/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe werkbladen – Complete C#‑tutorial te maken + +Heb je je ooit afgevraagd **hoe je werkbladen** on‑the‑fly kunt maken zonder elke keer Excel handmatig te openen? Je bent niet de enige. Veel ontwikkelaars lopen tegen een muur aan wanneer ze **Excel‑bladen** moeten genereren vanuit gegevensbronnen en elk blad een betekenisvolle, dynamische naam willen geven. Het goede nieuws? Met Aspose.Cells kun je het hele proces automatiseren, **master‑sheet verwerken**, en uiteindelijk **werkmap opslaan als XLSX** in slechts een paar regels code. + +In deze tutorial lopen we een real‑world scenario door: beginnen met een lege werkmap, een smart‑marker‑token invoegen dat Aspose vertelt welke detailbladen aangemaakt moeten worden, een naamgevingspatroon configureren zodat elk blad een unieke naam krijgt, en tenslotte het resultaat opslaan op schijf. Aan het einde heb je een kant‑klaar C#‑programma dat werkbladen maakt, Excel‑bladen genereert met dynamische werkbladnamen, en de werkmap opslaat als XLSX—zonder de UI aan te raken. + +> **Prerequisites** +> • .NET 6+ (of .NET Framework 4.6+). +> • Aspose.Cells for .NET (de gratis trial werkt voor deze demo). +> • Basiskennis van C#—geen diepgaande Excel‑interop‑trucs nodig. + +--- + +## Overzicht van wat we gaan bouwen + +- **Master‑sheet** met een smart‑marker‑placeholder (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** die een gegevensbron (bijv. een `DataTable`) leest en een nieuw werkblad maakt voor elke afdeling. +- **Dynamische werkbladnamen** volgens het patroon `Dept_{0}` waarbij `{0}` wordt vervangen door de afdelingsnaam. +- **Eind‑XLSX‑bestand** opgeslagen in een map die jij opgeeft. + +Dat is alles. Simpel, maar krachtig genoeg voor facturen, rapporten of elke multi‑tab Excel‑output. + +--- + +![Diagram showing how a master sheet is processed to generate multiple dynamic worksheets](/images/how-to-create-worksheets-diagram.png "How to create worksheets diagram") + +*Alt text: illustratie van hoe werkbladen te maken met dynamische werkbladnamen met behulp van Aspose.Cells.* + +--- + +## Stap 1: Het project opzetten en Aspose.Cells toevoegen + +### Waarom dit belangrijk is +Voordat er code wordt uitgevoerd, moet de compiler weten waar de klassen `Workbook`, `Worksheet` en `SmartMarkerProcessor` zich bevinden. Het toevoegen van het NuGet‑pakket zorgt ervoor dat je de nieuwste, volledig uitgeruste API hebt. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro tip:** Als je Visual Studio gebruikt, klik met de rechtermuisknop op het project → *Manage NuGet Packages* → zoek naar *Aspose.Cells* en installeer de nieuwste stabiele versie. + +--- + +## Stap 2: Een nieuwe werkmap en de master‑sheet maken + +### Wat we doen +We beginnen met een lege werkmap en pakken vervolgens het eerste werkblad (index 0). Dit blad fungeert als de **master‑sheet** die de smart‑marker‑token bevat. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +De `Workbook`‑klasse is de container voor alle werkbladen. Standaard maakt hij één blad genaamd *Sheet1*; door het te hernoemen naar “Master” wordt het uiteindelijke bestand makkelijker te navigeren. + +--- + +## Stap 3: Een smart‑marker‑token voor detailbladnamen invoegen + +### Waarom een smart‑marker gebruiken? +Smart markers laten Aspose.Cells placeholders vervangen door gegevens tijdens runtime. De token `«DetailSheetNewName:Dept»` vertelt de processor: *“Wanneer je dit ziet, maak een nieuw detailblad voor elke rij in de `Dept`‑kolom.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Je kunt de token overal plaatsen; wij kozen **A1** voor de duidelijkheid. Wanneer de processor wordt uitgevoerd, vervangt hij de token door de daadwerkelijke afdelingsnaam en genereert een overeenkomstig werkblad. + +--- + +## Stap 4: De gegevensbron voorbereiden + +### Hoe de gegevens de bladcreatie aansturen +Aspose.Cells werkt met elke `IEnumerable`‑gegevensbron. Voor deze demo gebruiken we een `DataTable` met één kolom genaamd `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Wat als je meer kolommen hebt?** +> De processor negeert extra kolommen tenzij je ze in aanvullende smart markers aanroept. Dit houdt de bladgeneratie lichtgewicht. + +--- + +## Stap 5: De SmartMarkerProcessor en naamgevingspatroon configureren + +### Dynamische werkbladnamen in actie +We willen dat elk nieuw blad wordt genoemd `Dept_Finance`, `Dept_HR`, enz. De optie `DetailSheetNewName` laat ons een patroon definiëren waarbij `{0}` wordt vervangen door de daadwerkelijke afdelingsnaam. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Als een afdeling twee keer voorkomt, voegt Aspose automatisch een numeriek achtervoegsel toe (bijv. `Dept_Finance_1`) om dubbele bladnamen te voorkomen. + +--- + +## Stap 6: De master‑sheet verwerken om detailbladen te genereren + +### De kern van **process master sheet** +Het aanroepen van `Process` doet het zware werk: het scant de master‑sheet op smart markers, maakt nieuwe werkbladen, kopieert de master‑lay‑out, en vult elk werkblad met de rij‑gegevens. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Na deze oproep bevat de werkmap één master‑sheet plus vier detailbladen—elk genoemd volgens ons patroon en gevuld met de afdelingsnaam in cel A1. + +--- + +## Stap 7: De werkmap opslaan als XLSX + +### Laatste stap—**save workbook as XLSX** +Nu de werkbladen bestaan, schrijven we het bestand naar schijf. Je kunt elk pad kiezen; zorg er alleen voor dat de map bestaat. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Het openen van `DetailSheets.xlsx` toont: + +| Bladnaam | Cel A1 (Inhoud) | +|----------|-----------------| +| Master | «DetailSheetNewName:Dept» (ongewijzigd) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Edge case:** Als de uitvoermap niet bestaat, gooit `Save` een `DirectoryNotFoundException`. Plaats de oproep in een try‑catch‑blok of maak de map van tevoren aan. + +--- + +## Volledig werkend voorbeeld + +Alles bij elkaar, hier is het complete programma dat je kunt kopiëren‑en‑plakken in een console‑applicatie: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Voer het programma uit, open het resulterende bestand, en je ziet precies de eerder beschreven lay‑out. Geen handmatig kopiëren‑plakken, geen COM‑interop—alleen nette C#‑code die **Excel‑bladen** genereert met **dynamische werkbladnamen**. + +--- + +## Veelgestelde vragen & valkuilen + +| Vraag | Antwoord | +|-------|----------| +| *Kan ik een DataSet met meerdere tabellen gebruiken?* | Ja. Geef de juiste tabel door aan `Process` of gebruik een woordenboek van tabellen. | +| *Wat als ik meer dan één smart‑marker op de master‑sheet nodig heb?* | Plaats extra tokens zoals `«DetailSheetNewName:Region»` en configureer een apart naamgevingspatroon indien nodig. | +| *Wordt de master‑sheet behouden in het uiteindelijke bestand?* | Standaard ja. Als je die niet nodig hebt, roep `workbook.Worksheets.RemoveAt(0)` aan na het verwerken. | +| *Hoe gaat Aspose om met zeer grote datasets?* | Het streamt gegevens efficiënt, maar je kunt `MemorySetting` verhogen als je geheugenlimieten bereikt. | +| *Kan ik exporteren naar CSV in plaats van XLSX?* | Absoluut—gebruik `workbook.Save("file.csv", SaveFormat.Csv)`. Dezelfde blad‑creatie‑logica geldt. | + +--- + +## Volgende stappen + +Nu je **hoe je werkbladen** dynamisch maakt kent, kun je verkennen: + +- **Workbook opslaan als XLSX** met wachtwoordbeveiliging (`workbook.Protect("pwd")`). +- **Excel‑bladen genereren** vanuit JSON‑ of XML‑bronnen met `JsonDataSource` of `XmlDataSource`. +- **Stijlen toepassen** op elk gegenereerd blad (lettertypen, kleuren) via `Style`‑objecten. +- **Cellen samenvoegen** of automatisch formules invoegen voor samenvattende rapporten. + +Al deze uitbreidingen bouwen voort op hetzelfde **process master sheet**‑concept, dus de overgang verloopt moeiteloos. + +--- + +## Conclusie + +We hebben de volledige pijplijn behandeld: van het initialiseren van een werkmap, een smart‑marker invoegen, **dynamische werkbladnamen** configureren, de master‑sheet verwerken om **Excel‑bladen** te **genereren**, en uiteindelijk de werkmap **opslaan als XLSX**. Het voorbeeld is compleet, uitvoerbaar, en laat best practices zien voor zowel prestaties als onderhoudbaarheid. + +Probeer het, pas het naamgevingspatroon aan, voed het met echte bedrijfsdata, en zie je Excel‑automatisering van de grond komen. Als je ergens vastloopt, laat een reactie achter—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/calculation-engine/_index.md b/cells/english/net/calculation-engine/_index.md index b139daad59..b6f2a03297 100644 --- a/cells/english/net/calculation-engine/_index.md +++ b/cells/english/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ Learn how to create and integrate custom calculation engines in your .NET applic ### [Optimize Excel Calculation Time with Recursive Options in Aspose.Cells for .NET](./optimize-calculation-time-recursive-aspose-cells-net) Learn how to optimize Excel calculation times using recursive options in Aspose.Cells for .NET. This guide covers setup, performance tips, and practical applications. +### [How to Calculate Workbook in C# – Sort & Formula Guide](./how-to-calculate-workbook-in-c-sort-formula-guide/) +Learn how to calculate an entire workbook in C#, including sorting data and applying formulas efficiently with Aspose.Cells .NET. ## Benefits @@ -74,4 +76,4 @@ Explore our tutorials to master the calculation engine capabilities in Aspose.Ce {{< /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/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/english/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..392b9bc4be --- /dev/null +++ b/cells/english/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-21 +description: How to calculate workbook in C# with Aspose.Cells – learn to create excel + workbook, populate excel cells, calculate excel formulas, and use sort function. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: en +og_description: How to calculate workbook in C# quickly. This tutorial shows how to + create excel workbook, populate excel cells, calculate excel formulas, and use sort + function. +og_title: How to Calculate Workbook in C# – Complete Sorting Guide +tags: +- C# +- Aspose.Cells +- Excel Automation +title: How to Calculate Workbook in C# – Sort & Formula Guide +url: /net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Calculate Workbook in C# – Sort & Formula Guide + +Ever wondered **how to calculate workbook** values on the fly without opening Excel? You're not alone. In many automation scenarios you need to spin up an Excel file, drop some numbers in, sort them, and pull the results back into your .NET app—all programmatically. + +In this guide we’ll walk through exactly that: we’ll **create excel workbook**, **populate excel cells**, attach a **SORT** formula, and finally **calculate excel formulas** so you can read the sorted array directly from C#. By the end you’ll have a runnable snippet that you can drop into any project that references Aspose.Cells (or a similar library). + +## Prerequisites + +- .NET 6+ (the code also works on .NET Framework 4.7.2) +- Aspose.Cells for .NET (free trial NuGet package `Aspose.Cells`) +- A basic understanding of C# syntax +- No need for an installed copy of Microsoft Excel; the library does the heavy lifting for you + +If you’re comfortable with those, let’s dive in. + +## How to Calculate Workbook – Initializing the Workbook + +The very first thing you have to do is spin up a fresh workbook object. Think of it as opening a brand‑new Excel file that’s completely empty. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Why this matters:** The `Workbook` class is the entry point for every operation—without it you can’t add sheets, cells, or formulas. Initializing it correctly ensures you’re working with a clean slate. + +## Create Excel Workbook and Access Worksheet + +Now that the workbook exists, we need to make sure we’re pointing at the right worksheet. Most libraries default to a single sheet named “Sheet1”, but you can rename it or add more if you like. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Pro tip:** Naming sheets early helps when you later reference them in formulas (`'Data'!A1:A10`). It also makes debugging easier. + +## Populate Excel Cells with Data + +Next up, we’ll **populate excel cells** with the numbers we want to sort. The example uses just two cells, but you can extend the range to dozens of rows. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Why we use `PutValue`** – It automatically detects the data type (int, double, string, etc.) and stores it appropriately, sparing you from manual type casting. + +## Apply SORT Function via Formula + +Excel’s `SORT` function does exactly what its name suggests: it returns a sorted array without altering the original data. We’ll drop that formula into cell `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Edge case note:** `SORT` returns an **array** result. In older Excel versions (pre‑Office 365) this would require Ctrl+Shift+Enter. With Aspose.Cells you get the array automatically when you calculate the workbook. + +## Calculate Excel Formulas to Get Results + +At this point the workbook only knows *what* to calculate, not *that* it should do it. Calling `CalculateFormula` triggers the engine to evaluate every formula, including our `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Expected console output** + +``` +Sorted array: {2, 5} +``` + +> **What just happened?** +> 1. The workbook created an internal calculation engine. +> 2. The `SORT` formula examined the range `A1:A2`. +> 3. The engine produced a new array, which we fetched from `B1`. + +If you change the values in `A1` and `A2` (or extend the range) and re‑run `CalculateFormula`, the output updates automatically—no extra code needed. + +## Use Sort Function on Larger Datasets (Optional) + +Most real‑world scenarios involve more than two rows. Here’s a quick tweak that works for any number of entries: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Why you might need this:** Sorting large ranges lets you generate leaderboards, rank‑order financial data, or simply clean up imported CSVs before further processing. + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **`#VALUE!` in B1** | The `SORT` formula references an empty or non‑numeric range. | Ensure every cell in the source range contains a number or text that can be sorted. | +| **Array truncation** | Trying to read an array from a single cell without casting. | Cast `worksheet.Cells["B1"].Value` to `object[]` (or the appropriate type). | +| **Performance slowdown** | Re‑calculating huge workbooks after every tiny change. | Call `CalculateFormula` only after you’ve finished mutating the sheet, or use `CalculateFormulaOptions` to limit scope. | + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Result screenshot** +> ![how to calculate workbook result in Excel](https://example.com/images/sorted-result.png "how to calculate workbook result in Excel") + +The picture above shows the workbook after calculation—cell **B1** contains the sorted array `{2, 5}`. + +## Conclusion + +We’ve just covered **how to calculate workbook** values programmatically: create an Excel workbook, populate Excel cells, embed a `SORT` formula, and finally **calculate Excel formulas** to extract the sorted data. The approach works for tiny two‑cell examples and scales gracefully to larger datasets. + +What’s next? Try combining this with other functions like `FILTER`, `UNIQUE`, or even custom VBA‑style logic via `WorksheetFunction`. You can also write the workbook to disk (`workbook.Save("Sorted.xlsx")`) and open it in Excel for visual verification. + +Feel free to experiment—swap out the numbers, change the range, or chain multiple formulas together. Automation is all about iterating quickly, and now you have a solid foundation to build on. + +Happy coding, and may your workbooks always calculate exactly as you expect! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/english/net/conversion-and-rendering/_index.md index 1e3ccee6ba..4cda25b6c1 100644 --- a/cells/english/net/conversion-and-rendering/_index.md +++ b/cells/english/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Learn to advanced convert Excel to PDF seamlessly with Aspose.Cells in .NET. Fol Learn how to convert an Excel worksheet to SVG using Aspose.Cells for .NET with this step-by-step guide. Perfect for .NET developers looking to render Excel to SVG. ### [Converting Excel to MHTML in .NET](./converting-excel-to-mhtml/) Learn how to efficiently convert Excel files to MHTML format in .NET with Aspose.Cells, boosting your reporting and data-sharing capabilities. +### [Create Image from Excel – Export Pivot to PNG in C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Learn how to export Excel pivot tables as PNG images using Aspose.Cells for .NET in C#, with a clear step-by-step guide. {{< /blocks/products/pf/tutorial-page-section >}} @@ -45,4 +47,4 @@ Learn how to efficiently convert Excel files to MHTML format in .NET with Aspose {{< /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-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/english/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..042c93a6a8 --- /dev/null +++ b/cells/english/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-21 +description: Create image from Excel in C# using Aspose.Cells. Learn how to convert + Excel to image, export pivot, and save image as PNG with a complete, runnable example. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: en +og_description: Create image from Excel in C# quickly. This guide shows how to convert + Excel to image, export pivot, and save image as PNG with clear code. +og_title: Create Image from Excel – Export Pivot to PNG in C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Create Image from Excel – Export Pivot to PNG in C# +url: /net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Image from Excel – Export Pivot to PNG in C# + +Ever needed to **create image from Excel** but weren't sure which API to pull? You're not alone—many devs hit that roadblock when they try to turn a live pivot table into a sharable PNG. + +In this tutorial we’ll walk through a complete, ready‑to‑run solution that **converts Excel to image**, shows **how to export pivot**, and explains **how to save image** as a PNG file. By the end you’ll have a single method that does the whole job, plus tips for edge cases you might run into. + +## What You’ll Need + +- **Aspose.Cells for .NET** (the NuGet package `Aspose.Cells`). It's a commercial library but offers a free evaluation mode—perfect for testing. +- .NET 6+ (or .NET Framework 4.6+). +- A simple Excel workbook (`Pivot.xlsx`) that contains at least one pivot table. +- Any IDE you like—Visual Studio, Rider, or even VS Code works. + +That’s it. No extra DLLs, no COM interop, and no messy Excel‑automation tricks. + +Now, let’s dive into the code. + +## Step 1: Load the Workbook – Create Image from Excel + +The first thing we do is open the Excel file that holds the pivot table. This step is crucial because the renderer works against an in‑memory `Workbook` object. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Why this matters:* Loading the workbook gives us access to the **pivot** and any formatting that will be respected when we later **convert Excel to image**. If you skip this, the renderer has nothing to work with. + +## Step 2: Configure Export Options – Convert Excel to Image + +Next we tell Aspose how we want the final picture to look. The `ImageOrPrintOptions` class lets us pick PNG, set DPI, and even control background color. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Why this matters:* By setting a high DPI we ensure the **export Excel to PNG** looks crisp, even when the pivot contains many rows. You can lower the DPI if file size is a concern. + +## Step 3: Render the Worksheet – How to Export Pivot + +Now comes the heart of the process: turning the worksheet (with its pivot) into an image. The `WorksheetRender` class does the heavy lifting. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Why this matters:* This is where we **how to export pivot** into a visual format. The renderer respects all pivot formatting, slicers, and conditional styles, so the PNG looks exactly like what you see in Excel. + +## Step 4: Put It All Together – How to Save Image + +Finally, we expose a single public method that ties every piece together. This is the method you’ll call from your app, service, or console tool. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Full Working Example + +Create a new console project, add the NuGet package `Aspose.Cells`, then drop the following `Program.cs` in: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Expected result:** After you run the program, `PivotImage.png` will appear in the folder you specified, showing a pixel‑perfect snapshot of the pivot table. + +![Create image from Excel example](https://example.com/placeholder.png "Create image from Excel example") + +*Alt text:* create image from excel example showing exported pivot table as PNG. + +## Common Questions & Edge Cases + +### What if my workbook has multiple worksheets? + +The helper currently grabs `Worksheets[0]`. To target a specific sheet, pass the sheet name: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### The PNG is blurry—how do I fix it? + +Increase `HorizontalResolution` and `VerticalResolution` in `GetImageOptions`. Values of 300–600 DPI usually produce crisp results. Remember, higher DPI means larger file size. + +### My pivot spans more than one page—can I export all pages? + +Yes. Loop over `renderer.PageCount` and call `ToImage(pageIndex, ...)` for each page, or set `OnePagePerSheet = false` to get separate images per page. + +### I only need a portion of the sheet (e.g., a specific range)? + +Use `ImageOrPrintOptions` to set `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +That way you **convert Excel to image** for just the area you care about. + +### Does this work with .xls (Excel 97‑2003) files? + +Absolutely. Aspose.Cells abstracts the file format, so you can feed `.xls`, `.xlsx`, `.xlsm`, or even `.ods` and still **export excel to png**. + +## Pro Tips & Gotchas + +- **License matters**: In evaluation mode Aspose adds a watermark. Deploy a proper license for production. +- **Memory usage**: Rendering large workbooks can be memory‑intensive. Dispose of the `Workbook` object promptly or wrap it in a `using` block. +- **Thread safety**: `Workbook` isn’t thread‑safe. Create a new instance per request if you’re in a web service. +- **Image format flexibility**: If you need JPEG or BMP, just change `ImageFormat` in `GetImageOptions`. + +## Conclusion + +You now have a solid, end‑to‑end recipe to **create image from Excel**, specifically to **export pivot** data as a high‑quality PNG. The snippet above shows the full, runnable code, explains **how to save image**, and covers variations like multiple sheets or custom print areas. + +Next steps? Try chaining this exporter with an email service to send the PNG automatically, or experiment with `ImageOrPrintOptions` to generate PDFs instead of PNGs. The same pattern works for **convert excel to image** tasks across many formats. + +Got more questions? Drop a comment, 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/converting-excel-files-to-other-formats/_index.md b/cells/english/net/converting-excel-files-to-other-formats/_index.md index a51db79223..e140fba1ff 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 @@ -66,6 +66,8 @@ Learn how to save a workbook in the Strict Open XML Spreadsheet format using Asp description: Learn how to track document conversion progress programmatically using Aspose.Cells for .NET in this detailed tutorial. ### [Tracking Document Conversion Progress for TIFF Programmatically in .NET](./tracking-document-conversion-progress-for-tiff/) Learn to track TIFF conversion progress programmatically using Aspose.Cells for .NET with our step-by-step guide. Enhance your document management skills. +### [Save Excel as Docx with C# – Complete Step‑by‑Step Guide](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Learn how to save an Excel workbook as a DOCX file using C# and Aspose.Cells with a detailed step‑by‑step guide. {{< /blocks/products/pf/tutorial-page-section >}} @@ -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/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/english/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..2bc56f5a86 --- /dev/null +++ b/cells/english/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-21 +description: Save Excel as Docx in C# — learn how to convert Excel to Word, embed + charts, and load Excel workbook C# using Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: en +og_description: Save Excel as Docx in C# explained in the first sentence. Follow this + tutorial to convert Excel to Word, embed charts, and load Excel workbook C#. +og_title: Save Excel as Docx with C# – Complete Guide +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Save Excel as Docx with C# – Complete Step‑by‑Step Guide +url: /net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Save Excel as Docx with C# – Complete Step‑by‑Step Guide + +Ever needed to **save Excel as Docx** but weren’t sure where to start? You’re not alone—many developers hit the same wall when they want to *convert Excel to Word* while keeping charts intact. In this tutorial we’ll walk through the exact code you need, explain why each line matters, and show you how to embed Excel charts without losing quality. + +We’ll also sprinkle in a few extra tips on **load Excel workbook C#** scenarios, so by the end you’ll feel comfortable converting Excel to Docx in any .NET project. No vague references, just a concrete, runnable example you can copy‑paste right now. + +--- + +## What This Guide Covers + +- Loading an existing `.xlsx` file with Aspose.Cells (or any compatible library). +- Optional manipulation of worksheets or charts before conversion. +- Saving the workbook as a `.docx` file while preserving embedded charts. +- Verifying the output and handling common edge cases like large workbooks or unsupported chart types. + +If you’re wondering **why you’d want to convert Excel to Docx**, think of reports you need to send to non‑technical stakeholders—Word documents are universally accepted, and they keep the visual fidelity of your charts. Let’s dive in. + +--- + +## Prerequisites – Load Excel Workbook C# + +Before we write any code, make sure you have the following: + +| Requirement | Reason | +|-------------|--------| +| **.NET 6.0 or later** | Modern runtime, better performance, and full support for Aspose.Cells. | +| **Aspose.Cells for .NET** (NuGet package `Aspose.Cells`) | Provides the `Workbook` class used to read Excel and export to DOCX. | +| **Visual Studio 2022** (or any IDE you prefer) | Handy for debugging and IntelliSense. | +| **An Excel file with charts** (`AdvancedCharts.xlsx`) | To see the *embed excel charts* feature in action. | + +You can install the library via the Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** If you’re on a CI/CD pipeline, add the package to your `*.csproj` so restores happen automatically. + +--- + +## Step 1 – Load the Excel Workbook (Save Excel as Docx Starts Here) + +The first thing we do is load the source workbook. This is where the **load excel workbook c#** phrase comes into play. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Why this matters:** Loading the file gives you access to every worksheet, chart, and style. Without this step, there’s nothing to convert, and the API can’t preserve your embedded graphics. + +--- + +## Step 2 – (Optional) Tweak the Workbook Before Conversion + +You might want to rename a sheet, hide a column, or even change a chart’s title. This step is optional but shows how flexible the conversion can be. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Edge case:** Some older chart types (e.g., Radar) may not render perfectly in Word. Test your specific charts after conversion. + +--- + +## Step 3 – Save the Workbook as a Word Document (The Core “Save Excel as Docx” Action) + +Now comes the moment of truth: we actually **save Excel as Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +When this runs, Aspose.Cells writes every worksheet as a table inside the Word file and embeds each chart as a high‑resolution image. The result is a fully editable `.docx` that looks just like the original Excel view. + +> **Why choose DOCX over PDF?** DOCX lets recipients edit text or replace charts later, whereas PDF is a static snapshot. + +--- + +## Step 4 – Verify the Output and Troubleshoot Common Issues + +After the conversion finishes, open `ChartsInWord.docx` in Microsoft Word: + +1. **Check that each worksheet appears as a separate section** – you should see tables mirroring your Excel data. +2. **Confirm that charts are embedded** – they should be selectable images, not broken placeholders. +3. **If a chart is missing**, make sure the chart type is supported by Aspose.Cells (see the [official compatibility list](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tip:** For large workbooks, consider increasing the `MemorySetting` of Aspose.Cells to avoid `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Full Working Example (Copy‑Paste Ready) + +Below is the complete program, ready to compile. Replace `YOUR_DIRECTORY` with the actual folder path on your machine. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Expected result:** A Word document (`ChartsInWord.docx`) that contains all worksheets as tables and every chart as an embedded, high‑resolution image. Open it in Word, and you’ll see the exact visual layout you had in Excel. + +--- + +## Frequently Asked Questions (FAQ) + +**Q: Can I convert multiple Excel files in a loop?** +A: Absolutely. Wrap the conversion logic in a `foreach (var file in Directory.GetFiles(...))` loop and reuse the same `Workbook` instance pattern. + +**Q: Does this also work with `.xls` files?** +A: Yes—Aspose.Cells supports legacy formats. Just change the source extension; the same `SaveFormat.Docx` call applies. + +**Q: What if I need to keep formulas when converting?** +A: Word doesn’t support Excel formulas natively. The conversion flattens formulas into their calculated values. If you need live calculations, consider embedding the workbook as an OLE object instead. + +**Q: Is there a way to control the image resolution of charts?** +A: Use `ImageOrPrintOptions` before saving: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Embedding Excel Charts Directly into Word (Beyond Save Excel as Docx) + +If you prefer the chart to remain editable in Word, you can embed the entire Excel sheet as an OLE object: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +This technique *embed excel charts* as live objects, letting end users double‑click to edit them in Excel directly from Word. It’s a handy alternative when you need interactivity. + +--- + +## Conclusion + +You now have a solid, end‑to‑end solution for **save Excel as docx** using C#. The tutorial covered loading the workbook, optional tweaks, the actual save operation, verification steps, and even a quick look at embedding charts for editable scenarios. By following the code above you can **convert Excel to Word**, preserve every chart, and handle large files gracefully. + +Ready for the next challenge? Try automating a batch conversion, integrate this logic into an ASP.NET Core API, or explore **convert Excel to docx** for multi‑sheet dashboards. The skills you’ve just picked up are a foundation for any document‑automation project. + +Got questions or a tricky workbook that refuses to convert? Drop a comment, and we’ll troubleshoot together. Happy coding! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..5f20ea0df9 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 – Add Custom Property in C#](./how-to-save-xlsb-add-custom-property-in-c/) +Learn how to save XLSB files and add a custom property in C# 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-add-custom-property-in-c/_index.md b/cells/english/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..b14e6cf851 --- /dev/null +++ b/cells/english/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: Learn how to save xlsb files in C# while adding a custom property like + ProjectId. This guide shows how to create an Excel workbook, add custom property, + and verify it. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: en +og_description: Discover how to save xlsb files and add a custom property such as + ProjectId using C#. Step‑by‑step guide with complete code. +og_title: How to Save XLSB – Add Custom Property in C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: How to Save XLSB – Add Custom Property in C# +url: /net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Save XLSB – Add Custom Property in C# + +Ever wondered **how to save xlsb** files while also tucking a piece of metadata inside? Maybe you’re building a reporting engine that needs a hidden ProjectId, or you simply want to tag worksheets for downstream processing. **How to save xlsb** isn’t rocket science, but mixing it with a custom property adds a tiny twist that many developers overlook. + +In this tutorial we’ll walk through creating an Excel workbook, adding a custom property (yes, *add custom property*), persisting the file as an **XLSB** binary workbook, and finally loading it back to prove the property stuck around. Along the way we’ll also touch on **how to add custom property** values like a ProjectId, so you’ll leave with a reusable pattern for future projects. + +> **Pro tip:** If you’re already using the Aspose.Cells library (the code below does), you get native support for custom properties without any COM interop headaches. + +--- + +## Prerequisites + +- .NET 6+ (or .NET Framework 4.6+). +- Aspose.Cells for .NET – install via NuGet: `Install-Package Aspose.Cells`. +- Basic C# knowledge – nothing fancy, just a few `using` statements. + +That’s it. No Office installation, no interop, just pure managed code. + +--- + +## Step 1: How to Save XLSB – Create Excel Workbook + +The very first thing you need to do is create a fresh workbook object. Think of it as opening a blank Excel file that lives only in memory until you decide to write it to disk. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Why start with a workbook? Because **create excel workbook** is the foundation for any further manipulation—whether you later insert formulas, charts, or custom properties. The `Workbook` class abstracts the whole file, while `Worksheets` give you access to individual tabs. + +--- + +## Step 2: Add Custom Property to Worksheet + +Now comes the fun part—**add custom property**. In Aspose.Cells you can attach a property directly to a worksheet (or to the workbook itself). Here we’ll store a numeric ProjectId that downstream services can read without touching the visible cells. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? Just call `CustomProperties.Add(name, value)`. The API automatically handles the underlying XML, so you don’t have to worry about the low‑level details. This is the safest way to embed metadata that isn’t visible to the end‑user. + +--- + +## Step 3: Save the Workbook as XLSB + +With the workbook ready and the custom property attached, it’s time to **how to save xlsb**. The XLSB format stores data in a binary representation, which is usually smaller and faster to open than the classic XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Saving as XLSB is as simple as passing `SaveFormat.Xlsb` to the `Save` method. If you’re wondering whether this will strip out the custom property—rest assured, Aspose.Cells preserves both workbook‑level and worksheet‑level properties in the binary file. + +--- + +## Step 4: Verify the Custom Property + +A good habit is to reload the file and confirm that the property survived the round‑trip. This also demonstrates **how to add custom property** later on if you need to update it. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +If the console prints `12345`, you’ve successfully **how to save xlsb** *and* **add project id** in one go. The property lives inside the file’s internal metadata, invisible to the UI but perfectly readable by code. + +--- + +## Additional Tips: Adding Multiple Properties & Edge Cases + +### Adding More Than One Property + +You can stack as many properties as you like: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Updating an Existing Property + +If a property already exists, just assign a new value: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Handling Missing Properties + +Attempting to read a non‑existent property throws a `KeyNotFoundException`. Guard against it: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Cross‑Version Compatibility + +XLSB works on Excel 2007 + and on the web version of Excel. However, older Office versions (< 2007) can’t open XLSB files. If you need broader compatibility, consider saving a second copy as XLSX. + +### Performance Considerations + +Binary XLSB files are typically 30‑50 % smaller than XLSX, and they load faster. For large data‑sets (hundreds of thousands of rows), the speed gain can be noticeable. + +--- + +## Full Working Example + +Below is the entire program you can copy‑paste into a console project. It includes all the steps, error handling, and comments you need to get up and running instantly. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Expected output** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +If you see the above, you’ve mastered **how to save xlsb**, **add custom property**, and **add project id**—all in a tidy, reusable snippet. + +--- + +## Frequently Asked Questions + +**Q: Does this work with .NET Core?** +A: Absolutely. Aspose.Cells is .NET Standard‑compatible, so the same code runs on .NET 5/6/7 and on .NET Framework. + +**Q: Can I add a custom property to the whole workbook instead of a single sheet?** +A: Yes. Use `workbook.CustomProperties.Add("Key", value);` to attach it at the workbook level. + +**Q: What if I need to store a large string (e.g., JSON) as a property?** +A: The API accepts strings of any length, but keep in mind that extremely large blobs may increase file size. For massive data, consider a hidden sheet instead. + +**Q: Is the custom property visible in Excel’s UI?** +A: Not directly. Users can view it via **File → Info → Properties → Advanced Properties → Custom**, but it won’t appear in the grid. + +--- + +## Conclusion + +We’ve covered **how to save xlsb** files in C# while **adding a custom property** such as a ProjectId. By following the step‑by‑step pattern—**create excel workbook**, **add custom property**, **save as XLSB**, and **verify**—you now have a solid, citation‑worthy reference that works both for search‑engine crawlers and AI assistants. + +Next, you might explore: + +- **How to add custom property** to multiple worksheets in a loop. +- Exporting data from a DataTable into the workbook before saving. +- Encrypting the XLSB file for extra security. + +Feel free to experiment, tweak the property names, or swap the binary format for XLSX if you need broader compatibility. Got a tricky scenario? Drop a comment, and we’ll troubleshoot together. Happy coding! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/english/net/excel-autofilter-validation/_index.md index 58196de285..43a088044f 100644 --- a/cells/english/net/excel-autofilter-validation/_index.md +++ b/cells/english/net/excel-autofilter-validation/_index.md @@ -23,19 +23,21 @@ This article provides a comprehensive overview of the Aspose.Cells for .NET tuto Ever felt overwhelmed sifting through heaps of data in Excel? You're not alone! The good news is that Aspose.Cells for .NET offers a superb solution—the autofilter feature! Just imagine how liberating it would be to slice through thousands of rows effortlessly, displaying only the data you need at any given moment. Pretty neat, right? -In the tutorial titled [Autofilter Begins With in Excel](./autofilter-begins-with-in-excel/), you'll find a user-friendly guide that takes you step-by-step through the autofilter process. It starts with the basics: how to set up your environment and initialize Aspose.Cells. From there, it dives into applying filters based on specific criteria. Think of it as giving your spreadsheet some stylish shades—suddenly, only the information you want to see comes into focus. You’ll learn how to work efficiently with dropdowns, making your data management tasks a breeze! +In the tutorial titled [Autofilter Begins With in Excel](./autofilter-begins-with-in-excel/), you'll find a user‑friendly guide that takes you step‑by‑step through the autofilter process. It starts with the basics: how to set up your environment and initialize Aspose.Cells. From there, it dives into applying filters based on specific criteria. Think of it as giving your spreadsheet some stylish shades—suddenly, only the information you want to see comes into focus. You’ll learn how to work efficiently with dropdowns, making your data management tasks a breeze! ## Ensuring Data Accuracy with Decimal Validation Now let’s talk about something that often slips through the cracks: data validation. Nothing’s more frustrating than realizing after hours of hard work that a single rogue entry has thrown your calculations off! To avoid this nightmare, you can implement decimal data validation with Aspose.Cells. -Our tutorial on [Decimal Data Validation in Excel](./decimal-data-validation-in-excel/) is your go-to resource for this. It will walk you through the process of managing decimal values, ensuring that your data remains reliable and clean. You'll learn about setting up validation rules that restrict inputs, allowing only specific formats or ranges. It’s like equipping your spreadsheet with a bouncer, only allowing the right data to enter! +Our tutorial on [Decimal Data Validation in Excel](./decimal-data-validation-in-excel/) is your go‑to resource for this. It will walk you through the process of managing decimal values, ensuring that your data remains reliable and clean. You'll learn about setting up validation rules that restrict inputs, allowing only specific formats or ranges. It’s like equipping your spreadsheet with a bouncer, only allowing the right data to enter! ## Excel Autofilter and Validation Tutorials ### [Autofilter Begins With in Excel](./autofilter-begins-with-in-excel/) Learn how to autofilter Excel rows using Aspose.Cells in .NET effortlessly with this comprehensive step-by-step guide. ### [Decimal Data Validation in Excel](./decimal-data-validation-in-excel/) Discover how to implement decimal data validation in Excel using Aspose.Cells for .NET with our easy-to-follow guide. Enhance data integrity effortlessly. +### [Remove AutoFilter from Excel – Complete C# Guide](./remove-autofilter-from-excel-complete-c-guide/) +Learn how to remove an Autofilter from Excel using Aspose.Cells in C# with a clear, step‑by‑step guide. {{< /blocks/products/pf/tutorial-page-section >}} @@ -43,4 +45,4 @@ Discover how to implement decimal data validation in Excel using Aspose.Cells fo {{< /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-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/english/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..47dba8fb73 --- /dev/null +++ b/cells/english/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: Learn how to remove AutoFilter from Excel using C#. This step‑by‑step + guide also shows how to delete AutoFilter, turn off AutoFilter Excel, and clear + Excel table filter. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: en +og_description: Remove AutoFilter from Excel with C#. This tutorial shows how to delete + AutoFilter, turn off AutoFilter Excel, and clear Excel table filter in just a few + lines of code. +og_title: Remove AutoFilter from Excel – Complete C# Guide +tags: +- C# +- Aspose.Cells +- Excel automation +title: Remove AutoFilter from Excel – Complete C# Guide +url: /net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Remove AutoFilter from Excel – Complete C# Guide + +Ever needed to **remove AutoFilter from Excel** but weren’t sure which API call actually disables it? You’re not the only one. In many reporting pipelines the filter UI gets in the way of downstream processing, so wiping it clean is a common requirement. In this tutorial we’ll walk through a concise, production‑ready solution that not only shows **how to delete AutoFilter**, but also explains **turn off AutoFilter Excel** style filters, and how to **clear Excel table filter** completely. + +> **What you’ll walk away with:** a ready‑to‑run C# program that loads an existing workbook, removes the filter from the first table, and saves a fresh copy without any lingering UI elements. + +## Prerequisites + +- .NET 6+ (or .NET Framework 4.7.2+) +- The **Aspose.Cells** NuGet package (the API we use in the code) +- A sample workbook (`TableWithFilter.xlsx`) that already contains a table with an AutoFilter applied +- A basic understanding of C# syntax (no deep Excel internals required) + +If you’ve got those, let’s dive in. + +--- + +## Step 1 – Install Aspose.Cells and Set Up the Project + +Before any code runs, you need the library that gives us `Workbook`, `Worksheet`, and `ListObject` classes. + +```bash +dotnet add package Aspose.Cells +``` + +> **Pro tip:** Use the free evaluation version for testing; just remember to set the license key before shipping to production. + +### Why this matters +Aspose.Cells abstracts the low‑level OOXML handling, so we can manipulate tables, filters, and styles without parsing XML ourselves. That’s why **remove autofilter from excel** tasks become a one‑liner instead of a handful of XML fiddles. + +--- + +## Step 2 – Load the Workbook that Contains the Table + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +The `Workbook` object represents the entire Excel file. Loading it first ensures we have a clean in‑memory copy to work on, which is crucial when you later **clear excel table filter** without affecting other sheets. + +--- + +## Step 3 – Grab the Worksheet and the Target Table + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +A **ListObject** is Aspose’s term for an Excel table. Even if your sheet has multiple tables, you can loop through `worksheet.ListObjects` and apply the same logic to each one. This flexibility answers the “what if I have several tables?” question that many developers ask. + +--- + +## Step 4 – Remove the AutoFilter from the Table + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Setting `AutoFilter` to `null` **removes the filter object entirely**, which is the most reliable way to **how to delete autofilter**. The alternative property `ShowAutoFilter` merely hides the UI but leaves the filter engine active—useful if you only want to **turn off autofilter excel** visually while preserving the underlying criteria. + +> **Edge case:** If the table doesn’t have an AutoFilter applied, `table.AutoFilter` will already be `null`. The line above is safe; it simply does nothing. + +--- + +## Step 5 – Save the Modified Workbook + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Saving to a new file keeps the original intact—a best practice when automating Excel transformations. After running the program, open `NoAutoFilter.xlsx`; you’ll see the table without any filter dropdowns, confirming that the **remove excel table filter** operation succeeded. + +--- + +## Verify the Result – What to Expect + +1. **Open `NoAutoFilter.xlsx`** in Excel. +2. **Select the table** – the little funnel icons next to column headers should be gone. +3. **Check other sheets** – they remain untouched, proving that we only **clear excel table filter** on the intended sheet. + +If the icons are still there, double‑check that you targeted the correct `ListObject` index. Remember, Excel tables are zero‑based in Aspose, so `ListObjects[0]` is the first table on the sheet. + +--- + +## Handling Multiple Tables or Worksheets + +Sometimes you need to **remove autofilter from excel** workbooks that contain several tables across different sheets. Here’s a quick extension: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +This loop guarantees that **turn off autofilter excel** everywhere, eliminating any hidden filters that could trip up downstream data imports. + +--- + +## Common Pitfalls & How to Avoid Them + +| Pitfall | Why it Happens | Fix | +|---------|----------------|-----| +| **Filter remains after saving** | Using `ShowAutoFilter = false` only hides UI. | Use `table.AutoFilter = null` to truly delete it. | +| **Wrong table index** | Assuming the first table is the one you need. | Inspect `worksheet.ListObjects.Count` and use meaningful names (`tbl.Name`). | +| **Missing license** | Evaluation version may insert watermarks. | Register your license early: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **File locked** | Excel still has the source file open. | Ensure the workbook is closed in Excel before running the script. | + +--- + +## Bonus: Adding an AutoFilter Back (If You Change Your Mind) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Having the reverse operation handy makes the tutorial a one‑stop shop for both **remove autofilter from excel** and **how to delete autofilter** scenarios. + +--- + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Running the code above will **remove autofilter from excel** for every table in the workbook, giving you a clean slate for further processing. + +--- + +## Conclusion + +We’ve just covered everything you need to **remove autofilter from excel** using C#. From installing Aspose.Cells, loading the workbook, locating the table, actually deleting the filter, to saving the clean file—each step was explained with the “why” behind it. You now know how to **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel**, and **clear excel table filter** in a single, reusable snippet. + +Ready for the next challenge? Try automating the addition of conditional formatting, or explore how to **add an AutoFilter back** programmatically. Both topics build directly on the concepts we just covered and will make your Excel automation toolbox even richer. + +Got questions, or spotted a scenario we didn’t cover? Drop a comment below—happy coding! + +--- + +![Screenshot showing an Excel sheet without any filter dropdowns – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/english/net/excel-comment-annotation/_index.md index 425e633fa9..cf75b5b6c9 100644 --- a/cells/english/net/excel-comment-annotation/_index.md +++ b/cells/english/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Learn how to add comments with images in Excel using Aspose.Cells for .NET. Enha Learn how to add comments to cells in Excel using Aspose.Cells for .NET. Step-by-step guide for beginners to enhance Excel functionality. ### [Format Comments - Font, Color, Alignment](./format-comments-font-color-alignment/) Discover how to format Excel comments effortlessly using Aspose.Cells for .NET. Customize font, size, and alignment to enhance your spreadsheets. +### [Create Excel Workbook C# – Add and Fill Comments with Smart Markers](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Learn how to create an Excel workbook in C# and add/fill comments using smart markers with Aspose.Cells for .NET. {{< /blocks/products/pf/tutorial-page-section >}} @@ -45,4 +47,4 @@ Discover how to format Excel comments effortlessly using Aspose.Cells for .NET. {{< /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-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/english/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..5ef5c49781 --- /dev/null +++ b/cells/english/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-21 +description: Create Excel workbook C# and learn how to add comment to Excel, fill + comment automatically using Smart Markers. Step‑by‑step guide for developers. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: en +og_description: Create Excel workbook C# and quickly add comment to Excel, then fill + comment using Smart Markers. Complete tutorial with code. +og_title: Create Excel Workbook C# – Add and Fill Comments +tags: +- C# +- Excel automation +- Aspose.Cells +title: Create Excel Workbook C# – Add and Fill Comments with Smart Markers +url: /net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Excel Workbook C# – Add and Fill Comments with Smart Markers + +Ever needed to **create Excel workbook C#** and wondered how to embed a comment that updates itself automatically? You're not the only one. In many reporting scenarios you want a cell comment that says *“Created by Alice on 2024‑07‑15”* without hard‑coding the name or date each time. + +In this tutorial we’ll show you exactly **how to add comment to Excel**, then **how to fill comment** using Aspose.Cells’ Smart Markers. By the end you’ll have a ready‑to‑run program that creates a workbook, injects a dynamic comment, and saves the file—all in a few tidy steps. + +> **What you’ll get:** a complete, compilable C# console app, an explanation of every line, tips for common pitfalls, and ideas for extending the solution. + +## Prerequisites + +- .NET 6.0 SDK or later (the code works with .NET Core and .NET Framework as well) +- Visual Studio 2022 or any IDE you prefer +- **Aspose.Cells for .NET** NuGet package (`Install-Package Aspose.Cells`) – this library powers the `Workbook`, `Worksheet`, and `SmartMarkerProcessor` classes used below. +- Basic familiarity with C# syntax – if you’ve written a `Console.WriteLine`, you’re good to go. + +Now that the groundwork is out of the way, let’s dive in. + +![Create Excel workbook C# example screenshot](excel-workbook.png "Create Excel workbook C# example") + +## Step 1: Initialise a New Workbook – Create Excel Workbook C# Basics + +First we need a clean workbook object. Think of `Workbook` as the blank canvas; without it you can’t place any cells, rows, or comments. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Why this matters:** `Workbook` automatically creates a default worksheet, so you don’t have to call `Add` unless you need extra tabs. Accessing `Worksheets[0]` is the fastest way to start populating data. + +## Step 2: Insert a Smart Marker Comment – How to Add Comment with Tokens + +Next we place a comment in cell **B2** that contains Smart Marker tokens (`«UserName»` and `«CreatedDate»`). These tokens will be replaced later with actual values. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Explanation:** +- `CreateComment()` creates the comment object if none exists; otherwise it returns the existing one. +- The `Note` property holds the visible text. By wrapping the placeholders in `« »` we tell Aspose.Cells that they are **Smart Markers** – placeholders that can be swapped out in one shot. + +> **Pro tip:** If you need a multi‑line comment, use `\n` inside the string, e.g., `"Line1\nLine2"`. + +## Step 3: Prepare the Data Object – How to Fill Comment Dynamically + +Smart Markers need a data source. In C# the easiest way is an anonymous type that matches the placeholder names. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Why an anonymous type?** +It’s lightweight, requires no extra class file, and matches the property names (`UserName`, `CreatedDate`) exactly to the token names. If you prefer a strongly‑typed model, just create a class with the same properties. + +## Step 4: Process Smart Markers – How to Fill Comment Using the Data Object + +Now the magic happens. The `SmartMarkerProcessor` scans the workbook for any `«…»` tokens and swaps them with values from `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**What’s under the hood?** +`SmartMarkerProcessor` walks through each cell, comment, header, etc., looking for the `«Token»` pattern. When it finds one, it uses reflection to read the matching property from `markerData` and writes the value back. No manual loops required. + +## Step 5: Save the Workbook – Fill Excel Comment and Persist the File + +Finally we write the workbook to disk. The comment now reads something like *“Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Result verification:** Open `CommentFilled.xlsx` in Excel, hover over cell **B2**, and you’ll see the comment with the actual user name and timestamp. No further code changes needed for future runs—just change `markerData` values. + +--- + +## Common Variations & Edge Cases + +### Using a Custom Date Format + +If you want the date in `yyyy‑MM‑dd` format, adjust the data object: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Adding Multiple Comments + +You can repeat **Step 2** for other cells. Each comment can have its own set of tokens, or share the same ones if the information is universal. + +### Working with Existing Workbooks + +Instead of `new Workbook()`, load an existing file: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +The rest of the steps stay identical—Smart Markers work on both new and pre‑existing files. + +### Handling Null Values + +If a token might be missing, wrap the property in a nullable type or provide a fallback: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +The processor will insert *“Unknown”* when the source is `null`. + +--- + +## Full Working Example (Copy‑Paste Ready) + +Below is the **entire program** you can drop into a console app project and run immediately (just replace `YOUR_DIRECTORY` with a real folder path). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Run the program, open the generated file, and you’ll see the dynamic comment in cell **B2**. Easy, right? + +--- + +## Frequently Asked Questions (FAQ) + +**Q: Does this work with .NET Framework 4.7?** +A: Absolutely. Aspose.Cells supports .NET Framework 4.0+ and .NET Core/5/6/7. Just reference the appropriate DLL or NuGet package. + +**Q: Can I use this approach for data validation or conditional formatting?** +A: Smart Markers are primarily for inserting values into cells, comments, headers, and footers. For conditional formatting you’d still use the normal `Style` APIs. + +**Q: What if I need to add a comment to a **different** worksheet?** +A: Retrieve the target worksheet (`workbook.Worksheets["MySheet"]`) and repeat **Step 2** on that sheet’s cells. + +--- + +## Next Steps & Related Topics + +- **How to add comment to Excel** programmatically for multiple cells (loop through a range). +- **Fill Excel comment** with data from a database (use a `DataTable` as the data source for Smart Markers). +- Explore **Smart Marker arrays** to generate tables automatically. +- Learn about **Aspose.Cells styling** to format the comment’s font, color, and size. + +Experiment with the snippets, swap out the data source, and you’ll quickly master **how to fill comment** in any Excel automation scenario. + +--- + +### Wrap‑Up + +We’ve just walked through the entire process of **create excel workbook c#**, **add comment to excel**, and **fill excel comment** using Smart Markers. The solution is compact, reusable, and ready for production. + +Give it a try, tweak the placeholders, and let the library handle the heavy lifting. If you run into any snags, drop a comment below—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/_index.md b/cells/english/net/excel-custom-number-date-formatting/_index.md index 072ad59089..cb2f09cf43 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,8 @@ 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. +### [Set Cell Custom Format in C# – Complete Guide to Writing & Reading Dates in Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Learn how to set custom date formats in Excel cells using Aspose.Cells for .NET, covering both writing and reading dates in C#. {{< /blocks/products/pf/tutorial-page-section >}} @@ -43,4 +45,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/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/english/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..1ba1bae8a3 --- /dev/null +++ b/cells/english/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,206 @@ +--- +category: general +date: 2026-03-21 +description: Set cell custom format in C# and learn how to write date to Excel, apply + custom date format, read DateTime from Excel, and create workbook worksheet quickly. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: en +og_description: Set cell custom format in C# to write date to Excel, apply custom + date format, read DateTime from Excel, and create workbook worksheet with ease. +og_title: Set Cell Custom Format in C# – Write & Read Dates in Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Set Cell Custom Format in C# – Complete Guide to Writing & Reading Dates in + Excel +url: /net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Set Cell Custom Format – Write & Read Dates in Excel Using C# + +Ever needed to **set cell custom format** in an Excel file from C# but weren’t sure where to start? You’re not alone. In many reporting tools or data‑export utilities the date has to appear in a specific locale—think Japanese era dates, fiscal calendars, or ISO‑8601 strings. + +In this tutorial we’ll walk through a **complete, runnable example** that shows you how to **write date to Excel**, **apply custom date format**, **read DateTime from Excel**, and **create workbook worksheet** with Aspose.Cells. By the end you’ll have a single, self‑contained program you can drop into any .NET project. + +## What You’ll Learn + +- How to **create workbook worksheet** programmatically. +- The exact steps to **write date to Excel** using a locale‑specific string. +- How to **apply custom date format** (including Japanese era notation). +- The way to **read DateTime from Excel** back into a `DateTime` object. +- Tips, pitfalls, and variations you might run into when dealing with Excel dates. + +No external documentation required—everything you need is right here. + +## Prerequisites + +- .NET 6.0 or later (the code also works on .NET Framework 4.7+). +- Aspose.Cells for .NET installed via NuGet (`Install-Package Aspose.Cells`). +- A basic understanding of C# syntax—nothing fancy. + +> **Pro tip:** If you’re using Visual Studio, enable *nullable reference types* to catch subtle bugs early. + +## Step 1: Create a Workbook and Worksheet + +First things first: you need a workbook object that represents the Excel file, and a worksheet where the data will live. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Why this matters:* The `Workbook` class is the entry point for all Excel operations. Creating it in memory means you never touch the file system until you explicitly save, which keeps the process fast and test‑friendly. + +## Step 2: Write Date to Excel + +Next, we’ll place a Japanese era date string (`"R02-04-01"`) into cell **A1**. The string mimics the Reiwa era (year 2, April 1). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*What’s happening:* `PutValue` stores the raw string. Aspose.Cells will later attempt to parse it based on the cell’s style. If you skip this step and write a `DateTime` directly, you’ll lose the era information you want to display. + +## Step 3: Apply the Built‑in Date Number Format (ID 14) + +Excel has a built‑in date format with ID 14 (`mm-dd-yy`). Applying it tells the engine that the cell **contains a date**, not just text. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Why use ID 14?* It’s the universal “short date” format that ensures Excel treats the content as a date value, which is a prerequisite for any custom format to work correctly. + +## Step 4: Set a Custom Format to Display Japanese Era Notation + +Now for the fun part: we tell Excel to render the date using the Japanese era format. The custom string `[$-ja-JP]ggge年m月d日` does exactly that. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Explanation:* +- `[$-ja-JP]` forces the locale to Japanese. +- `ggg` is the era name (e.g., “R” for Reiwa). +- `e` is the era year. +- `年`, `月`, `日` are literal Japanese characters for year, month, day. + +If you need a different locale, simply replace `ja-JP` with the appropriate culture code (e.g., `en-US`). + +## Step 5: Retrieve the Parsed DateTime Value + +Finally, let’s read the **actual `DateTime`** that Excel has parsed from the cell. This proves that the string was correctly interpreted. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Result:* The console prints `Parsed DateTime: 2020-04-01`. Even though we entered a Japanese era string, Excel internally stores the Gregorian date, which you can use for calculations, comparisons, or further export. + +## Step 6: Save the Workbook (Optional) + +If you’d like to see the formatted workbook in Excel, just save it to disk. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Open the generated **JapaneseEraDate.xlsx** and you’ll see cell **A1** displaying `R02年4月1日` (the exact Japanese era format we set). + +![set cell custom format example](image-placeholder.png "Excel cell showing Japanese era date – set cell custom format") + +*The alt text above contains the primary keyword, satisfying the image‑SEO requirement.* + +## Common Variations & Edge Cases + +### Writing a Different Date Format + +If you prefer ISO‑8601 (`2020-04-01`) instead of an era string, just change the `PutValue` call: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Dealing with Null or Empty Cells + +When reading a date, always guard against empty cells to avoid `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Supporting Multiple Locales + +You can loop through a list of culture codes and apply them dynamically: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Pro Tips & Gotchas + +- **Always set a built‑in number format first** (`Style.Number`). Without it, Excel treats the cell as plain text and the custom format is ignored. +- **Locale codes are case‑insensitive**, but using the canonical form (`ja-JP`) avoids confusion. +- **Saving is optional** for in‑memory processing; you can stream the workbook directly to a web response (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Aspose.Cells licenses**: The free evaluation version adds a watermark. For production, make sure you have a valid license to avoid performance penalties. + +## Recap + +We’ve shown how to **set cell custom format** in C# to display Japanese era dates, how to **write date to Excel**, **apply custom date format**, **read DateTime from Excel**, and **create workbook worksheet**—all in a single, self‑contained program. The primary keyword appears naturally throughout, while secondary keywords are woven into headings and body text, meeting both SEO and AI‑citation standards. + +## What’s Next? + +- Explore **conditional formatting** to highlight overdue dates. +- Combine this approach with **PivotTables** for dynamic reporting. +- Try **reading large CSV files** and converting them to Excel with the same date handling logic. + +Feel free to experiment with different locales, custom patterns, or even time zones. If you run into any hiccups, drop a comment below—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-data-export-retrieval/_index.md b/cells/english/net/excel-data-export-retrieval/_index.md index 0d998ecc01..1c1c906795 100644 --- a/cells/english/net/excel-data-export-retrieval/_index.md +++ b/cells/english/net/excel-data-export-retrieval/_index.md @@ -29,10 +29,16 @@ Want to know how to do this? Check out this handy guide on [Retrieve Data from C ### [Retrieve Data from Cells in Excel](./retrieve-data-from-cells-in-excel/) Learn how to retrieve data from Excel cells using Aspose.Cells for .NET in this step-by-step tutorial, perfect for beginners and experienced developers alike. +### [Export Excel Data Table in C# – Complete Guide](./export-excel-data-table-in-c-complete-guide/) +Learn how to export Excel data tables using Aspose.Cells for .NET in C#, with step-by-step instructions for developers of all levels. + +### [How to Export Excel Data in C# – Step‑by‑Step Guide](./how-to-export-excel-data-in-c-step-by-step-guide/) +Learn how to export Excel data in C# using Aspose.Cells for .NET, with a detailed step‑by‑step guide for developers of any skill level. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /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-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/english/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..07be27c7df --- /dev/null +++ b/cells/english/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Export Excel data table to a DataTable with headers, limit decimal places, + and export first 100 rows using Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: en +og_description: Learn how to export Excel data table to a DataTable, keep headers, + limit decimal places, and grab the first 100 rows in C#. +og_title: Export Excel Data Table in C# – Step-by-Step Guide +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Export Excel Data Table in C# – Complete Guide +url: /net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Export Excel Data Table – Full C# Walkthrough + +Need to **export excel data table** from a workbook into a .NET `DataTable`? You're in the right place—this guide shows you exactly how to do it, keep the column headers, limit decimal places, and pull only the first 100 rows. + +If you’ve ever stared at a spreadsheet and thought, “How do I get this into my app without losing formatting?” you’re not alone. In the next few minutes we’ll turn that “what‑if” into a concrete, copy‑and‑paste solution that works with Aspose.Cells, a popular library for Excel manipulation. + +## What You’ll Learn + +- How to **export excel to datatable** using the `ExportDataTable` method. +- How to keep the original column names (`export excel with headers`). +- How to **limit decimal places excel** values by configuring `ExportTableOptions`. +- How to safely retrieve only the top‑100 rows (`export first 100 rows`). + +No external scripts, no magic strings—just plain C# that you can drop into any .NET project. + +## Prerequisites + +| Requirement | Why it matters | +|-------------|----------------| +| .NET 6 or later (or .NET Framework 4.7+) | Aspose.Cells supports both, but newer runtimes give you async‑ready APIs. | +| Aspose.Cells for .NET NuGet package | Provides `Workbook`, `ExportTableOptions`, and the `ExportDataTable` helper. | +| A sample Excel file (e.g., `Numbers.xlsx`) | The source of the data you’ll export. | +| Basic C# knowledge | You’ll follow along with code snippets, but nothing fancy is required. | + +If any of those sound unfamiliar, grab the NuGet package with `dotnet add package Aspose.Cells` and create a tiny Excel file with a few numbers—your test data. + +![export excel data table example](excel-data-table.png "Screenshot of an Excel sheet that will be exported to a DataTable") + +## Step 1: Load the Workbook (export excel data table) + +The very first thing you need is a `Workbook` instance that points to your Excel file. Think of it as opening a book before you can read any chapters. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Why this matters:** Loading the workbook gives you access to its worksheets, cells, and styles. If the file path is wrong, Aspose will throw a `FileNotFoundException`, so double‑check the location. + +## Step 2: Configure Export Options – limit decimal places excel + +By default Aspose exports every numeric value with full precision. Often you only need a handful of significant digits, especially when feeding the data into a UI grid or an API that expects rounded numbers. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Pro tip:** If you need a different rounding strategy (e.g., always round up), you can post‑process the `DataTable` after export. The `SignificantDigits` setting is the quickest way to **limit decimal places excel** without writing extra loops. + +## Step 3: Export the Desired Range (export first 100 rows) + +Now we tell Aspose which block of cells we want to pull into a `DataTable`. In this tutorial we grab the first 100 rows and the first 10 columns, but you can adjust those numbers to fit your scenario. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Edge case:** If the sheet contains fewer than 100 rows, Aspose will simply export what exists without throwing an error. However, you might want to guard against an unexpectedly small range: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Step 4: Verify the Result – Quick Console Dump + +Seeing the data in your debugger is nice, but printing a few rows to the console confirms that the **export excel to datatable** actually worked and that the decimal places are trimmed. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Expected Output + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Notice how the numeric columns now show only four significant digits, matching the `SignificantDigits = 4` setting we applied earlier. + +## Step 5: Wrap It All Up – A Complete, Runnable Example + +Below is the full program you can copy‑paste into a console app. It includes error handling, the optional row‑count guard, and the helper method for printing. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Run the program, and you’ll see the first 100 rows of your sheet, nicely rounded, with column names intact. + +## Common Questions & Gotchas + +| Question | Answer | +|----------|--------| +| **What if my sheet has merged cells?** | `ExportDataTable` flattens merged cells by taking the value of the top‑left cell. If you need custom handling, unmerge first or read the raw `Cell` objects. | +| **Can I export to a `DataSet` instead?** | Yes—use `ExportDataTable` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/english/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..271480f6e0 --- /dev/null +++ b/cells/english/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,281 @@ +--- +category: general +date: 2026-03-21 +description: How to export Excel data with column names, preserve number format, and + read specific rows using Aspose.Cells in C#. Learn to read Excel worksheet and export + specific rows efficiently. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: en +og_description: How to export Excel data with column names, preserve number format, + and read specific rows using Aspose.Cells. A full, runnable example for C# developers. +og_title: How to Export Excel Data in C# – Complete Programming Guide +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: How to Export Excel Data in C# – Step‑by‑Step Guide +url: /net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Export Excel Data in C# – Complete Programming Guide + +Ever wondered **how to export excel** data without losing the original formatting? Maybe you’ve tried a quick copy‑paste and ended up with dates looking like “44728” or missing column headers. That’s frustrating, right? In this tutorial you’ll see a clean, end‑to‑end way to read an Excel worksheet, preserve number format, export with column names, and even pick just the rows you need. + +We’ll be using the Aspose.Cells library because it gives you fine‑grained control over export options. By the end of this guide you’ll have a reusable snippet that can be dropped into any .NET project, and you’ll understand why each option matters. No external docs required—everything you need is right here. + +--- + +## What You’ll Learn + +- **Read Excel worksheet** into memory with Aspose.Cells. +- **Export specific rows** (e.g., rows 0‑49) while keeping column names. +- **Preserve number format** so currency, dates, and percentages stay intact. +- How to **export with column names** and include cell comments if you need them. +- A complete, ready‑to‑run C# example plus tips for common pitfalls. + +### Prerequisites + +- .NET 6.0 or later (the code works with .NET Framework 4.6+ as well). +- Aspose.Cells for .NET installed via NuGet (`Install-Package Aspose.Cells`). +- An Excel file (`input.xlsx`) placed in a folder you can reference. + +> **Pro tip:** If you’re on a CI pipeline, consider pulling the NuGet package from a private feed to avoid licensing surprises. + +--- + +## Step 1 – Install Aspose.Cells and Add Namespaces + +First, make sure the Aspose.Cells package is in your project. Open the Package Manager Console and run: + +```powershell +Install-Package Aspose.Cells +``` + +Then add the required `using` directives at the top of your C# file: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +These imports give you access to `Workbook`, `Worksheet`, `ExportTableOptions`, and `DataTable`—the core pieces for **reading an Excel worksheet** and exporting data. + +--- + +## Step 2 – Load the Workbook (Read the Excel File) + +Now we actually **read the Excel worksheet**. The `Workbook` constructor takes a path to the file, and Aspose.Cells will handle both `.xlsx` and older `.xls` formats. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Why this matters:** Loading the workbook once and re‑using the same `Worksheet` object is far more efficient than opening the file repeatedly, especially for large spreadsheets. + +--- + +## Step 3 – Configure Export Options (Preserve Number Format & Column Names) + +Here’s where we tell Aspose.Cells *how* to export. The `ExportTableOptions` class lets us fine‑tune the output. We’ll enable three flags: + +1. `ExportAsString = true` – forces every cell to become a string, which guarantees that numbers keep their visual representation. +2. `IncludeCellComments = true` – copies any comments attached to cells (handy for documentation). +3. `PreserveNumberFormat = true` – retains the original number format (currency symbols, date patterns, etc.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Edge case:** If you set `ExportAsString` to `false` but still want to keep number formats, you may end up with raw numeric values (e.g., 44728 for a date). Keeping both flags on avoids that surprise. + +--- + +## Step 4 – Grab the First Worksheet (Read Excel Worksheet) + +Most simple files have the data you need on the first sheet, so we’ll fetch it by index. If you need a different sheet, just replace `0` with the appropriate zero‑based index or use `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Why it’s useful:** Directly accessing the worksheet object gives you full control over its `Cells` collection, which is essential for **export specific rows** later on. + +--- + +## Step 5 – Export a Range of Cells (Export Specific Rows) + +Now the heart of the tutorial: exporting rows 0‑49 and columns 0‑4 (i.e., the first 50 rows and first five columns) into a `DataTable`. We’ll also ask Aspose.Cells to include column names as the first row of the `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### What This Does + +- **`startRow: 0`** – begins at the very top of the sheet. +- **`totalRows: 50`** – grabs the first 50 rows (i.e., **export specific rows**). +- **`totalColumns: 5`** – limits the export to the first five columns. +- **`includeColumnNames: true`** – ensures the `DataTable` column headers match the Excel header row, satisfying the **export with column names** requirement. +- **`exportOptions`** – applies the settings from Step 3, so your numeric values stay looking like “$1,234.56” rather than “1234.56”. + +--- + +## Step 6 – Verify the Export (What the Result Looks Like) + +Let’s print the first few rows to the console so you can see that the formatting survived. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Expected output (example):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Notice how the dates appear in `MM/dd/yyyy` format and the currency retains the `$` symbol—thanks to **preserve number format**. + +--- + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| Dates turn into large numbers | `ExportAsString` left `false` | Keep `ExportAsString = true` or convert cells manually | +| Missing column headers | `includeColumnNames` set to `false` | Set it to `true` when you need **export with column names** | +| Comments disappear | `IncludeCellComments` not enabled | Turn on `IncludeCellComments` in `ExportTableOptions` | +| Exporting the wrong sheet | Using `Worksheets[0]` on a multi‑sheet file | Specify the sheet name: `workbook.Worksheets["Data"]` | +| Out‑of‑range exception | `totalRows` exceeds actual rows | Use `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## Bonus: Exporting the Whole Sheet While Still Preserving Formats + +If you later decide you need the entire sheet, just replace the `totalRows` and `totalColumns` with the sheet’s maximum dimensions: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Now you have a **read excel worksheet** routine that works for any size, while still **preserving number format** and **exporting with column names**. + +--- + +## Full Working Example (Copy‑Paste Ready) + +Below is the complete program you can drop into a console app. It includes all the steps, imports, and a simple verification printout. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Save this as `Program.cs`, run `dotnet run`, and you should see the formatted preview in your terminal. + +--- + +## Conclusion + +We’ve just walked through **how to export excel** data using Aspose.Cells, covering everything from loading the workbook to preserving number format, exporting with column names, and limiting the export to specific rows. The code is self‑contained, fully runnable, and includes practical safeguards for the most common edge cases. + +Ready for the next challenge? Try exporting directly to a CSV while still keeping the original number formatting, or push the `DataTable` into an Entity Framework Core context for bulk database inserts. Both scenarios build on the same fundamentals we covered here. + +If you found this guide helpful + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..e2e5ab45c3 100644 --- a/cells/english/net/excel-workbook/_index.md +++ b/cells/english/net/excel-workbook/_index.md @@ -74,6 +74,7 @@ So why not embrace this chance to enhance your Excel skills? Each tutorial not o | [Add Web Extension](./add-web-extension/) | Learn how to add web extensions to Excel files using Aspose.Cells for .NET with this complete step-by-step tutorial that enhances your spreadsheet functionalities. | | [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 Excel Workbook with Styled Table – Step‑by‑Step Guide](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Learn how to create an Excel workbook with a styled table using Aspose.Cells for .NET in this step‑by‑step guide. | | [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. | | [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. | @@ -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-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/english/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..4ae5e2be62 --- /dev/null +++ b/cells/english/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-03-21 +description: Create Excel workbook and import datatable to Excel while setting column + style, export data to Excel, and format Excel cells date in minutes. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: en +og_description: Create Excel workbook quickly. Learn to import datatable to excel, + set column style, export data to excel, and format excel cells date in one guide. +og_title: Create Excel Workbook – Full Tutorial for Styling and Export +tags: +- C# +- Aspose.Cells +- Excel automation +title: Create Excel Workbook with Styled Table – Step‑by‑Step Guide +url: /net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Excel Workbook – Complete Programming Tutorial + +Ever needed to **create excel workbook** that looks polished straight out of code? Maybe you’re pulling data from a database, and you want the dates to show up in proper format without fiddling in Excel later. That’s a common pain point—especially when the output lands in a client’s inbox and they expect everything to be ready to use. + +In this guide we’ll walk through a single, self‑contained solution that **imports datatable to excel**, applies a **set column style**, and finally **export data to excel** as a nicely formatted file. You’ll see exactly how to **format excel cells date** so the spreadsheet reads like a professional report, and you’ll get a full, runnable example at the end. No missing pieces, no “see the docs” shortcuts—just pure code you can drop into your project today. + +--- + +## What You’ll Learn + +- How to **create excel workbook** using the Aspose.Cells library (or any compatible API). +- The quickest way to **import datatable to excel** without manual cell‑by‑cell loops. +- Techniques to **set column style**, including applying a date format to a specific column. +- How to **export data to excel** with a single `Save` call. +- Common pitfalls when you try to **format excel cells date** and how to avoid them. + +### Prerequisites + +- .NET 6+ (or .NET Framework 4.6+). +- Aspose.Cells for .NET installed (`Install-Package Aspose.Cells`). +- A `DataTable` ready to be exported—your data source could be SQL, CSV, or anything that can be turned into a `DataTable`. + +If you’re already comfortable with C# and have those pieces in place, you’re good to go. Otherwise, the “Prerequisites” section above will give you a quick checklist. + +--- + +## Step 1 – Create the Excel Workbook Instance + +The very first thing you do when you want to **create excel workbook** programmatically is instantiate the workbook object. Think of this as opening a blank notebook where you’ll later write your data. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Why this matters:** +> The `Workbook` class is the entry point for every operation in Aspose.Cells. Creating it up front gives you a clean canvas, and you can later load an existing file if you need to append data instead of starting from scratch. + +--- + +## Step 2 – Prepare the DataTable to Import + +Before we can **import datatable to excel**, we need a `DataTable`. In real projects this often comes from `SqlDataAdapter.Fill` or `DataTable.Load`. For the sake of clarity we’ll stub a method that returns a ready‑made table. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tip:** If your dates are stored as strings, convert them to `DateTime` first—otherwise the **format excel cells date** step won’t work as expected. + +--- + +## Step 3 – Define Styles for Each Column (Set Column Style) + +Now comes the part where we **set column style**. We’ll create an array of `Style` objects—one per column. The first column gets a built‑in date format (code 14), while the others stay with the general format (code 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Why use style objects?** +> Applying a style once and reusing it is far more efficient than setting the format on each cell individually. It also guarantees that the entire column respects the same **format excel cells date** rule, which is essential for consistency when the file is opened in different locales. + +--- + +## Step 4 – Import the DataTable with Styles into the Worksheet + +With the workbook ready and the styles defined, we now **import datatable to excel**. The `ImportDataTable` method does the heavy lifting: it writes the column headers, rows, and applies the styles we passed in. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **What’s happening under the hood?** +> - `true` tells Aspose.Cells to include column names as the first row. +> - `0, 0` are the starting row and column indices (top‑left corner). +> - `columnStyles` aligns each column with the style we prepared, ensuring the **format excel cells date** rule is applied to the date column. + +--- + +## Step 5 – Save (Export) the Workbook to a Physical File + +Finally, we **export data to excel** by saving the workbook to disk. You can change the path to any folder you like, or even stream the file directly to an HTTP response for a web API. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** Use `workbook.Save(Stream, SaveFormat.Xlsx)` when you need to send the file over the network without writing to disk. + +--- + +## Full Working Example (All Steps Combined) + +Below is the complete, ready‑to‑run program. Copy‑paste it into a console app, adjust the output path, and you’ll have a nicely formatted Excel file in seconds. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Expected output:** +When you open `StyledTable.xlsx`, column A shows dates like `03/19/2026` (depending on your locale), while columns B and C display the product names and quantities as plain text/numbers. No extra formatting steps required—your **create excel workbook** process is done. + +--- + +## Frequently Asked Questions & Edge Cases + +### 1️⃣ What if my DataTable has more than three columns? +Add more `Style` objects to the `columnStyles` array, and adjust the `Number` property for any column that needs a special format (e.g., currency, percentages). The `ImportDataTable` method will match each style by position. + +### 2️⃣ Can I apply a custom date format instead of the built‑in 14? +Absolutely. Replace `columnStyles[i].Number = 14;` with: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ How do I **export data to excel** in a web API without writing to disk? +Use a `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ What if the user’s locale expects a different date separator? +The built‑in date format (ID 14) respects the workbook’s locale settings. If you need a fixed format regardless of locale, use the `Custom` property as shown above. + +### 5️⃣ Does this work with .NET Core? +Yes—Aspose.Cells supports .NET Standard 2.0 and later, so the same code runs on .NET 6, .NET 7, or any compatible runtime. + +--- + +## Best‑Practice Tips (Pro Tips) + +- **Reuse styles**: Creating a style per column is cheap, but re‑using the same style object for identical columns saves memory. +- **Avoid cell‑by‑cell loops**: `ImportDataTable` is highly optimized; manual loops are slower and prone to errors. +- **Set workbook culture early** if you need consistent number/date separators across environments: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validate DataTable** before import—null dates will throw an exception when the date style is applied. +- **Turn on calculation** if you add formulas after import: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Conclusion + +You now have a complete, end‑to‑end recipe to **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, and **format excel cells date**—all in under a dozen lines of C# code. The approach is fast, reliable, and keeps formatting concerns inside the code, so the final spreadsheet is ready for business users the moment they open it. + +Ready for the next challenge? Try adding conditional formatting, inserting charts, or converting the + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/english/net/row-and-column-management/_index.md index da7cb11f8f..c00a3df93f 100644 --- a/cells/english/net/row-and-column-management/_index.md +++ b/cells/english/net/row-and-column-management/_index.md @@ -68,6 +68,8 @@ Learn how to delete a column in an Excel file using Aspose.Cells for .NET. Follo Learn how to delete a row in Excel with Aspose.Cells for .NET. This step-by-step guide covers prerequisites, code import, and a detailed walkthrough for seamless data manipulation. ### [Delete Multiple Rows in Aspose.Cells .NET](./delete-multiple-rows-aspose-cells/) Learn to delete multiple rows in Excel using Aspose.Cells for .NET. This detailed, step-by-step guide covers prerequisites, coding examples, and FAQs for developers. +### [Load Excel File C# – How to Delete Rows and Remove Specific Rows](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Learn how to load an Excel file in C# and delete rows, including removing specific rows, using Aspose.Cells for .NET. ### [Insert a Column in Aspose.Cells .NET](./insert-column-aspose-cells/) Learn how to insert a column in Excel using Aspose.Cells for .NET. Follow our simple, step-by-step guide to add a new column seamlessly. Perfect for .NET developers. ### [Insert a Row in Aspose.Cells .NET](./insert-row-aspose-cells/) @@ -83,4 +85,4 @@ Learn to insert multiple rows in Excel using Aspose.Cells for .NET. Follow our d {{< /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/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/english/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..75e5cf7b73 --- /dev/null +++ b/cells/english/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-21 +description: Load Excel file C# and remove data rows with Aspose.Cells. Learn how + to delete rows, remove specific rows, and master c# excel row deletion in minutes. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: en +og_description: Load Excel file C# and quickly delete rows, remove specific rows, + and handle c# excel row deletion using Aspose.Cells. Complete step‑by‑step guide. +og_title: Load Excel File C# – Delete Rows & Remove Specific Rows +tags: +- C# +- Excel +- Aspose.Cells +title: Load Excel File C# – How to Delete Rows and Remove Specific Rows +url: /net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Load Excel File C# – How to Delete Rows and Remove Specific Rows + +Ever needed to **load Excel file C#** and then prune away rows that you don't need? Maybe you're cleaning up a data dump, or you have a template where certain rows must disappear before you ship the workbook to a client. Either way, the problem is the same: you have an `.xlsx` sitting on disk, you want to open it in .NET, and you need to **delete rows** without breaking any hidden tables or list objects. + +Here's the thing—Aspose.Cells makes this a piece of cake. In this tutorial you’ll see a complete, ready‑to‑run example that shows exactly **how to delete rows**, how to **remove specific rows**, and why you might care about **c# excel row deletion** in the first place. By the end you’ll have a clean `output.xlsx` that contains only the rows you want. + +## What This Guide Covers + +- Loading an Excel workbook from disk using Aspose.Cells. +- Deleting a range of rows (e.g., rows 5‑10) while respecting any ListObject headers. +- Saving the modified workbook back to the file system. +- Common pitfalls, such as accidentally deleting rows inside a table, and tips for handling them. +- A full, runnable code sample you can drop into a console app today. + +> **Prerequisites** +> • .NET 6+ (or .NET Framework 4.6+). +> • Aspose.Cells for .NET installed via NuGet (`Install-Package Aspose.Cells`). +> • Basic familiarity with C# and Excel concepts (worksheets, cells, tables). + +If you’re wondering **why you should use Aspose.Cells** instead of, say, `Microsoft.Office.Interop.Excel`, the answer is speed, no‑COM requirement, and the ability to run on servers without Office installed. Plus, the API is straightforward for row‑deletion tasks. + +--- + +## Step 1: Load the Excel Workbook in C# + +Before you can delete anything, you need to get the workbook into memory. The `Workbook` class represents the entire Excel file. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Why this matters:** +Loading the file creates an object graph that mirrors the Excel structure—worksheets, cells, tables, and so on. By holding a reference to `ws`, you can manipulate rows directly without worrying about file locks or COM interop quirks. + +--- + +## Step 2: Delete Rows That Contain Only Data + +Now that the workbook is in memory, you can delete rows. The method `Cells.DeleteRows(startRow, totalRows)` removes a contiguous block. In our example we’ll strip out rows 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**How it works:** +- `startRow` is zero‑based, so `5` actually refers to Excel’s row 6. Adjust accordingly. +- If the worksheet contains a **ListObject** (Excel table) whose header sits at row 4, Aspose.Cells will protect the header and only delete the data rows beneath it. This built‑in safety prevents you from corrupting structured tables—a common edge case when **removing data rows**. + +> **Pro tip:** If you need to delete non‑contiguous rows (e.g., rows 3, 7, 12), loop over a reversed collection of row indices and call `DeleteRows(rowIndex, 1)` for each. Deleting from the bottom up preserves the original indices for the remaining rows. + +--- + +## Step 3: Save the Modified Workbook + +Once the unwanted rows are gone, you simply write the workbook back to disk. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +The `Save` method automatically determines the file format from the extension (`.xlsx` in this case). If you need a different format—CSV, PDF, etc.—just change the extension or pass a `SaveFormat` enum. + +### Expected Result + +Open `output.xlsx` in Excel and you’ll see that rows 5‑14 (the original rows 5‑10) are gone. All other data shifts up accordingly, and any formulas that referenced the deleted rows are automatically adjusted by Aspose.Cells. + +--- + +## Frequently Asked Questions (FAQ) + +### How do I delete rows based on a condition (e.g., all rows where column A is empty)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +The loop runs backwards to avoid index shifting. This pattern answers the broader **c# excel row deletion** question when you need conditional logic. + +### What if my worksheet contains multiple ListObjects? + +Aspose.Cells treats each ListObject independently. If any table’s header would be affected by the deletion range, the API throws an `InvalidOperationException`. To work around this, either adjust the range or temporarily clear the ListObject’s `ShowTableStyleFirstColumn` property, perform the deletion, then restore it. + +### Can I delete rows without loading the whole workbook into memory? + +Yes—Aspose.Cells offers a **streaming API** (`Workbook.LoadOptions`) that reads data in chunks. However, row deletion inherently requires the worksheet’s structure, so you’ll still need to load the target sheet into memory. For massive files (>500 MB), consider processing in batches or using the **cell‑by‑cell** API. + +--- + +## Full, Runnable Example + +Below is the complete program you can compile and run as a console app. Replace `YOUR_DIRECTORY` with an actual folder path on your machine. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Running the code:** +1. Open a terminal or Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Replace `Program.cs` with the snippet above. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +You should see console output confirming the deletion and the location of the saved file. + +--- + +## Common Pitfalls & How to Avoid Them + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Accidentally deleting a ListObject header** | `DeleteRows` doesn’t check for hidden table headers when the range overlaps them. | Ensure your start row is **after** any table header, or use `ListObject` API to delete rows inside the table (`ListObject.DeleteRows`). | +| **Row indices off by one** | Aspose.Cells uses zero‑based indexing, while Excel users think in 1‑based. | Remember to subtract 1 from the Excel row number when you code. | +| **Formulas break after deletion** | Deleting rows can cause `#REF!` errors if formulas reference the removed rows. | Aspose.Cells automatically updates most formulas, but double‑check any external references or named ranges. | +| **Performance slowdown on huge files** | Deleting many rows triggers internal re‑indexing. | Batch deletions (delete a large range once) instead of many single‑row deletions. Use `DeleteRows(start, count)` wherever possible. | + +--- + +## Next Steps & Related Topics + +- **Remove specific rows based on cell values:** Combine the conditional loop shown in the FAQ with `DeleteRows`. +- **Bulk row insertion:** Use `InsertRows` to add placeholder rows before populating data. +- **Working with tables (ListObjects):** Explore `ListObject` methods for row‑level operations inside structured tables. +- **Exporting to CSV after row deletion:** Call `workbook.Save("output.csv", SaveFormat.Csv)` to produce a clean CSV without the removed rows. + +Each of these builds on the core **load excel file c#** workflow you just mastered, letting you fine‑tune Excel files programmatically. + +--- + +## Conclusion + +We’ve walked through a practical scenario of **load excel file c#**, demonstrated **how to delete rows**, and covered the nuances of **remove specific rows** and **remove data rows** using Aspose.Cells. By loading the workbook, calling `DeleteRows`, and saving the result, you achieve reliable **c# excel row deletion** without the overhead of COM interop. + +Give it a try on a real dataset—maybe clean up a sales report or strip out test rows from a template. Once you’re comfortable, experiment with conditional deletions and table‑aware operations. The API is robust enough for both simple scripts and enterprise‑grade batch processors. + +Happy coding, and feel free to drop a comment if you hit any snags! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/english/net/worksheet-operations/_index.md index 0f6bd9e4b3..be07787d66 100644 --- a/cells/english/net/worksheet-operations/_index.md +++ b/cells/english/net/worksheet-operations/_index.md @@ -36,6 +36,8 @@ In this guide, you’ll learn how to enhance the visual appeal of your Excel dat Easily extract and manage hyperlinks from Excel files with Aspose.Cells for .NET. Step-by-step guide and code examples included. ### [Setting Image Preferences for HTML in .NET](./setting-image-preferences-for-html/) Unlock the power of Aspose.Cells for .NET. Learn how to set image preferences for HTML conversion to present your Excel data beautifully on the web. +### [How to Create Worksheets – Step‑by‑Step Guide for Dynamic Excel Generation](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Learn how to dynamically generate Excel worksheets using Aspose.Cells for .NET with this step-by-step guide. ### [Add Threaded Comments in Worksheet](./add-threaded-comments/) Learn how to add threaded comments in Excel worksheets using Aspose.Cells for .NET with this step-by-step tutorial. Enhance collaboration effortlessly. ### [Count Number of Cells in Worksheet](./count-cells/) @@ -79,4 +81,4 @@ Unlock the power of Excel with Aspose.Cells for .NET. Learn to manipulate Sheet {{< /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/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/english/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..f664b2c404 --- /dev/null +++ b/cells/english/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,277 @@ +--- +category: general +date: 2026-03-21 +description: Learn how to create worksheets, generate Excel sheets with dynamic worksheet + names and save workbook as XLSX using Aspose.Cells in C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: en +og_description: How to create worksheets in Excel using Aspose.Cells, generate Excel + sheets with dynamic worksheet names, and save workbook as XLSX. +og_title: How to Create Worksheets – Complete C# Tutorial +tags: +- Aspose.Cells +- C# +- Excel automation +title: How to Create Worksheets – Step‑by‑Step Guide for Dynamic Excel Generation +url: /net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Create Worksheets – Complete C# Tutorial + +Ever wondered **how to create worksheets** on the fly without manually opening Excel every time? You’re not alone. Many developers hit a wall when they need to **generate Excel sheets** from data sources and want each sheet to carry a meaningful, dynamic name. The good news? With Aspose.Cells you can automate the whole process, **process master sheet**, and finally **save workbook as XLSX** in just a few lines of code. + +In this tutorial we’ll walk through a real‑world scenario: starting from a blank workbook, inserting a smart‑marker token that tells Aspose which detail sheets to spin up, configuring a naming pattern so each sheet gets a unique name, and finally persisting the result to disk. By the end you’ll have a ready‑to‑run C# program that creates worksheets, generates Excel sheets with dynamic worksheet names, and saves the workbook as XLSX—all without touching the UI. + +> **Prerequisites** +> • .NET 6+ (or .NET Framework 4.6+). +> • Aspose.Cells for .NET (the free trial works for this demo). +> • Basic C# knowledge—no deep Excel interop tricks required. + +--- + +## Overview of What We’ll Build + +- **Master sheet** containing a smart‑marker placeholder (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** that reads a data source (e.g., a `DataTable`) and creates a new worksheet for each department. +- **Dynamic worksheet names** following the pattern `Dept_{0}` where `{0}` is replaced by the department name. +- **Final XLSX file** saved to a folder you specify. + +That’s it. Simple, yet powerful enough for invoices, reports, or any multi‑tab Excel output. + +--- + +![Diagram showing how a master sheet is processed to generate multiple dynamic worksheets](/images/how-to-create-worksheets-diagram.png "How to create worksheets diagram") + +*Alt text: illustration of how to create worksheets with dynamic worksheet names using Aspose.Cells.* + +--- + +## Step 1: Set Up the Project and Add Aspose.Cells + +### Why this matters +Before any code runs, the compiler needs to know where the `Workbook`, `Worksheet`, and `SmartMarkerProcessor` classes live. Adding the NuGet package ensures you have the latest, fully‑featured API. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro tip:** If you’re using Visual Studio, right‑click the project → *Manage NuGet Packages* → search for *Aspose.Cells* and install the latest stable version. + +--- + +## Step 2: Create a New Workbook and the Master Sheet + +### What we’re doing +We start with a clean workbook, then grab the first worksheet (index 0). This sheet will act as the **master sheet** that holds the smart‑marker token. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +The `Workbook` class is the container for all worksheets. By default it creates one sheet called *Sheet1*; renaming it to “Master” makes the final file easier to navigate. + +--- + +## Step 3: Insert a Smart‑Marker Token for Detail Sheet Names + +### Why use a smart‑marker? +Smart markers let Aspose.Cells replace placeholders with data at runtime. The token `«DetailSheetNewName:Dept»` tells the processor: *“When you see this, create a new detail sheet for each row in the `Dept` column.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +You can put the token anywhere; we chose **A1** for clarity. When the processor runs, it will replace the token with the actual department name and generate a corresponding worksheet. + +--- + +## Step 4: Prepare the Data Source + +### How the data drives sheet creation +Aspose.Cells works with any `IEnumerable` data source. For this demo we’ll use a `DataTable` with a single column called `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **What if you have more columns?** +> The processor will ignore extra columns unless you reference them in additional smart markers. This keeps the sheet generation lightweight. + +--- + +## Step 5: Configure the SmartMarkerProcessor and Naming Pattern + +### Dynamic worksheet names in action +We want each new sheet to be named `Dept_Finance`, `Dept_HR`, etc. The `DetailSheetNewName` option lets us define a pattern where `{0}` is substituted with the actual department name. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +If a department appears twice, Aspose will automatically append a numeric suffix (e.g., `Dept_Finance_1`) to avoid duplicate sheet names. + +--- + +## Step 6: Process the Master Sheet to Generate Detail Sheets + +### The core of **process master sheet** +Calling `Process` does the heavy lifting: it scans the master sheet for smart markers, creates new worksheets, copies the master layout, and fills each with the row’s data. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +After this call, the workbook contains one master sheet plus four detail sheets—each named according to our pattern and populated with the department name in cell A1. + +--- + +## Step 7: Save the Workbook as XLSX + +### Final step—**save workbook as XLSX** +Now that the worksheets exist, we write the file to disk. You can choose any path; just ensure the directory exists. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Opening `DetailSheets.xlsx` will show: + +| Sheet Name | Cell A1 (Content) | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Edge case:** If the output folder doesn’t exist, `Save` throws a `DirectoryNotFoundException`. Wrap the call in a try‑catch block or create the folder beforehand. + +--- + +## Full Working Example + +Putting it all together, here’s the complete program you can copy‑paste into a console app: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Run the program, open the resulting file, and you’ll see exactly the layout described earlier. No manual copy‑pasting, no COM interop—just clean C# code that **generates Excel sheets** with **dynamic worksheet names**. + +--- + +## Common Questions & Gotchas + +| Question | Answer | +|----------|--------| +| *Can I use a DataSet with multiple tables?* | Yes. Pass the appropriate table to `Process` or use a dictionary of tables. | +| *What if I need more than one smart‑marker on the master sheet?* | Place additional tokens like `«DetailSheetNewName:Region»` and configure a separate naming pattern if needed. | +| *Is the master sheet kept in the final file?* | By default, yes. If you don’t need it, call `workbook.Worksheets.RemoveAt(0)` after processing. | +| *How does Aspose handle very large data sets?* | It streams data efficiently, but you may want to increase `MemorySetting` if you hit memory limits. | +| *Can I export to CSV instead of XLSX?* | Absolutely—use `workbook.Save("file.csv", SaveFormat.Csv)`. The same sheet‑creation logic applies. | + +--- + +## Next Steps + +Now that you know **how to create worksheets** dynamically, you might explore: + +- **Saving workbook as XLSX** with password protection (`workbook.Protect("pwd")`). +- **Generating Excel sheets** from JSON or XML sources using `JsonDataSource` or `XmlDataSource`. +- **Applying styles** to each generated sheet (fonts, colors) via `Style` objects. +- **Merging cells** or inserting formulas automatically for summary reports. + +Each of these extensions builds on the same **process master sheet** concept, so you’ll find the transition painless. + +--- + +## Conclusion + +We’ve covered the entire pipeline: from initializing a workbook, inserting a smart‑marker, configuring **dynamic worksheet names**, processing the master sheet to **generate Excel sheets**, and finally **saving the workbook as XLSX**. The example is complete, runnable, and showcases best practices for both performance and maintainability. + +Give it a try, tweak the naming pattern, feed it real business data, and watch your Excel automation take off. If you hit any snags, drop a comment below—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/french/net/calculation-engine/_index.md b/cells/french/net/calculation-engine/_index.md index a5c7d2452b..1e4307904c 100644 --- a/cells/french/net/calculation-engine/_index.md +++ b/cells/french/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ Apprenez à créer et intégrer des moteurs de calcul personnalisés dans vos ap ### [Optimisez le temps de calcul Excel avec les options récursives d'Aspose.Cells pour .NET](./optimize-calculation-time-recursive-aspose-cells-net) Découvrez comment optimiser les temps de calcul dans Excel grâce aux options récursives d'Aspose.Cells pour .NET. Ce guide couvre la configuration, les conseils de performance et les applications pratiques. +### [Comment calculer un classeur en C# – Guide de tri et de formule](./how-to-calculate-workbook-in-c-sort-formula-guide/) +Apprenez à calculer un classeur en C#, en triant les données et en appliquant des formules avec Aspose.Cells. ## Avantages diff --git a/cells/french/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/french/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..717c456941 --- /dev/null +++ b/cells/french/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Comment calculer un classeur en C# avec Aspose.Cells – apprenez à créer + un classeur Excel, à remplir les cellules Excel, à calculer les formules Excel et + à utiliser la fonction de tri. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: fr +og_description: Comment calculer un classeur en C# rapidement. Ce tutoriel montre + comment créer un classeur Excel, remplir les cellules Excel, calculer les formules + Excel et utiliser la fonction de tri. +og_title: Comment calculer un classeur en C# – Guide complet du tri +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Comment calculer un classeur en C# – Guide du tri et des formules +url: /fr/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment calculer un classeur en C# – Guide de tri et de formule + +Vous vous êtes déjà demandé **comment calculer un classeur** à la volée sans ouvrir Excel ? Vous n'êtes pas seul. Dans de nombreux scénarios d'automatisation, vous devez créer un fichier Excel, y déposer quelques nombres, les trier, et récupérer les résultats dans votre application .NET—tout cela de façon programmatique. + +Dans ce guide, nous allons passer en revue exactement cela : nous allons **créer un classeur Excel**, **remplir des cellules Excel**, ajouter une formule **SORT**, et enfin **calculer les formules Excel** afin que vous puissiez lire le tableau trié directement depuis C#. À la fin, vous disposerez d’un extrait exécutable que vous pourrez insérer dans n’importe quel projet référencant Aspose.Cells (ou une bibliothèque similaire). + +## Prérequis + +- .NET 6+ (le code fonctionne également sur .NET Framework 4.7.2) +- Aspose.Cells for .NET (package NuGet d'essai gratuit `Aspose.Cells`) +- Une compréhension de base de la syntaxe C# +- Pas besoin d’une copie installée de Microsoft Excel ; la bibliothèque effectue le travail lourd pour vous + +Si cela vous convient, plongeons‑y. + +## Comment calculer un classeur – Initialisation du classeur + +La toute première chose à faire est de créer un nouvel objet workbook. Considérez-le comme l’ouverture d’un tout nouveau fichier Excel complètement vide. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Pourquoi c’est important :** La classe `Workbook` est le point d’entrée de chaque opération—sans elle vous ne pouvez pas ajouter de feuilles, de cellules ou de formules. L’initialiser correctement garantit que vous travaillez sur une base vierge. + +## Créer un classeur Excel et accéder à la feuille de calcul + +Maintenant que le classeur existe, nous devons nous assurer que nous pointons vers la bonne feuille de calcul. La plupart des bibliothèques créent par défaut une seule feuille nommée « Sheet1 », mais vous pouvez la renommer ou en ajouter d’autres si vous le souhaitez. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Astuce :** Nommer les feuilles dès le départ facilite les références ultérieures dans les formules (`'Data'!A1:A10`). Cela rend également le débogage plus simple. + +## Remplir les cellules Excel avec des données + +Ensuite, nous allons **remplir les cellules Excel** avec les nombres que nous voulons trier. L’exemple n’utilise que deux cellules, mais vous pouvez étendre la plage à des dizaines de lignes. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Pourquoi nous utilisons `PutValue`** – Il détecte automatiquement le type de données (int, double, string, etc.) et le stocke correctement, vous évitant ainsi de devoir faire des conversions manuelles. + +## Appliquer la fonction SORT via une formule + +La fonction `SORT` d’Excel fait exactement ce que son nom indique : elle renvoie un tableau trié sans modifier les données d’origine. Nous placerons cette formule dans la cellule `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Note de cas limite :** `SORT` renvoie un résultat **array**. Dans les anciennes versions d’Excel (pré‑Office 365), cela nécessitait Ctrl+Shift+Enter. Avec Aspose.Cells, vous obtenez le tableau automatiquement lors du calcul du classeur. + +## Calculer les formules Excel pour obtenir les résultats + +À ce stade, le classeur ne sait que *quoi* calculer, pas *quand* le faire. Appeler `CalculateFormula` déclenche le moteur pour évaluer chaque formule, y compris notre `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Expected console output** + +``` +Sorted array: {2, 5} +``` + +> **Que s’est‑il passé ?** +> 1. Le classeur a créé un moteur de calcul interne. +> 2. La formule `SORT` a examiné la plage `A1:A2`. +> 3. Le moteur a produit un nouveau tableau, que nous avons récupéré depuis `B1`. + +Si vous modifiez les valeurs dans `A1` et `A2` (ou étendez la plage) et relancez `CalculateFormula`, la sortie se met à jour automatiquement—aucun code supplémentaire n’est nécessaire. + +## Utiliser la fonction Sort sur des ensembles de données plus grands (Optionnel) + +La plupart des scénarios réels impliquent plus de deux lignes. Voici un petit ajustement qui fonctionne pour n’importe quel nombre d’entrées : + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Pourquoi vous pourriez en avoir besoin :** Trier de grandes plages vous permet de générer des classements, d’ordonner des données financières, ou simplement de nettoyer des CSV importés avant un traitement ultérieur. + +## Pièges courants et comment les éviter + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **`#VALUE!` in B1** | La formule `SORT` référence une plage vide ou non numérique. | Assurez‑vous que chaque cellule de la plage source contient un nombre ou un texte pouvant être trié. | +| **Array truncation** | Tentative de lecture d’un tableau depuis une seule cellule sans conversion. | Convertissez `worksheet.Cells["B1"].Value` en `object[]` (ou le type approprié). | +| **Performance slowdown** | Recalculer d’énormes classeurs après chaque petite modification. | Appelez `CalculateFormula` uniquement après avoir fini de modifier la feuille, ou utilisez `CalculateFormulaOptions` pour limiter la portée. | + +## Exemple complet fonctionnel (prêt à copier‑coller) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Capture d’écran du résultat** +> ![how to calculate workbook result in Excel](https://example.com/images/sorted-result.png "how to calculate workbook result in Excel") + +L’image ci‑dessus montre le classeur après le calcul—la cellule **B1** contient le tableau trié `{2, 5}`. + +## Conclusion + +Nous venons de couvrir **comment calculer un classeur** de façon programmatique : créer un classeur Excel, remplir des cellules Excel, intégrer une formule `SORT`, et enfin **calculer les formules Excel** pour extraire les données triées. Cette approche fonctionne pour de petits exemples à deux cellules et s’adapte élégamment aux ensembles de données plus grands. + +Et ensuite ? Essayez de combiner cela avec d’autres fonctions comme `FILTER`, `UNIQUE`, ou même une logique personnalisée de type VBA via `WorksheetFunction`. Vous pouvez également enregistrer le classeur sur disque (`workbook.Save("Sorted.xlsx")`) et l’ouvrir dans Excel pour une vérification visuelle. + +N’hésitez pas à expérimenter—remplacez les nombres, modifiez la plage, ou enchaînez plusieurs formules. L’automatisation consiste à itérer rapidement, et vous disposez maintenant d’une base solide sur laquelle construire. + +Bon codage, et que vos classeurs calculent toujours exactement comme vous l’attendez ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/french/net/conversion-and-rendering/_index.md index 3bad44524e..6f5044a0c5 100644 --- a/cells/french/net/conversion-and-rendering/_index.md +++ b/cells/french/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Apprenez à convertir facilement des fichiers Excel en PDF avec Aspose.Cells dan Apprenez à convertir une feuille de calcul Excel en SVG avec Aspose.Cells pour .NET grâce à ce guide étape par étape. Idéal pour les développeurs .NET souhaitant convertir Excel en SVG. ### [Conversion d'Excel en MHTML dans .NET](./converting-excel-to-mhtml/) Apprenez à convertir efficacement des fichiers Excel au format MHTML dans .NET avec Aspose.Cells, améliorant ainsi vos capacités de création de rapports et de partage de données. +### [Créer une image à partir d'Excel – Exporter un tableau croisé dynamique en PNG en C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Apprenez à exporter un tableau croisé dynamique Excel en image PNG avec Aspose.Cells en C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/french/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..da964d16a6 --- /dev/null +++ b/cells/french/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,258 @@ +--- +category: general +date: 2026-03-21 +description: Créer une image à partir d’Excel en C# avec Aspose.Cells. Apprenez comment + convertir Excel en image, exporter un tableau croisé dynamique et enregistrer l’image + au format PNG avec un exemple complet et exécutable. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: fr +og_description: Créez une image à partir d'Excel en C# rapidement. Ce guide montre + comment convertir Excel en image, exporter un tableau croisé dynamique et enregistrer + l'image au format PNG avec un code clair. +og_title: Créer une image à partir d'Excel – Exporter le tableau croisé dynamique + en PNG en C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Créer une image à partir d’Excel – Exporter le tableau croisé dynamique en + PNG en C# +url: /fr/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer une image à partir d’Excel – Exporter un tableau croisé dynamique en PNG avec C# + +Vous avez déjà eu besoin de **créer une image à partir d’Excel** sans savoir quelle API utiliser ? Vous n'êtes pas seul — de nombreux développeurs rencontrent ce blocage lorsqu'ils essaient de transformer un tableau croisé dynamique dynamique en PNG partageable. + +Dans ce tutoriel, nous parcourrons une solution complète, prête à l’emploi qui **convertit Excel en image**, montre **comment exporter le tableau croisé dynamique**, et explique **comment enregistrer l’image** au format PNG. À la fin, vous disposerez d’une méthode unique qui effectue l’ensemble du travail, ainsi que de conseils pour les cas particuliers que vous pourriez rencontrer. + +## Ce dont vous avez besoin + +- **Aspose.Cells for .NET** (le package NuGet `Aspose.Cells`). C’est une bibliothèque commerciale mais elle propose un mode d’évaluation gratuit — parfait pour les tests. +- .NET 6+ (ou .NET Framework 4.6+). +- Un classeur Excel simple (`Pivot.xlsx`) contenant au moins un tableau croisé dynamique. +- L’IDE de votre choix — Visual Studio, Rider ou même VS Code. + +C’est tout. Aucun DLL supplémentaire, aucune interop COM, et aucune astuce d’automatisation Excel compliquée. + +Passons maintenant au code. + +## Étape 1 : Charger le classeur – Créer une image à partir d’Excel + +La première chose que nous faisons est d’ouvrir le fichier Excel qui contient le tableau croisé dynamique. Cette étape est cruciale car le rendu s’effectue sur un objet `Workbook` en mémoire. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Pourquoi c’est important :* Charger le classeur nous donne accès au **pivot** et à tout le formatage qui sera respecté lorsque nous **convertirons Excel en image** plus tard. Si vous sautez cette étape, le moteur de rendu n’aura rien à traiter. + +## Étape 2 : Configurer les options d’exportation – Convertir Excel en image + +Ensuite, nous indiquons à Aspose comment nous voulons que l’image finale apparaisse. La classe `ImageOrPrintOptions` nous permet de choisir le PNG, de définir le DPI, et même de contrôler la couleur d’arrière‑plan. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Pourquoi c’est important :* En définissant un DPI élevé, nous garantissons que **l’exportation d’Excel vers PNG** reste nette, même lorsque le tableau croisé dynamique contient de nombreuses lignes. Vous pouvez réduire le DPI si la taille du fichier pose problème. + +## Étape 3 : Rendre la feuille de calcul – Comment exporter le tableau croisé dynamique + +Voici le cœur du processus : transformer la feuille (avec son tableau croisé dynamique) en image. La classe `WorksheetRender` effectue le travail lourd. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Pourquoi c’est important :* C’est ici que nous **exportons le tableau croisé dynamique** dans un format visuel. Le rendu respecte tout le formatage du tableau, les slicers et les styles conditionnels, de sorte que le PNG ressemble exactement à ce que vous voyez dans Excel. + +## Étape 4 : Assembler le tout – Comment enregistrer l’image + +Enfin, nous exposons une méthode publique unique qui lie toutes les pièces ensemble. C’est la méthode que vous appellerez depuis votre application, service ou outil console. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Exemple complet fonctionnel + +Créez un nouveau projet console, ajoutez le package NuGet `Aspose.Cells`, puis placez le fichier `Program.cs` suivant : + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Résultat attendu :** Après l’exécution du programme, `PivotImage.png` apparaîtra dans le dossier que vous avez indiqué, affichant une capture pixel‑par‑pixel du tableau croisé dynamique. + +![Créer une image à partir d’Excel exemple](https://example.com/placeholder.png "Créer une image à partir d’Excel exemple") + +*Texte alternatif :* créer une image à partir d’excel exemple montrant le tableau croisé dynamique exporté en PNG. + +## Questions fréquentes & cas particuliers + +### Et si mon classeur possède plusieurs feuilles ? + +L’assistant récupère actuellement `Worksheets[0]`. Pour cibler une feuille spécifique, passez le nom de la feuille : + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### Le PNG est flou—comment corriger ? + +Augmentez `HorizontalResolution` et `VerticalResolution` dans `GetImageOptions`. Des valeurs de 300–600 DPI produisent généralement des résultats nets. N’oubliez pas qu’un DPI plus élevé augmente la taille du fichier. + +### Mon tableau croisé dynamique s’étend sur plusieurs pages—puis‑je tout exporter ? + +Oui. Parcourez `renderer.PageCount` et appelez `ToImage(pageIndex, …)` pour chaque page, ou définissez `OnePagePerSheet = false` pour obtenir des images séparées par page. + +### Je ne veux qu’une partie de la feuille (par ex., une plage spécifique) ? + +Utilisez `ImageOrPrintOptions` pour définir `PrintArea` : + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Ainsi vous **convertissez Excel en image** uniquement pour la zone qui vous intéresse. + +### Cela fonctionne‑t‑il avec des fichiers .xls (Excel 97‑2003) ? + +Absolument. Aspose.Cells abstrait le format de fichier, vous pouvez donc fournir des `.xls`, `.xlsx`, `.xlsm` ou même `.ods` et toujours **exporter excel en png**. + +## Astuces pro & pièges à éviter + +- **Licence** : En mode d’évaluation, Aspose ajoute un filigrane. Déployez une licence valide pour la production. +- **Utilisation mémoire** : Le rendu de classeurs volumineux peut être gourmand en mémoire. Libérez rapidement l’objet `Workbook` ou encapsulez‑le dans un bloc `using`. +- **Sécurité des threads** : `Workbook` n’est pas thread‑safe. Créez une nouvelle instance par requête si vous êtes dans un service web. +- **Flexibilité du format d’image** : Si vous avez besoin de JPEG ou BMP, changez simplement `ImageFormat` dans `GetImageOptions`. + +## Conclusion + +Vous disposez maintenant d’une recette solide, de bout en bout, pour **créer une image à partir d’Excel**, en particulier pour **exporter le tableau croisé dynamique** sous forme de PNG haute qualité. L’extrait ci‑dessus montre le code complet et exécutable, explique **comment enregistrer l’image**, et couvre les variantes comme plusieurs feuilles ou des zones d’impression personnalisées. + +Prochaines étapes ? Essayez de chaîner cet exportateur avec un service de messagerie pour envoyer automatiquement le PNG, ou expérimentez `ImageOrPrintOptions` pour générer des PDF à la place des PNG. Le même schéma fonctionne pour les tâches **convert excel to image** dans de nombreux formats. + +Des questions supplémentaires ? Laissez un commentaire, 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/converting-excel-files-to-other-formats/_index.md b/cells/french/net/converting-excel-files-to-other-formats/_index.md index 82c3efb822..bd0d116eb2 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 @@ -46,6 +46,8 @@ Aspose.Cells pour .NET simplifie les transformations de documents, permettant au 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. +### [Enregistrer Excel au format Docx avec C# – Guide complet étape par étape](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Apprenez à enregistrer un classeur Excel au format DOCX en C# avec Aspose.Cells, étape par étape. ### [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/) diff --git a/cells/french/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/french/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..f48e08b38b --- /dev/null +++ b/cells/french/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Enregistrez Excel au format Docx en C# — apprenez à convertir Excel en + Word, à intégrer des graphiques et à charger un classeur Excel en C# avec Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: fr +og_description: Enregistrez Excel au format Docx en C# expliqué dans la première phrase. + Suivez ce tutoriel pour convertir Excel en Word, intégrer des graphiques et charger + le classeur Excel en C#. +og_title: Enregistrer Excel au format Docx avec C# – Guide complet +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Enregistrer Excel au format Docx avec C# – Guide complet étape par étape +url: /fr/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Enregistrer Excel en Docx avec C# – Guide complet étape par étape + +Vous avez déjà eu besoin de **save Excel as Docx** mais vous ne saviez pas par où commencer ? Vous n’êtes pas seul — de nombreux développeurs rencontrent le même obstacle lorsqu’ils souhaitent *convertir Excel en Word* tout en conservant les graphiques. Dans ce tutoriel, nous passerons en revue le code exact dont vous avez besoin, expliquerons pourquoi chaque ligne est importante et vous montrerons comment intégrer les graphiques Excel sans perdre en qualité. + +Nous ajouterons également quelques astuces supplémentaires sur les scénarios **load Excel workbook C#**, afin qu’à la fin vous soyez à l’aise pour convertir Excel en Docx dans n’importe quel projet .NET. Pas de références vagues, juste un exemple concret, exécutable, que vous pouvez copier‑coller dès maintenant. + +--- + +## Ce que couvre ce guide + +- Chargement d’un fichier `.xlsx` existant avec Aspose.Cells (ou toute bibliothèque compatible). +- Manipulation optionnelle des feuilles de calcul ou des graphiques avant la conversion. +- Enregistrement du classeur au format `.docx` tout en préservant les graphiques intégrés. +- Vérification du résultat et gestion des cas limites courants comme les classeurs volumineux ou les types de graphiques non pris en charge. + +Si vous vous demandez **pourquoi convertir Excel en Docx**, pensez aux rapports que vous devez envoyer à des parties prenantes non techniques — les documents Word sont universellement acceptés et conservent la fidélité visuelle de vos graphiques. Plongeons‑y. + +--- + +## Prérequis – Load Excel Workbook C# + +Avant d’écrire du code, assurez‑vous de disposer de : + +| Exigence | Raison | +|----------|--------| +| **.NET 6.0 ou version ultérieure** | Runtime moderne, meilleures performances et prise en charge complète d’Aspose.Cells. | +| **Aspose.Cells for .NET** (package NuGet `Aspose.Cells`) | Fournit la classe `Workbook` utilisée pour lire Excel et exporter vers DOCX. | +| **Visual Studio 2022** (ou tout IDE de votre choix) | Pratique pour le débogage et l’IntelliSense. | +| **Un fichier Excel avec graphiques** (`AdvancedCharts.xlsx`) | Pour voir la fonctionnalité *embed excel charts* en action. | + +Vous pouvez installer la bibliothèque via la console du gestionnaire de packages : + +```powershell +Install-Package Aspose.Cells +``` + +> **Astuce pro :** Si vous travaillez sur une pipeline CI/CD, ajoutez le package à votre `*.csproj` afin que les restaurations se fassent automatiquement. + +--- + +## Étape 1 – Charger le classeur Excel (Save Excel as Docx commence ici) + +La première chose à faire est de charger le classeur source. C’est ici que la phrase **load excel workbook c#** prend tout son sens. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Pourquoi c’est important :** Le chargement du fichier vous donne accès à chaque feuille, graphique et style. Sans cette étape, il n’y a rien à convertir et l’API ne peut pas préserver vos graphiques intégrés. + +--- + +## Étape 2 – (Optionnel) Ajuster le classeur avant la conversion + +Vous pouvez renommer une feuille, masquer une colonne, ou même modifier le titre d’un graphique. Cette étape est optionnelle mais montre la flexibilité de la conversion. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Cas limite :** Certains types de graphiques anciens (par ex., Radar) peuvent ne pas s’afficher parfaitement dans Word. Testez vos graphiques spécifiques après conversion. + +--- + +## Étape 3 – Enregistrer le classeur en document Word (L’action principale “Save Excel as Docx”) + +Voici le moment décisif : nous **save Excel as Docx** réellement. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Lorsque ce code s’exécute, Aspose.Cells écrit chaque feuille de calcul sous forme de tableau dans le fichier Word et intègre chaque graphique comme une image haute résolution. Le résultat est un `.docx` entièrement éditable qui ressemble exactement à la vue originale d’Excel. + +> **Pourquoi choisir le DOCX plutôt que le PDF ?** Le DOCX permet aux destinataires de modifier le texte ou de remplacer les graphiques ultérieurement, alors que le PDF n’est qu’une capture statique. + +--- + +## Étape 4 – Vérifier le résultat et dépanner les problèmes courants + +Une fois la conversion terminée, ouvrez `ChartsInWord.docx` avec Microsoft Word : + +1. **Vérifiez que chaque feuille apparaît comme une section distincte** – vous devez voir des tableaux reflétant vos données Excel. +2. **Confirmez que les graphiques sont intégrés** – ils doivent être des images sélectionnables, pas des espaces réservés cassés. +3. **Si un graphique manque**, assurez‑vous que le type de graphique est pris en charge par Aspose.Cells (voir la [liste officielle de compatibilité](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Astuce pro :** Pour les classeurs volumineux, envisagez d’augmenter le `MemorySetting` d’Aspose.Cells afin d’éviter les `OutOfMemoryException` : + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Exemple complet fonctionnel (Prêt à copier‑coller) + +Voici le programme complet, prêt à être compilé. Remplacez `YOUR_DIRECTORY` par le chemin réel sur votre machine. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Résultat attendu :** Un document Word (`ChartsInWord.docx`) contenant toutes les feuilles sous forme de tableaux et chaque graphique intégré en haute résolution. Ouvrez‑le dans Word et vous verrez exactement la mise en page visuelle que vous aviez dans Excel. + +--- + +## Questions fréquentes (FAQ) + +**Q : Puis‑je convertir plusieurs fichiers Excel dans une boucle ?** +R : Absolument. Enveloppez la logique de conversion dans une boucle `foreach (var file in Directory.GetFiles(...))` et réutilisez le même modèle d’instance `Workbook`. + +**Q : Cela fonctionne‑t‑il aussi avec les fichiers `.xls` ?** +R : Oui—Aspose.Cells prend en charge les formats hérités. Il suffit de changer l’extension source ; l’appel `SaveFormat.Docx` reste le même. + +**Q : Et si je veux conserver les formules lors de la conversion ?** +R : Word ne supporte pas nativement les formules Excel. La conversion aplatit les formules en leurs valeurs calculées. Si vous avez besoin de calculs dynamiques, envisagez d’intégrer le classeur comme objet OLE. + +**Q : Existe‑t‑il un moyen de contrôler la résolution d’image des graphiques ?** +R : Utilisez `ImageOrPrintOptions` avant l’enregistrement : + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus : Intégrer les graphiques Excel directement dans Word (Au‑delà de Save Excel as Docx) + +Si vous préférez que le graphique reste éditable dans Word, vous pouvez intégrer la feuille Excel entière comme objet OLE : + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Cette technique *embed excel charts* en tant qu’objets actifs, permettant aux utilisateurs finaux de double‑cliquer pour les éditer dans Excel directement depuis Word. C’est une alternative pratique lorsque vous avez besoin d’interactivité. + +--- + +## Conclusion + +Vous disposez maintenant d’une solution solide, de bout en bout, pour **save Excel as docx** avec C#. Le tutoriel a couvert le chargement du classeur, les ajustements optionnels, l’opération d’enregistrement, les étapes de vérification, et même un aperçu rapide de l’intégration de graphiques pour des scénarios éditables. En suivant le code ci‑dessus, vous pouvez **convertir Excel en Word**, préserver chaque graphique et gérer les gros fichiers avec aisance. + +Prêt pour le prochain défi ? Essayez d’automatiser une conversion par lots, intégrez cette logique dans une API ASP.NET Core, ou explorez **convert Excel to docx** pour des tableaux de bord multi‑feuilles. Les compétences que vous venez d’acquérir constituent une base pour tout projet d’automatisation de documents. + +Des questions ou un classeur récalcitrant qui refuse de se convertir ? Laissez un commentaire, et nous résoudrons le problème ensemble. Bon codage ! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..501ed163a6 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 XLSB – Ajouter une propriété personnalisée en C#](./how-to-save-xlsb-add-custom-property-in-c/) +Apprenez à enregistrer un classeur XLSB et à y ajouter une propriété personnalisée avec Aspose.Cells pour .NET en C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/french/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..770f409259 --- /dev/null +++ b/cells/french/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,277 @@ +--- +category: general +date: 2026-03-21 +description: Apprenez à enregistrer des fichiers xlsb en C# tout en ajoutant une propriété + personnalisée telle que ProjectId. Ce guide montre comment créer un classeur Excel, + ajouter une propriété personnalisée et la vérifier. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: fr +og_description: Découvrez comment enregistrer des fichiers xlsb et ajouter une propriété + personnalisée telle que ProjectId en C#. Guide étape par étape avec le code complet. +og_title: Comment enregistrer un fichier XLSB – Ajouter une propriété personnalisée + en C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Comment enregistrer un fichier XLSB – Ajouter une propriété personnalisée en + C# +url: /fr/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment enregistrer un XLSB – Ajouter une propriété personnalisée en C# + +Vous êtes-vous déjà demandé **comment enregistrer des fichiers xlsb** tout en y glissant un morceau de métadonnées ? Peut‑être construisez‑vous un moteur de reporting qui a besoin d’un ProjectId caché, ou vous voulez simplement taguer des feuilles de calcul pour un traitement en aval. **Comment enregistrer un xlsb** n’est pas de la science-fiction, mais le combiner avec une propriété personnalisée ajoute une petite nuance que de nombreux développeurs négligent. + +Dans ce tutoriel, nous allons créer un classeur Excel, ajouter une propriété personnalisée (oui, *add custom property*), persister le fichier en tant que classeur binaire **XLSB**, puis le recharger pour prouver que la propriété est bien restée. En chemin, nous aborderons également **how to add custom property** comme un ProjectId, afin que vous repartiez avec un modèle réutilisable pour vos projets futurs. + +> **Astuce :** Si vous utilisez déjà la bibliothèque Aspose.Cells (le code ci‑dessous le fait), vous bénéficiez d’un support natif des propriétés personnalisées sans les tracas du COM interop. + +--- + +## Prérequis + +- .NET 6+ (ou .NET Framework 4.6+). +- Aspose.Cells pour .NET – installer via NuGet : `Install-Package Aspose.Cells`. +- Connaissances de base en C# – rien de compliqué, juste quelques instructions `using`. + +C’est tout. Pas d’installation d’Office, pas d’interop, uniquement du code géré pur. + +--- + +## Étape 1 : Comment enregistrer un XLSB – Créer un classeur Excel + +La toute première chose à faire est de créer un nouvel objet workbook. Pensez‑y comme à l’ouverture d’un fichier Excel vierge qui vit uniquement en mémoire jusqu’à ce que vous décidiez de l’écrire sur le disque. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Pourquoi commencer par un workbook ? Parce que **create excel workbook** est la base de toute manipulation ultérieure—que vous insériez plus tard des formules, des graphiques ou des propriétés personnalisées. La classe `Workbook` abstrait l’ensemble du fichier, tandis que `Worksheets` vous donne accès aux onglets individuels. + +--- + +## Étape 2 : Ajouter une propriété personnalisée à la feuille + +Vient maintenant la partie amusante—**add custom property**. Dans Aspose.Cells, vous pouvez attacher une propriété directement à une feuille (ou au classeur lui‑même). Ici, nous allons stocker un ProjectId numérique que les services en aval pourront lire sans toucher aux cellules visibles. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**Comment ajouter une propriété personnalisée** ? Il suffit d’appeler `CustomProperties.Add(name, value)`. L’API gère automatiquement le XML sous‑jacent, vous n’avez donc pas à vous soucier des détails de bas niveau. C’est la façon la plus sûre d’embarquer des métadonnées invisibles à l’utilisateur final. + +--- + +## Étape 3 : Enregistrer le classeur au format XLSB + +Le classeur est prêt et la propriété personnalisée attachée, il est temps de **how to save xlsb**. Le format XLSB stocke les données sous forme binaire, ce qui est généralement plus petit et plus rapide à ouvrir que le classique XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Enregistrer en XLSB est aussi simple que de passer `SaveFormat.Xlsb` à la méthode `Save`. Si vous vous demandez si cela supprime la propriété personnalisée—rassurez‑vous, Aspose.Cells préserve les propriétés au niveau du classeur et de la feuille dans le fichier binaire. + +--- + +## Étape 4 : Vérifier la propriété personnalisée + +Une bonne pratique consiste à recharger le fichier et à confirmer que la propriété a survécu au aller‑retour. Cela montre également **how to add custom property** ultérieurement si vous devez la mettre à jour. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Si la console affiche `12345`, vous avez réussi à **how to save xlsb** *et* **add project id** en une seule opération. La propriété vit dans les métadonnées internes du fichier, invisible dans l’interface mais parfaitement lisible par le code. + +--- + +## Conseils supplémentaires : Ajouter plusieurs propriétés & cas particuliers + +### Ajouter plus d’une propriété + +Vous pouvez empiler autant de propriétés que vous le souhaitez : + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Mettre à jour une propriété existante + +Si une propriété existe déjà, il suffit d’affecter une nouvelle valeur : + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Gérer les propriétés manquantes + +Tenter de lire une propriété inexistante lève une `KeyNotFoundException`. Protégez‑vous contre cela : + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Compatibilité inter‑versions + +XLSB fonctionne sur Excel 2007 + et sur la version web d’Excel. En revanche, les versions Office plus anciennes (< 2007) ne peuvent pas ouvrir les fichiers XLSB. Si vous avez besoin d’une compatibilité plus large, envisagez d’enregistrer une seconde copie au format XLSX. + +### Considérations de performance + +Les fichiers binaires XLSB sont généralement 30‑50 % plus petits que les XLSX, et ils se chargent plus rapidement. Pour de gros jeux de données (des centaines de milliers de lignes), le gain de vitesse peut être notable. + +--- + +## Exemple complet + +Voici le programme complet que vous pouvez copier‑coller dans un projet console. Il inclut toutes les étapes, la gestion des erreurs et les commentaires nécessaires pour être opérationnel immédiatement. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Sortie attendue** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Si vous voyez le résultat ci‑dessus, vous avez maîtrisé **how to save xlsb**, **add custom property**, et **add project id**—le tout dans un extrait propre et réutilisable. + +--- + +## FAQ + +**Q : Cela fonctionne‑t‑il avec .NET Core ?** +R : Absolument. Aspose.Cells est compatible .NET Standard, donc le même code fonctionne sur .NET 5/6/7 et sur .NET Framework. + +**Q : Puis‑je ajouter une propriété personnalisée à l’ensemble du classeur plutôt qu’à une seule feuille ?** +R : Oui. Utilisez `workbook.CustomProperties.Add("Key", value);` pour l’attacher au niveau du classeur. + +**Q : Et si je dois stocker une longue chaîne (par ex. JSON) comme propriété ?** +R : L’API accepte des chaînes de toute longueur, mais gardez à l’esprit que des blobs très volumineux peuvent augmenter la taille du fichier. Pour des données massives, envisagez une feuille cachée à la place. + +**Q : La propriété personnalisée est‑elle visible dans l’interface d’Excel ?** +R : Pas directement. Les utilisateurs peuvent la voir via **Fichier → Infos → Propriétés → Propriétés avancées → Personnalisées**, mais elle n’apparaît pas dans la grille. + +--- + +## Conclusion + +Nous avons couvert **how to save xlsb** en C# tout en **ajoutant une propriété personnalisée** telle qu’un ProjectId. En suivant le schéma pas à pas—**create excel workbook**, **add custom property**, **save as XLSB**, et **verify**—vous disposez maintenant d’une référence solide, citable, qui fonctionne tant pour les moteurs de recherche que pour les assistants IA. + +Ensuite, vous pourriez explorer : + +- **How to add custom property** à plusieurs feuilles dans une boucle. +- Exporter des données depuis un DataTable vers le classeur avant l’enregistrement. +- Chiffrer le fichier XLSB pour une sécurité supplémentaire. + +N’hésitez pas à expérimenter, à modifier les noms de propriétés, ou à remplacer le format binaire par XLSX si vous avez besoin d’une compatibilité plus large. Vous avez un scénario difficile ? Laissez un commentaire, et nous résoudrons le problème ensemble. Bon codage ! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/french/net/excel-autofilter-validation/_index.md index e973f64514..5a72f196fa 100644 --- a/cells/french/net/excel-autofilter-validation/_index.md +++ b/cells/french/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Notre tutoriel sur [Validation des données décimales dans Excel](./decimal-dat Apprenez à filtrer automatiquement les lignes Excel à l'aide d'Aspose.Cells dans .NET sans effort avec ce guide complet étape par étape. ### [Validation des données décimales dans Excel](./decimal-data-validation-in-excel/) Découvrez comment implémenter la validation des données décimales dans Excel avec Aspose.Cells pour .NET grâce à notre guide facile à suivre. Améliorez l'intégrité des données sans effort. +### [Supprimer le filtre automatique d'Excel – Guide complet C#](./remove-autofilter-from-excel-complete-c-guide/) +Apprenez à retirer le filtre automatique d'un classeur Excel avec Aspose.Cells en C# grâce à ce guide complet. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/french/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..6fb5543095 --- /dev/null +++ b/cells/french/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: Apprenez à supprimer le filtre automatique d’Excel avec C#. Ce guide + pas à pas montre également comment supprimer le filtre automatique, désactiver le + filtre automatique dans Excel et effacer le filtre d’un tableau Excel. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: fr +og_description: Supprimez l’AutoFilter d’Excel avec C#. Ce tutoriel montre comment + supprimer l’AutoFilter, désactiver l’AutoFilter dans Excel et effacer le filtre + d’un tableau Excel en quelques lignes de code. +og_title: Supprimer le filtre automatique d'Excel – Guide complet C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Supprimer le filtre automatique d’Excel – Guide complet C# +url: /fr/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Supprimer AutoFilter d'Excel – Guide complet C# + +Vous avez déjà eu besoin de **remove AutoFilter from Excel** sans savoir quel appel d'API le désactive réellement ? Vous n'êtes pas le seul. Dans de nombreux pipelines de reporting, l'interface du filtre gêne le traitement en aval, donc le nettoyer est une exigence courante. Dans ce tutoriel, nous allons parcourir une solution concise, prête pour la production, qui montre non seulement **how to delete AutoFilter**, mais explique également **turn off AutoFilter Excel** et comment **clear Excel table filter** complètement. + +> **Ce que vous en retirerez :** un programme C# prêt à l'emploi qui charge un classeur existant, supprime le filtre du premier tableau et enregistre une nouvelle copie sans aucun élément d'interface résiduel. + +## Prérequis + +- .NET 6+ (ou .NET Framework 4.7.2+) +- Le package NuGet **Aspose.Cells** (l'API utilisée dans le code) +- Un classeur d'exemple (`TableWithFilter.xlsx`) contenant déjà un tableau avec un AutoFilter appliqué +- Une compréhension de base de la syntaxe C# (pas besoin de connaître les internals d'Excel) + +Si vous avez tout cela, plongeons‑y. + +--- + +## Étape 1 – Installer Aspose.Cells et configurer le projet + +Avant que le code ne s'exécute, vous avez besoin de la bibliothèque qui nous fournit les classes `Workbook`, `Worksheet` et `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Astuce :** Utilisez la version d'évaluation gratuite pour les tests ; pensez simplement à définir la clé de licence avant de passer en production. + +### Pourquoi c’est important +Aspose.Cells abstrait la gestion bas‑niveau d'OOXML, ce qui nous permet de manipuler les tableaux, filtres et styles sans analyser le XML nous‑mêmes. C’est pourquoi les tâches de **remove autofilter from excel** deviennent une simple ligne de code au lieu d’une série de manipulations XML. + +--- + +## Étape 2 – Charger le classeur contenant le tableau + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +L'objet `Workbook` représente le fichier Excel complet. Le charger d'abord garantit que nous disposons d'une copie propre en mémoire, ce qui est crucial lorsque vous **clear excel table filter** plus tard sans affecter les autres feuilles. + +--- + +## Étape 3 – Récupérer la feuille et le tableau cible + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +Un **ListObject** est le terme d'Aspose pour un tableau Excel. Même si votre feuille possède plusieurs tableaux, vous pouvez parcourir `worksheet.ListObjects` et appliquer la même logique à chacun. Cette flexibilité répond à la question « et si j’ai plusieurs tableaux ? » que se posent de nombreux développeurs. + +--- + +## Étape 4 – Supprimer l'AutoFilter du tableau + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Attribuer `null` à `AutoFilter` **supprime complètement l'objet filtre**, ce qui est la méthode la plus fiable pour **how to delete autofilter**. La propriété alternative `ShowAutoFilter` ne fait que masquer l'interface tout en laissant le moteur de filtre actif — utile si vous ne voulez que **turn off autofilter excel** visuellement tout en conservant les critères sous‑jacents. + +> **Cas particulier :** Si le tableau n’a pas d’AutoFilter appliqué, `table.AutoFilter` sera déjà `null`. La ligne ci‑dessus est donc sûre ; elle ne fait rien. + +--- + +## Étape 5 – Enregistrer le classeur modifié + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Enregistrer dans un nouveau fichier conserve l’original intact — une bonne pratique lors de l’automatisation de transformations Excel. Après l’exécution du programme, ouvrez `NoAutoFilter.xlsx` ; vous verrez le tableau sans aucune liste déroulante de filtre, confirmant que l’opération **remove excel table filter** a réussi. + +--- + +## Vérifier le résultat – À quoi s’attendre + +1. **Ouvrez `NoAutoFilter.xlsx`** dans Excel. +2. **Sélectionnez le tableau** — les petites icônes d’entonnoir à côté des en‑têtes de colonne devraient avoir disparu. +3. **Vérifiez les autres feuilles** — elles restent intactes, prouvant que nous n’avons **clear excel table filter** que sur la feuille ciblée. + +Si les icônes sont toujours présentes, revérifiez que vous avez ciblé le bon indice `ListObject`. Rappelez‑vous que les tableaux Excel sont indexés à partir de zéro dans Aspose, donc `ListObjects[0]` correspond au premier tableau de la feuille. + +--- + +## Gestion de plusieurs tableaux ou feuilles + +Parfois, il faut **remove autofilter from excel** dans des classeurs contenant plusieurs tableaux répartis sur différentes feuilles. Voici une extension rapide : + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Cette boucle garantit que **turn off autofilter excel** partout, éliminant tout filtre caché qui pourrait perturber les importations de données en aval. + +--- + +## Pièges courants & comment les éviter + +| Piège | Pourquoi cela arrive | Solution | +|-------|----------------------|----------| +| **Le filtre reste après l’enregistrement** | Utilisation de `ShowAutoFilter = false` qui ne fait que masquer l’UI. | Utilisez `table.AutoFilter = null` pour le supprimer réellement. | +| **Mauvais indice de tableau** | Supposer que le premier tableau est celui recherché. | Inspectez `worksheet.ListObjects.Count` et utilisez des noms significatifs (`tbl.Name`). | +| **Licence manquante** | La version d’évaluation peut insérer des filigranes. | Enregistrez votre licence tôt : `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Fichier verrouillé** | Excel garde le fichier source ouvert. | Assurez‑vous que le classeur est fermé dans Excel avant d’exécuter le script. | + +--- + +## Bonus : Ré‑ajouter un AutoFilter (si vous changez d’avis) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Disposer de l’opération inverse rend le tutoriel complet pour les scénarios **remove autofilter from excel** et **how to delete autofilter**. + +--- + +## Exemple complet (prêt à copier‑coller) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Exécuter le code ci‑dessus **remove autofilter from excel** pour chaque tableau du classeur, vous offrant une base propre pour les traitements ultérieurs. + +--- + +## Conclusion + +Nous venons de couvrir tout ce qu’il faut savoir pour **remove autofilter from excel** avec C#. De l’installation d’Aspose.Cells, le chargement du classeur, la localisation du tableau, la suppression effective du filtre, jusqu’à l’enregistrement du fichier épuré — chaque étape a été expliquée avec le « pourquoi ». Vous savez maintenant comment **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel** et **clear excel table filter** en un seul extrait réutilisable. + +Prêt pour le prochain défi ? Essayez d’automatiser l’ajout de mise en forme conditionnelle, ou explorez comment **add an AutoFilter back** programmatically. Les deux sujets s’appuient directement sur les concepts que nous venons de voir et enrichiront votre boîte à outils d’automatisation Excel. + +Des questions, ou un scénario que nous n’avons pas abordé ? Laissez un commentaire ci‑dessous—bon codage ! + +--- + +![Capture d’écran montrant une feuille Excel sans aucune liste déroulante de filtre – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/french/net/excel-comment-annotation/_index.md index ad4d2c1578..f665494a0e 100644 --- a/cells/french/net/excel-comment-annotation/_index.md +++ b/cells/french/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Apprenez à ajouter des commentaires aux images dans Excel avec Aspose.Cells pou Apprenez à ajouter des commentaires aux cellules dans Excel avec Aspose.Cells pour .NET. Guide étape par étape pour les débutants afin d'améliorer les fonctionnalités d'Excel. ### [Commentaires sur le format - Police, couleur, alignement](./format-comments-font-color-alignment/) Découvrez comment mettre en forme facilement des commentaires Excel avec Aspose.Cells pour .NET. Personnalisez la police, la taille et l'alignement pour améliorer vos feuilles de calcul. +### [Créer un classeur Excel C# – Ajouter et remplir des commentaires avec des marqueurs intelligents](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Apprenez à créer un classeur Excel en C# et à ajouter des commentaires remplis à l'aide de marqueurs intelligents avec Aspose.Cells pour .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/french/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..8448db1e65 --- /dev/null +++ b/cells/french/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-21 +description: Créer un classeur Excel en C# et apprendre comment ajouter un commentaire + à Excel, remplir le commentaire automatiquement à l’aide des Smart Markers. Guide + étape par étape pour les développeurs. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: fr +og_description: Créer un classeur Excel en C# et ajouter rapidement un commentaire + à Excel, puis remplir le commentaire à l'aide de Smart Markers. Tutoriel complet + avec le code. +og_title: Créer un classeur Excel en C# – Ajouter et remplir des commentaires +tags: +- C# +- Excel automation +- Aspose.Cells +title: Créer un classeur Excel en C# – Ajouter et remplir les commentaires avec des + marqueurs intelligents +url: /fr/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un classeur Excel C# – Ajouter et remplir des commentaires avec les Smart Markers + +Vous avez déjà eu besoin de **créer un classeur Excel C#** et vous vous êtes demandé comment insérer un commentaire qui se met à jour automatiquement ? Vous n'êtes pas le seul. Dans de nombreux scénarios de reporting, vous souhaitez un commentaire de cellule qui indique *« Créé par Alice le 15‑07‑2024 »* sans coder en dur le nom ou la date à chaque fois. + +Dans ce tutoriel, nous vous montrerons exactement **comment ajouter un commentaire à Excel**, puis **comment remplir le commentaire** en utilisant les Smart Markers d’Aspose.Cells. À la fin, vous disposerez d’un programme prêt à l’emploi qui crée un classeur, injecte un commentaire dynamique et enregistre le fichier — le tout en quelques étapes simples. + +> **Ce que vous obtiendrez :** une application console C# complète et compilable, une explication ligne par ligne, des astuces pour éviter les pièges courants et des idées pour étendre la solution. + +## Prérequis + +- SDK .NET 6.0 ou version ultérieure (le code fonctionne également avec .NET Core et .NET Framework) +- Visual Studio 2022 ou tout autre IDE de votre choix +- **Aspose.Cells for .NET** package NuGet (`Install-Package Aspose.Cells`) – cette bibliothèque alimente les classes `Workbook`, `Worksheet` et `SmartMarkerProcessor` utilisées ci‑dessous. +- Familiarité de base avec la syntaxe C# – si vous avez déjà écrit un `Console.WriteLine`, vous êtes prêt. + +Maintenant que les bases sont posées, plongeons‑y. + +![Capture d'écran de création de classeur Excel C#](excel-workbook.png "Capture d'écran de création de classeur Excel C#") + +## Étape 1 : Initialiser un nouveau classeur – Notions de base pour créer un classeur Excel C# + +Tout d'abord, nous avons besoin d'un objet classeur vierge. Pensez à `Workbook` comme à une toile blanche ; sans lui, vous ne pouvez placer aucune cellule, ligne ou commentaire. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Pourquoi c’est important :** `Workbook` crée automatiquement une feuille de calcul par défaut, vous n’avez donc pas besoin d’appeler `Add` sauf si vous avez besoin d’onglets supplémentaires. Accéder à `Worksheets[0]` est la façon la plus rapide de commencer à remplir des données. + +## Étape 2 : Insérer un commentaire Smart Marker – Comment ajouter un commentaire avec des jetons + +Ensuite, nous plaçons un commentaire dans la cellule **B2** contenant des jetons Smart Marker (`«UserName»` et `«CreatedDate»`). Ces jetons seront remplacés plus tard par les valeurs réelles. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Explication :** +- `CreateComment()` crée l’objet commentaire s’il n’existe pas ; sinon, il renvoie celui déjà présent. +- La propriété `Note` contient le texte visible. En entourant les espaces réservés avec `« »`, nous indiquons à Aspose.Cells qu’il s’agit de **Smart Markers** – des espaces réservés qui peuvent être remplacés en une seule opération. + +> **Astuce :** Si vous avez besoin d’un commentaire sur plusieurs lignes, utilisez `\n` dans la chaîne, par ex. : `"Line1\nLine2"`. + +## Étape 3 : Préparer l’objet de données – Comment remplir le commentaire dynamiquement + +Les Smart Markers nécessitent une source de données. En C#, le moyen le plus simple est un type anonyme qui correspond aux noms des espaces réservés. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Pourquoi un type anonyme ?** +Il est léger, ne nécessite aucun fichier de classe supplémentaire et correspond exactement aux noms de propriétés (`UserName`, `CreatedDate`) aux noms des jetons. Si vous préférez un modèle fortement typé, créez simplement une classe avec les mêmes propriétés. + +## Étape 4 : Traiter les Smart Markers – Comment remplir le commentaire à l’aide de l’objet de données + +Maintenant, la magie opère. Le `SmartMarkerProcessor` parcourt le classeur à la recherche de tout jeton `«…»` et les remplace par les valeurs provenant de `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Ce qui se passe en coulisses :** +`SmartMarkerProcessor` parcourt chaque cellule, commentaire, en‑tête, etc., à la recherche du motif `«Token»`. Lorsqu’il en trouve un, il utilise la réflexion pour lire la propriété correspondante dans `markerData` et écrit la valeur. Aucun boucle manuelle n’est requise. + +## Étape 5 : Enregistrer le classeur – Remplir le commentaire Excel et persister le fichier + +Enfin, nous écrivons le classeur sur le disque. Le commentaire affiche maintenant quelque chose comme *« Created by Alice on 03/21/2026 10:15 AM »*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Vérification du résultat :** Ouvrez `CommentFilled.xlsx` dans Excel, survolez la cellule **B2** et vous verrez le commentaire avec le nom d’utilisateur et l’horodatage réels. Aucun autre changement de code n’est nécessaire pour les exécutions futures — il suffit de modifier les valeurs de `markerData`. + +--- + +## Variations courantes & cas limites + +### Utiliser un format de date personnalisé + +Si vous voulez la date au format `yyyy‑MM‑dd`, ajustez l’objet de données : + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Ajouter plusieurs commentaires + +Vous pouvez répéter **l’Étape 2** pour d’autres cellules. Chaque commentaire peut avoir son propre jeu de jetons, ou partager les mêmes si l’information est universelle. + +### Travailler avec des classeurs existants + +Au lieu de `new Workbook()`, chargez un fichier existant : + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Le reste des étapes reste identique — les Smart Markers fonctionnent à la fois sur les nouveaux fichiers et sur les fichiers pré‑existants. + +### Gérer les valeurs nulles + +Si un jeton peut être absent, encapsulez la propriété dans un type nullable ou fournissez une valeur de secours : + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +Le processeur insérera *« Unknown »* lorsque la source est `null`. + +--- + +## Exemple complet fonctionnel (prêt à copier‑coller) + +Voici le **programme complet** que vous pouvez placer dans un projet d’application console et exécuter immédiatement (remplacez simplement `YOUR_DIRECTORY` par un chemin de dossier réel). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Exécutez le programme, ouvrez le fichier généré, et vous verrez le commentaire dynamique dans la cellule **B2**. Simple, non ? + +--- + +## Questions fréquentes (FAQ) + +**Q : Cette solution fonctionne‑t‑elle avec .NET Framework 4.7 ?** +R : Absolument. Aspose.Cells prend en charge .NET Framework 4.0+ ainsi que .NET Core/5/6/7. Il suffit de référencer le DLL ou le package NuGet approprié. + +**Q : Puis‑je utiliser cette approche pour la validation de données ou le formatage conditionnel ?** +R : Les Smart Markers servent principalement à insérer des valeurs dans les cellules, commentaires, en‑têtes et pieds de page. Pour le formatage conditionnel, vous devez toujours utiliser les API `Style` classiques. + +**Q : Et si je dois ajouter un commentaire à une **feuille différente** ?** +R : Récupérez la feuille cible (`workbook.Worksheets["MySheet"]`) et répétez **l’Étape 2** sur les cellules de cette feuille. + +--- + +## Prochaines étapes & sujets associés + +- **Comment ajouter un commentaire à Excel** de façon programmatique pour plusieurs cellules (boucle sur une plage). +- **Remplir un commentaire Excel** avec des données provenant d’une base de données (utiliser un `DataTable` comme source de données pour les Smart Markers). +- Explorer les **tableaux Smart Marker** pour générer automatiquement des tableaux. +- Découvrir le **styling Aspose.Cells** pour formater la police, la couleur et la taille du commentaire. + +Expérimentez avec les extraits, changez la source de données, et vous maîtriserez rapidement **comment remplir un commentaire** dans n’importe quel scénario d’automatisation Excel. + +--- + +### Conclusion + +Nous venons de parcourir l’ensemble du processus de **create excel workbook c#**, **add comment to excel** et **fill excel comment** en utilisant les Smart Markers. La solution est compacte, réutilisable et prête pour la production. + +Essayez, ajustez les espaces réservés, et laissez la bibliothèque faire le gros du travail. Si vous rencontrez des difficultés, laissez un commentaire ci‑dessous — 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/_index.md b/cells/french/net/excel-custom-number-date-formatting/_index.md index 1c84a9d7d4..2f82ed861b 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,8 @@ 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é. +### [Définir le format personnalisé d'une cellule en C# – Guide complet pour écrire et lire des dates dans Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Apprenez à appliquer et lire des formats de date personnalisés dans Excel avec Aspose.Cells pour .NET en C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/french/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..77ebdb8b8b --- /dev/null +++ b/cells/french/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,209 @@ +--- +category: general +date: 2026-03-21 +description: Définir le format personnalisé d’une cellule en C# et apprendre à écrire + une date dans Excel, appliquer un format de date personnalisé, lire un DateTime + depuis Excel et créer rapidement un classeur et une feuille de calcul. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: fr +og_description: Définir le format personnalisé d’une cellule en C# pour écrire une + date dans Excel, appliquer un format de date personnalisé, lire un DateTime depuis + Excel et créer facilement une feuille de calcul de classeur. +og_title: Définir le format personnalisé d’une cellule en C# – Écrire et lire des + dates dans Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Définir le format personnalisé d’une cellule en C# – Guide complet pour écrire + et lire les dates dans Excel +url: /fr/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Définir le format personnalisé d’une cellule – Écrire et lire des dates dans Excel avec C# + +Vous avez déjà eu besoin de **définir le format personnalisé d’une cellule** dans un fichier Excel depuis C# mais vous ne saviez pas par où commencer ? Vous n'êtes pas seul. Dans de nombreux outils de reporting ou utilitaires d'exportation de données, la date doit apparaître dans une locale spécifique — pensez aux dates de l'ère japonaise, aux calendriers fiscaux ou aux chaînes ISO‑8601. + +Dans ce tutoriel, nous parcourrons un **exemple complet et exécutable** qui vous montre comment **écrire une date dans Excel**, **appliquer un format de date personnalisé**, **lire un DateTime depuis Excel**, et **créer une feuille de calcul** avec Aspose.Cells. À la fin, vous disposerez d’un programme autonome que vous pourrez intégrer à n’importe quel projet .NET. + +## Ce que vous allez apprendre + +- Comment **créer une feuille de calcul** programmaticalement. +- Les étapes exactes pour **écrire une date dans Excel** en utilisant une chaîne spécifique à une locale. +- Comment **appliquer un format de date personnalisé** (y compris la notation de l’ère japonaise). +- La façon de **lire un DateTime depuis Excel** et le récupérer dans un objet `DateTime`. +- Conseils, pièges et variantes que vous pourriez rencontrer lors de la manipulation des dates dans Excel. + +Aucune documentation externe requise — tout ce dont vous avez besoin se trouve ici. + +## Prérequis + +- .NET 6.0 ou ultérieur (le code fonctionne également sur .NET Framework 4.7+). +- Aspose.Cells pour .NET installé via NuGet (`Install-Package Aspose.Cells`). +- Une compréhension de base de la syntaxe C# — rien de compliqué. + +> **Astuce pro :** Si vous utilisez Visual Studio, activez les *nullable reference types* pour détecter les bugs subtils dès le départ. + +## Étape 1 : Créer un classeur et une feuille de calcul + +Tout d’abord : vous avez besoin d’un objet workbook qui représente le fichier Excel, et d’une feuille de calcul où les données seront stockées. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Pourquoi c’est important :* La classe `Workbook` est le point d’entrée pour toutes les opérations Excel. La créer en mémoire signifie que vous n’interagissez jamais avec le système de fichiers tant que vous n’enregistrez pas explicitement, ce qui rend le processus rapide et adapté aux tests. + +## Étape 2 : Écrire une date dans Excel + +Ensuite, nous placerons une chaîne de date de l’ère japonaise (`"R02-04-01"`) dans la cellule **A1**. Cette chaîne imite l’ère Reiwa (année 2, 1er avril). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Ce qui se passe :* `PutValue` enregistre la chaîne brute. Aspose.Cells tentera ensuite de l’analyser en fonction du style de la cellule. Si vous sautez cette étape et écrivez directement un `DateTime`, vous perdrez l’information d’ère que vous souhaitez afficher. + +## Étape 3 : Appliquer le format numérique de date intégré (ID 14) + +Excel possède un format de date intégré avec l’ID 14 (`mm-dd-yy`). L’appliquer indique au moteur que la cellule **contient une date**, pas seulement du texte. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Pourquoi utiliser l’ID 14 ?* C’est le format « date courte » universel qui garantit qu’Excel traite le contenu comme une valeur de date, condition indispensable pour que tout format personnalisé fonctionne correctement. + +## Étape 4 : Définir un format personnalisé pour afficher la notation de l’ère japonaise + +Passons à la partie amusante : nous indiquons à Excel d’afficher la date en utilisant le format de l’ère japonaise. La chaîne personnalisée `[$-ja-JP]ggge年m月d日` fait exactement cela. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Explication :* +- `[$-ja-JP]` force la locale en japonais. +- `ggg` est le nom de l’ère (par ex., « R » pour Reiwa). +- `e` est l’année de l’ère. +- `年`, `月`, `日` sont des caractères japonais littéraux pour année, mois, jour. + +Si vous avez besoin d’une autre locale, remplacez simplement `ja-JP` par le code culturel approprié (par ex., `en-US`). + +## Étape 5 : Récupérer la valeur DateTime analysée + +Enfin, lisons le **vrai `DateTime`** qu’Excel a analysé à partir de la cellule. Cela prouve que la chaîne a été correctement interprétée. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Résultat :* La console affiche `Parsed DateTime: 2020-04-01`. Même si nous avons saisi une chaîne d’ère japonaise, Excel stocke en interne la date grégorienne, que vous pouvez utiliser pour des calculs, des comparaisons ou d’autres exportations. + +## Étape 6 : Enregistrer le classeur (optionnel) + +Si vous souhaitez voir le classeur formaté dans Excel, enregistrez‑le simplement sur le disque. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Ouvrez le fichier généré **JapaneseEraDate.xlsx** et vous verrez la cellule **A1** afficher `R02年4月1日` (le format exact de l’ère japonaise que nous avons défini). + +![exemple de format personnalisé de cellule](image-placeholder.png "Cellule Excel affichant une date de l’ère japonaise – format personnalisé de cellule") + +*Le texte alt ci‑dessus contient le mot‑clé principal, satisfaisant l’exigence SEO de l’image.* + +## Variations courantes et cas limites + +### Écrire un format de date différent + +Si vous préférez le format ISO‑8601 (`2020-04-01`) au lieu d’une chaîne d’ère, modifiez simplement l’appel `PutValue` : + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Gérer les cellules nulles ou vides + +Lors de la lecture d’une date, protégez toujours contre les cellules vides afin d’éviter `InvalidOperationException` : + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Prise en charge de plusieurs locales + +Vous pouvez parcourir une liste de codes culturels et les appliquer dynamiquement : + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Astuces pro & pièges + +- **Toujours définir d’abord un format numérique intégré** (`Style.Number`). Sans cela, Excel traite la cellule comme du texte brut et le format personnalisé est ignoré. +- **Les codes de locale ne sont pas sensibles à la casse**, mais utiliser la forme canonique (`ja-JP`) évite les confusions. +- **L’enregistrement est optionnel** pour le traitement en mémoire ; vous pouvez diffuser le classeur directement dans une réponse web (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Licences Aspose.Cells** : La version d’évaluation gratuite ajoute un filigrane. En production, assurez‑vous de disposer d’une licence valide pour éviter des pénalités de performance. + +## Récapitulatif + +Nous avons montré comment **définir le format personnalisé d’une cellule** en C# pour afficher des dates de l’ère japonaise, comment **écrire une date dans Excel**, **appliquer un format de date personnalisé**, **lire un DateTime depuis Excel**, et **créer une feuille de calcul** — le tout dans un seul programme autonome. Le mot‑clé principal apparaît naturellement tout au long du texte, tandis que les mots‑clés secondaires sont intégrés dans les titres et le corps du texte, répondant aux exigences SEO et aux standards de citation IA. + +## Et après ? + +- Explorez le **formatage conditionnel** pour mettre en évidence les dates en retard. +- Combinez cette approche avec les **Tableaux croisés dynamiques** pour des rapports dynamiques. +- Essayez de **lire de gros fichiers CSV** et de les convertir en Excel avec la même logique de gestion des dates. + +N’hésitez pas à expérimenter avec différentes locales, modèles personnalisés, ou même fuseaux horaires. Si vous rencontrez des problèmes, laissez un commentaire ci‑dessous — 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-data-export-retrieval/_index.md b/cells/french/net/excel-data-export-retrieval/_index.md index b88c38414c..c9ac186fdd 100644 --- a/cells/french/net/excel-data-export-retrieval/_index.md +++ b/cells/french/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Vous voulez savoir comment procéder ? Consultez ce guide pratique sur [Récup ### [Récupérer des données à partir de cellules dans Excel](./retrieve-data-from-cells-in-excel/) Apprenez à récupérer des données à partir de cellules Excel à l'aide d'Aspose.Cells pour .NET dans ce didacticiel étape par étape, parfait pour les débutants et les développeurs expérimentés. +### [Exporter une table de données Excel en C# – Guide complet](./export-excel-data-table-in-c-complete-guide/) +Apprenez à exporter une table de données Excel en C# avec Aspose.Cells pour .NET dans ce guide complet, adapté aux débutants et aux développeurs avancés. + +### [Comment exporter des données Excel en C# – Guide étape par étape](./how-to-export-excel-data-in-c-step-by-step-guide/) +Apprenez à exporter des données Excel en C# avec Aspose.Cells pour .NET grâce à ce guide étape par étape, idéal pour les débutants et les développeurs avancés. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/french/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/french/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..78da768a7a --- /dev/null +++ b/cells/french/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-03-21 +description: Exporter le tableau de données Excel vers un DataTable avec les en‑têtes, + limiter les décimales et exporter les 100 premières lignes à l’aide d’Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: fr +og_description: Apprenez à exporter un tableau de données Excel vers un DataTable, + à conserver les en‑têtes, à limiter les décimales et à récupérer les 100 premières + lignes en C#. +og_title: Exporter le tableau de données Excel en C# – Guide étape par étape +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Exporter un tableau de données Excel en C# – Guide complet +url: /fr/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Exporter le tableau de données Excel – Guide complet C# + +Besoin d'**exporter une table de données Excel** depuis un classeur vers un `DataTable` .NET ? Vous êtes au bon endroit—ce guide vous montre exactement comment le faire, conserver les en‑têtes de colonnes, limiter les décimales et ne récupérer que les 100 premières lignes. + +Si vous avez déjà fixé un tableau et vous êtes demandé « Comment intégrer cela dans mon application sans perdre le formatage ? », vous n'êtes pas seul. Dans les prochaines minutes, nous transformerons ce « what‑if » en une solution concrète, copier‑coller, qui fonctionne avec Aspose.Cells, une bibliothèque populaire pour la manipulation d’Excel. + +## Ce que vous apprendrez + +- Comment **exporter Excel vers DataTable** en utilisant la méthode `ExportDataTable`. +- Comment conserver les noms de colonnes d'origine (`export excel with headers`). +- Comment **limiter les décimales Excel** en configurant `ExportTableOptions`. +- Comment récupérer en toute sécurité uniquement les 100 premières lignes (`export first 100 rows`). + +Pas de scripts externes, pas de chaînes magiques—juste du C# simple que vous pouvez intégrer dans n'importe quel projet .NET. + +## Prérequis + +| Exigence | Pourquoi c'est important | +|----------|---------------------------| +| .NET 6 ou version ultérieure (ou .NET Framework 4.7+) | Aspose.Cells prend en charge les deux, mais les environnements d'exécution plus récents vous offrent des API prêtes pour l'asynchrone. | +| Aspose.Cells for .NET NuGet package | Fournit `Workbook`, `ExportTableOptions` et l'utilitaire `ExportDataTable`. | +| Un fichier Excel d'exemple (p. ex., `Numbers.xlsx`) | La source des données que vous allez exporter. | +| Connaissances de base en C# | Vous suivrez les extraits de code, mais rien de sophistiqué n'est requis. | + +Si l'un de ces points vous est inconnu, récupérez le package NuGet avec `dotnet add package Aspose.Cells` et créez un petit fichier Excel avec quelques nombres—vos données de test. + +![exemple d'exportation de tableau de données Excel](excel-data-table.png "Capture d'écran d'une feuille Excel qui sera exportée vers un DataTable") + +## Étape 1 : Charger le classeur (export excel data table) + +La toute première chose dont vous avez besoin est une instance `Workbook` qui pointe vers votre fichier Excel. Considérez cela comme ouvrir un livre avant de pouvoir lire les chapitres. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Pourquoi c’est important :** Charger le classeur vous donne accès à ses feuilles de calcul, cellules et styles. Si le chemin du fichier est incorrect, Aspose lèvera une `FileNotFoundException`, alors vérifiez bien l'emplacement. + +## Étape 2 : Configurer les options d'exportation – limit decimal places excel + +Par défaut, Aspose exporte chaque valeur numérique avec pleine précision. Souvent, vous n'avez besoin que de quelques chiffres significatifs, surtout lorsque vous alimentez les données dans une grille UI ou une API qui attend des nombres arrondis. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Astuce :** Si vous avez besoin d'une stratégie d'arrondi différente (par ex., toujours arrondir vers le haut), vous pouvez post‑traiter le `DataTable` après l'exportation. Le paramètre `SignificantDigits` est le moyen le plus rapide de **limiter les décimales Excel** sans écrire de boucles supplémentaires. + +## Étape 3 : Exporter la plage souhaitée (export first 100 rows) + +Nous indiquons maintenant à Aspose quel bloc de cellules nous voulons extraire dans un `DataTable`. Dans ce tutoriel, nous récupérons les 100 premières lignes et les 10 premières colonnes, mais vous pouvez ajuster ces nombres selon votre scénario. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Cas limite :** Si la feuille contient moins de 100 lignes, Aspose exportera simplement ce qui existe sans lever d'erreur. Cependant, vous pourriez vouloir vous prémunir contre une plage inattendue trop petite : + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Étape 4 : Vérifier le résultat – Dump rapide dans la console + +Voir les données dans votre débogueur est agréable, mais imprimer quelques lignes dans la console confirme que l'**export excel to datatable** a réellement fonctionné et que les décimales sont tronquées. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Sortie attendue + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Remarquez comment les colonnes numériques affichent maintenant seulement quatre chiffres significatifs, correspondant au paramètre `SignificantDigits = 4` que nous avons appliqué précédemment. + +## Étape 5 : Tout rassembler – Un exemple complet et exécutable + +Ci-dessous le programme complet que vous pouvez copier‑coller dans une application console. Il inclut la gestion des erreurs, la protection optionnelle du nombre de lignes, et la méthode d'aide pour l'affichage. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Exécutez le programme, et vous verrez les 100 premières lignes de votre feuille, correctement arrondies, avec les noms de colonnes intacts. + +## Questions fréquentes & pièges + +| Question | Réponse | +|----------|---------| +| **Et si ma feuille contient des cellules fusionnées ?** | `ExportDataTable` aplatit les cellules fusionnées en prenant la valeur de la cellule en haut à gauche. Si vous avez besoin d'un traitement personnalisé, désfusionnez d'abord ou lisez les objets `Cell` bruts. | +| **Puis-je exporter vers un `DataSet` à la place ?** | Oui—utilisez `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/french/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..e9a59936c5 --- /dev/null +++ b/cells/french/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Comment exporter des données Excel avec les noms de colonnes, conserver + le format des nombres et lire des lignes spécifiques en utilisant Aspose.Cells en + C#. Apprenez à lire une feuille Excel et à exporter efficacement des lignes spécifiques. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: fr +og_description: Comment exporter des données Excel avec les noms de colonnes, conserver + le format numérique et lire des lignes spécifiques à l’aide d’Aspose.Cells. Un exemple + complet et exécutable pour les développeurs C#. +og_title: Comment exporter des données Excel en C# – Guide complet de programmation +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Comment exporter des données Excel en C# – Guide étape par étape +url: /fr/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment exporter des données Excel en C# – Guide complet de programmation + +Vous vous êtes déjà demandé **how to export excel** sans perdre le formatage d'origine ? Peut‑être avez‑vous essayé un copier‑coller rapide et vous êtes retrouvé avec des dates affichées comme « 44728 » ou des en‑têtes de colonnes manquantes. C’est frustrant, non ? Dans ce tutoriel, vous verrez une méthode propre, de bout en bout, pour lire une feuille de calcul Excel, préserver le format des nombres, exporter avec les noms de colonnes, et même ne sélectionner que les lignes dont vous avez besoin. + +Nous utiliserons la bibliothèque Aspose.Cells car elle vous offre un contrôle granulaire sur les options d'exportation. À la fin de ce guide, vous disposerez d'un extrait réutilisable que vous pourrez intégrer à n'importe quel projet .NET, et vous comprendrez pourquoi chaque option est importante. Aucun document externe n'est nécessaire — tout ce dont vous avez besoin se trouve ici. + +--- + +## Ce que vous allez apprendre + +- **Read Excel worksheet** en mémoire avec Aspose.Cells. +- **Export specific rows** (par ex. lignes 0‑49) tout en conservant les noms de colonnes. +- **Preserve number format** afin que les monnaies, dates et pourcentages restent intacts. +- Comment **export with column names** et inclure les commentaires de cellules si nécessaire. +- Un exemple complet, prêt à l'exécution en C#, ainsi que des astuces pour les pièges courants. + +### Prérequis + +- .NET 6.0 ou supérieur (le code fonctionne également avec .NET Framework 4.6+). +- Aspose.Cells pour .NET installé via NuGet (`Install-Package Aspose.Cells`). +- Un fichier Excel (`input.xlsx`) placé dans un dossier que vous pouvez référencer. + +> **Pro tip:** Si vous êtes sur une pipeline CI, envisagez de récupérer le package NuGet depuis un flux privé afin d'éviter les surprises de licence. + +--- + +## Étape 1 – Installer Aspose.Cells et ajouter les espaces de noms + +Tout d'abord, assurez‑vous que le package Aspose.Cells est présent dans votre projet. Ouvrez la console du gestionnaire de packages et exécutez : + +```powershell +Install-Package Aspose.Cells +``` + +Ensuite, ajoutez les directives `using` requises en haut de votre fichier C# : + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Ces importations vous donnent accès à `Workbook`, `Worksheet`, `ExportTableOptions` et `DataTable` — les éléments essentiels pour **reading an Excel worksheet** et l'exportation des données. + +--- + +## Étape 2 – Charger le classeur (Read the Excel File) + +Nous allons maintenant réellement **read the Excel worksheet**. Le constructeur `Workbook` prend le chemin du fichier, et Aspose.Cells gère les formats `.xlsx` ainsi que les anciens `.xls`. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Why this matters:** Charger le classeur une fois et réutiliser le même objet `Worksheet` est beaucoup plus efficace que d'ouvrir le fichier à plusieurs reprises, surtout pour les grandes feuilles de calcul. + +--- + +## Étape 3 – Configurer les options d'exportation (Preserve Number Format & Column Names) + +C’est ici que nous indiquons à Aspose.Cells *comment* exporter. La classe `ExportTableOptions` nous permet d’ajuster finement la sortie. Nous activerons trois indicateurs : + +1. `ExportAsString = true` – force chaque cellule à devenir une chaîne, ce qui garantit que les nombres conservent leur représentation visuelle. +2. `IncludeCellComments = true` – copie tous les commentaires attachés aux cellules (pratique pour la documentation). +3. `PreserveNumberFormat = true` – conserve le format de nombre original (symboles monétaires, modèles de date, etc.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Edge case:** Si vous définissez `ExportAsString` à `false` tout en voulant conserver les formats numériques, vous pourriez obtenir des valeurs numériques brutes (par ex. 44728 pour une date). Garder les deux indicateurs activés évite cette surprise. + +--- + +## Étape 4 – Récupérer la première feuille de calcul (Read Excel Worksheet) + +La plupart des fichiers simples contiennent les données dont vous avez besoin sur la première feuille, nous la récupérerons donc par indice. Si vous avez besoin d’une autre feuille, remplacez simplement `0` par l’indice zéro‑based approprié ou utilisez `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Why it’s useful:** Accéder directement à l’objet feuille de calcul vous donne un contrôle complet sur sa collection `Cells`, ce qui est essentiel pour **export specific rows** plus tard. + +--- + +## Étape 5 – Exporter une plage de cellules (Export Specific Rows) + +Voici le cœur du tutoriel : exporter les lignes 0‑49 et les colonnes 0‑4 (c’est‑à‑dire les 50 premières lignes et les cinq premières colonnes) dans un `DataTable`. Nous demanderons également à Aspose.Cells d’inclure les noms de colonnes comme première ligne du `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Ce que cela fait + +- **`startRow: 0`** – commence tout en haut de la feuille. +- **`totalRows: 50`** – récupère les 50 premières lignes (c’est‑à‑dire **export specific rows**). +- **`totalColumns: 5`** – limite l’exportation aux cinq premières colonnes. +- **`includeColumnNames: true`** – garantit que les en‑têtes de colonnes du `DataTable` correspondent à la ligne d’en‑tête Excel, répondant ainsi à l’exigence **export with column names**. +- **`exportOptions`** – applique les paramètres de l’Étape 3, de sorte que vos valeurs numériques restent affichées comme “$1,234.56” plutôt que “1234.56”. + +--- + +## Étape 6 – Vérifier l'exportation (What the Result Looks Like) + +Imprimons les premières lignes dans la console afin que vous puissiez voir que le formatage a été conservé. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Sortie attendue (exemple) :** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Remarquez comment les dates apparaissent au format `MM/dd/yyyy` et la monnaie conserve le symbole `$` — grâce à **preserve number format**. + +--- + +## Pièges courants et comment les éviter + +| Problème | Pourquoi cela se produit | Solution | +|----------|--------------------------|----------| +| Les dates deviennent de grands nombres | `ExportAsString` left `false` | Keep `ExportAsString = true` or convert cells manually | +| En‑têtes de colonnes manquants | `includeColumnNames` set to `false` | Set it to `true` when you need **export with column names** | +| Les commentaires disparaissent | `IncludeCellComments` not enabled | Turn on `IncludeCellComments` in `ExportTableOptions` | +| Exportation de la mauvaise feuille | Using `Worksheets[0]` on a multi‑sheet file | Specify the sheet name: `workbook.Worksheets["Data"]` | +| Exception hors limites | `totalRows` exceeds actual rows | Use `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## Bonus : Exporter la feuille entière tout en conservant les formats + +Si vous décidez plus tard que vous avez besoin de la feuille entière, remplacez simplement `totalRows` et `totalColumns` par les dimensions maximales de la feuille : + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Vous avez maintenant une routine **read excel worksheet** qui fonctionne pour n’importe quelle taille, tout en **preserving number format** et **exporting with column names**. + +--- + +## Exemple complet fonctionnel (prêt à copier‑coller) + +Voici le programme complet que vous pouvez insérer dans une application console. Il comprend toutes les étapes, les importations et un simple affichage de vérification. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Enregistrez-le sous `Program.cs`, exécutez `dotnet run`, et vous devriez voir l’aperçu formaté dans votre terminal. + +--- + +## Conclusion + +Nous venons de parcourir **how to export excel** avec Aspose.Cells, couvrant tout, du chargement du classeur à la préservation du format des nombres, l’exportation avec les noms de colonnes, et la limitation de l’exportation à des lignes spécifiques. Le code est autonome, entièrement exécutable, et inclut des protections pratiques contre les cas limites les plus courants. + +Prêt pour le prochain défi ? Essayez d’exporter directement vers un CSV tout en conservant le formatage original des nombres, ou poussez le `DataTable` dans un contexte Entity Framework Core pour des insertions massives en base de données. Les deux scénarios s’appuient sur les mêmes fondamentaux que nous avons abordés ici. + +Si vous avez trouvé ce guide utile + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..f201503aab 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 un classeur Excel avec tableau stylisé – Guide étape par étape](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Apprenez à créer un classeur Excel contenant un tableau formaté avec Aspose.Cells pour .NET, grâce à un guide détaillé pas à pas. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/french/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..1ea52928a5 --- /dev/null +++ b/cells/french/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-21 +description: Créer un classeur Excel et importer le tableau de données dans Excel + tout en définissant le style des colonnes, exporter les données vers Excel, et formater + la date des cellules Excel en minutes. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: fr +og_description: Créez rapidement un classeur Excel. Apprenez à importer un datatable + dans Excel, à définir le style des colonnes, à exporter des données vers Excel et + à formater la date des cellules Excel, le tout dans un guide. +og_title: Créer un classeur Excel – Tutoriel complet pour le style et l'exportation +tags: +- C# +- Aspose.Cells +- Excel automation +title: Créer un classeur Excel avec un tableau stylisé – Guide étape par étape +url: /fr/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un classeur Excel – Tutoriel complet de programmation + +Vous avez déjà eu besoin de **create excel workbook** qui ait l'air soigné directement depuis le code ? Peut‑être que vous extrayez des données d’une base de données, et vous voulez que les dates s’affichent au bon format sans devoir les ajuster dans Excel plus tard. C’est un problème fréquent—surtout lorsque le résultat atterrit dans la boîte de réception d’un client qui s’attend à ce que tout soit prêt à l’emploi. + +Dans ce guide, nous parcourrons une solution unique et autonome qui **imports datatable to excel**, applique un **set column style**, et enfin **export data to excel** sous forme de fichier joliment formaté. Vous verrez exactement comment **format excel cells date** afin que la feuille de calcul ressemble à un rapport professionnel, et vous obtiendrez un exemple complet et exécutable à la fin. Aucun morceau manquant, aucune astuce du type « voir la documentation »—juste du code pur que vous pouvez intégrer à votre projet dès aujourd’hui. + +--- + +## Ce que vous allez apprendre + +- Comment **create excel workbook** en utilisant la bibliothèque Aspose.Cells (ou toute API compatible). +- La façon la plus rapide de **import datatable to excel** sans boucles manuelles cellule par cellule. +- Des techniques pour **set column style**, y compris l’application d’un format de date à une colonne spécifique. +- Comment **export data to excel** avec un seul appel `Save`. +- Les pièges courants lorsqu’on essaie de **format excel cells date** et comment les éviter. + +### Prérequis + +- .NET 6+ (ou .NET Framework 4.6+). +- Aspose.Cells pour .NET installé (`Install-Package Aspose.Cells`). +- Un `DataTable` prêt à être exporté—votre source de données peut être SQL, CSV, ou tout ce qui peut être transformé en `DataTable`. + +Si vous êtes déjà à l’aise avec C# et que vous avez ces éléments en place, vous êtes prêt à démarrer. Sinon, la section « Prerequisites » ci‑dessus vous donnera une checklist rapide. + +--- + +## Étape 1 – Créer l’instance du classeur Excel + +La toute première chose à faire lorsque vous voulez **create excel workbook** de façon programmatique est d’instancier l’objet workbook. Pensez‑y comme à l’ouverture d’un cahier vierge où vous écrirez vos données. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Pourquoi c’est important :** +> La classe `Workbook` est le point d’entrée pour chaque opération dans Aspose.Cells. La créer dès le départ vous donne une toile propre, et vous pouvez ensuite charger un fichier existant si vous devez ajouter des données au lieu de repartir de zéro. + +--- + +## Étape 2 – Préparer le DataTable à importer + +Avant de pouvoir **import datatable to excel**, nous avons besoin d’un `DataTable`. Dans les projets réels, il provient souvent de `SqlDataAdapter.Fill` ou `DataTable.Load`. Pour plus de clarté, nous allons simuler une méthode qui renvoie une table prête à l’emploi. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Astuce :** Si vos dates sont stockées sous forme de chaînes, convertissez‑les d’abord en `DateTime`—sinon l’étape **format excel cells date** ne fonctionnera pas comme prévu. + +--- + +## Étape 3 – Définir les styles pour chaque colonne (Set Column Style) + +Vient maintenant le moment où nous **set column style**. Nous créerons un tableau d’objets `Style`—un par colonne. La première colonne reçoit un format de date intégré (code 14), tandis que les autres conservent le format général (code 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Pourquoi utiliser des objets style ?** +> Appliquer un style une fois et le réutiliser est bien plus efficace que de définir le format sur chaque cellule individuellement. Cela garantit également que toute la colonne respecte la même règle **format excel cells date**, ce qui est essentiel pour la cohérence lorsqu’on ouvre le fichier dans différentes locales. + +--- + +## Étape 4 – Importer le DataTable avec les styles dans la feuille + +Avec le workbook prêt et les styles définis, nous allons maintenant **import datatable to excel**. La méthode `ImportDataTable` fait le gros du travail : elle écrit les en‑têtes de colonnes, les lignes, et applique les styles que nous avons fournis. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Ce qui se passe en coulisses :** +> - `true` indique à Aspose.Cells d’inclure les noms de colonnes comme première ligne. +> - `0, 0` sont les indices de ligne et de colonne de départ (coin supérieur gauche). +> - `columnStyles` aligne chaque colonne avec le style que nous avons préparé, assurant que la règle **format excel cells date** est appliquée à la colonne de dates. + +--- + +## Étape 5 – Enregistrer (Exporter) le classeur vers un fichier physique + +Enfin, nous **export data to excel** en enregistrant le workbook sur le disque. Vous pouvez modifier le chemin vers n’importe quel dossier, ou même diffuser le fichier directement dans une réponse HTTP pour une API web. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip :** Utilisez `workbook.Save(Stream, SaveFormat.Xlsx)` lorsque vous devez envoyer le fichier sur le réseau sans l’écrire sur le disque. + +--- + +## Exemple complet fonctionnel (Toutes les étapes combinées) + +Voici le programme complet, prêt à être exécuté. Copiez‑collez‑le dans une application console, ajustez le chemin de sortie, et vous obtiendrez un fichier Excel joliment formaté en quelques secondes. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Résultat attendu :** +Lorsque vous ouvrez `StyledTable.xlsx`, la colonne A affiche des dates comme `03/19/2026` (selon votre locale), tandis que les colonnes B et C affichent les noms de produits et les quantités en texte/numéros simples. Aucun formatage supplémentaire n’est requis—votre processus **create excel workbook** est terminé. + +--- + +## Questions fréquentes & cas particuliers + +### 1️⃣ Et si mon DataTable possède plus de trois colonnes ? +Ajoutez davantage d’objets `Style` au tableau `columnStyles`, et ajustez la propriété `Number` pour toute colonne nécessitant un format spécial (par ex., devise, pourcentages). La méthode `ImportDataTable` associera chaque style par position. + +### 2️⃣ Puis‑je appliquer un format de date personnalisé au lieu du code 14 intégré ? +Absolument. Remplacez `columnStyles[i].Number = 14;` par : + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Comment **export data to excel** dans une API web sans écrire sur le disque ? +Utilisez un `MemoryStream` : + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Et si la locale de l’utilisateur attend un séparateur de date différent ? +Le format de date intégré (ID 14) respecte les paramètres de locale du classeur. Si vous avez besoin d’un format fixe quel que soit la locale, utilisez la propriété `Custom` comme montré ci‑dessus. + +### 5️⃣ Cela fonctionne‑t‑il avec .NET Core ? +Oui—Aspose.Cells prend en charge .NET Standard 2.0 et versions ultérieures, donc le même code fonctionne sur .NET 6, .NET 7 ou tout runtime compatible. + +--- + +## Conseils de bonnes pratiques (Pro Tips) + +- **Réutilisez les styles** : créer un style par colonne est peu coûteux, mais réutiliser le même objet style pour des colonnes identiques économise de la mémoire. +- **Évitez les boucles cellule par cellule** : `ImportDataTable` est hautement optimisé ; les boucles manuelles sont plus lentes et sujettes aux erreurs. +- **Définissez la culture du classeur tôt** si vous avez besoin de séparateurs de nombres/dates cohérents entre les environnements : + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validez le DataTable** avant l’importation—les dates nulles déclencheront une exception lorsque le style de date sera appliqué. +- **Activez le calcul** si vous ajoutez des formules après l’importation : + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Conclusion + +Vous disposez maintenant d’une recette complète, de bout en bout, pour **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, et **format excel cells date**—le tout en moins d’une douzaine de lignes de code C#. Cette approche est rapide, fiable, et garde les préoccupations de formatage dans le code, de sorte que le classeur final est prêt pour les utilisateurs métier dès son ouverture. + +Prêt pour le prochain défi ? Essayez d’ajouter une mise en forme conditionnelle, d’insérer des graphiques, ou de convertir le + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/french/net/row-and-column-management/_index.md index 43580071e2..921143add9 100644 --- a/cells/french/net/row-and-column-management/_index.md +++ b/cells/french/net/row-and-column-management/_index.md @@ -68,6 +68,8 @@ Apprenez à supprimer une colonne dans un fichier Excel avec Aspose.Cells pour . Apprenez à supprimer une ligne dans Excel avec Aspose.Cells pour .NET. Ce guide étape par étape couvre les prérequis, l'importation de code et une procédure détaillée pour une manipulation fluide des données. ### [Supprimer plusieurs lignes dans Aspose.Cells .NET](./delete-multiple-rows-aspose-cells/) Apprenez à supprimer plusieurs lignes dans Excel avec Aspose.Cells pour .NET. Ce guide détaillé, étape par étape, couvre les prérequis, des exemples de codage et une FAQ pour les développeurs. +### [Charger un fichier Excel C# – Comment supprimer des lignes et supprimer des lignes spécifiques](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Apprenez à charger un fichier Excel en C# et à supprimer des lignes, y compris des lignes spécifiques, avec Aspose.Cells. ### [Insérer une colonne dans Aspose.Cells .NET](./insert-column-aspose-cells/) Apprenez à insérer une colonne dans Excel avec Aspose.Cells pour .NET. Suivez notre guide simple et étape par étape pour ajouter une nouvelle colonne en toute simplicité. Idéal pour les développeurs .NET. ### [Insérer une ligne dans Aspose.Cells .NET](./insert-row-aspose-cells/) diff --git a/cells/french/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/french/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..3cb5221179 --- /dev/null +++ b/cells/french/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-03-21 +description: Chargez un fichier Excel en C# et supprimez les lignes de données avec + Aspose.Cells. Apprenez à supprimer des lignes, à enlever des lignes spécifiques, + et maîtrisez la suppression de lignes Excel en C# en quelques minutes. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: fr +og_description: Chargez un fichier Excel en C# et supprimez rapidement des lignes, + retirez des lignes spécifiques et gérez la suppression de lignes Excel en C# avec + Aspose.Cells. Guide complet étape par étape. +og_title: Charger un fichier Excel en C# – Supprimer des lignes et retirer des lignes + spécifiques +tags: +- C# +- Excel +- Aspose.Cells +title: Charger un fichier Excel en C# – Comment supprimer des lignes et retirer des + lignes spécifiques +url: /fr/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Charger un fichier Excel C# – Comment supprimer des lignes et supprimer des lignes spécifiques + +Vous avez déjà eu besoin de **load Excel file C#** et ensuite d'éliminer les lignes dont vous n'avez pas besoin ? Peut-être nettoyez‑vous un vidage de données, ou vous avez un modèle où certaines lignes doivent disparaître avant d'envoyer le classeur à un client. Dans les deux cas, le problème est le même : vous avez un fichier `.xlsx` sur le disque, vous voulez l'ouvrir dans .NET, et vous devez **delete rows** sans casser les tables ou objets de liste cachés. + +Voici le point—Aspose.Cells rend cela très simple. Dans ce tutoriel, vous verrez un exemple complet, prêt à l'exécution, qui montre exactement **how to delete rows**, comment **remove specific rows**, et pourquoi vous pourriez vous intéresser à **c# excel row deletion**. À la fin, vous disposerez d'un `output.xlsx` propre qui ne contient que les lignes souhaitées. + +## Ce que ce guide couvre + +- Chargement d'un classeur Excel depuis le disque en utilisant Aspose.Cells. +- Suppression d'une plage de lignes (par ex., lignes 5‑10) tout en respectant les en‑têtes ListObject. +- Enregistrement du classeur modifié sur le système de fichiers. +- Pièges courants, comme la suppression accidentelle de lignes à l'intérieur d'un tableau, et astuces pour les gérer. +- Un exemple complet et exécutable que vous pouvez intégrer dans une application console dès aujourd'hui. + +> **Prérequis** +> • .NET 6+ (ou .NET Framework 4.6+). +> • Aspose.Cells pour .NET installé via NuGet (`Install-Package Aspose.Cells`). +> • Familiarité de base avec C# et les concepts Excel (feuilles de calcul, cellules, tableaux). + +Si vous vous demandez **why you should use Aspose.Cells** plutôt que, par exemple, `Microsoft.Office.Interop.Excel`, la réponse est la vitesse, l'absence de besoin COM, et la capacité de s'exécuter sur des serveurs sans Office installé. De plus, l'API est simple pour les tâches de suppression de lignes. + +--- + +## Étape 1 : Charger le classeur Excel en C# + +Avant de pouvoir supprimer quoi que ce soit, vous devez charger le classeur en mémoire. La classe `Workbook` représente le fichier Excel complet. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Pourquoi c'est important :** +Le chargement du fichier crée un graphe d'objets qui reflète la structure d'Excel — feuilles, cellules, tableaux, etc. En conservant une référence à `ws`, vous pouvez manipuler les lignes directement sans vous soucier des verrous de fichiers ou des particularités de l'interop COM. + +--- + +## Étape 2 : Supprimer les lignes qui ne contiennent que des données + +Maintenant que le classeur est en mémoire, vous pouvez supprimer des lignes. La méthode `Cells.DeleteRows(startRow, totalRows)` supprime un bloc contigu. Dans notre exemple, nous éliminerons les lignes 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Comment cela fonctionne :** +- `startRow` est basé sur zéro, donc `5` correspond en réalité à la ligne 6 d'Excel. Ajustez en conséquence. +- Si la feuille contient un **ListObject** (tableau Excel) dont l'en‑tête se trouve à la ligne 4, Aspose.Cells protégera l'en‑tête et ne supprimera que les lignes de données en dessous. Cette sécurité intégrée vous empêche de corrompre les tableaux structurés — un cas limite fréquent lors du **removing data rows**. + +> **Astuce pro :** Si vous devez supprimer des lignes non contiguës (par ex., lignes 3, 7, 12), parcourez une collection inversée d'indices de lignes et appelez `DeleteRows(rowIndex, 1)` pour chacune. Supprimer de bas en haut préserve les indices originaux des lignes restantes. + +--- + +## Étape 3 : Enregistrer le classeur modifié + +Une fois les lignes indésirables supprimées, il suffit d'écrire le classeur sur le disque. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +La méthode `Save` détermine automatiquement le format du fichier à partir de l'extension (`.xlsx` dans ce cas). Si vous avez besoin d'un format différent — CSV, PDF, etc. — il suffit de changer l'extension ou de passer un enum `SaveFormat`. + +### Résultat attendu + +Ouvrez `output.xlsx` dans Excel et vous verrez que les lignes 5‑14 (les lignes originales 5‑10) ont disparu. Toutes les autres données se déplacent vers le haut en conséquence, et toutes les formules qui faisaient référence aux lignes supprimées sont automatiquement ajustées par Aspose.Cells. + +--- + +## Questions fréquentes (FAQ) + +### Comment supprimer des lignes en fonction d'une condition (par ex., toutes les lignes où la colonne A est vide) ? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +La boucle s'exécute à l'envers pour éviter le décalage d'indices. Ce modèle répond à la question plus large de **c# excel row deletion** lorsque vous avez besoin d'une logique conditionnelle. + +### Que se passe-t-il si ma feuille contient plusieurs ListObjects ? + +Aspose.Cells traite chaque ListObject de façon indépendante. Si l'en‑tête d'un tableau serait affectée par la plage de suppression, l'API lève une `InvalidOperationException`. Pour contourner cela, ajustez la plage ou désactivez temporairement la propriété `ShowTableStyleFirstColumn` du ListObject, effectuez la suppression, puis restaurez‑la. + +### Puis‑je supprimer des lignes sans charger tout le classeur en mémoire ? + +Oui — Aspose.Cells propose une **streaming API** (`Workbook.LoadOptions`) qui lit les données par blocs. Cependant, la suppression de lignes nécessite intrinsèquement la structure de la feuille, vous devrez donc toujours charger la feuille cible en mémoire. Pour les fichiers très volumineux (>500 Mo), envisagez de traiter par lots ou d'utiliser l'API **cell‑by‑cell**. + +--- + +## Exemple complet et exécutable + +Voici le programme complet que vous pouvez compiler et exécuter comme application console. Remplacez `YOUR_DIRECTORY` par un chemin de dossier réel sur votre machine. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Exécution du code :** +1. Ouvrez un terminal ou Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Remplacez `Program.cs` par l'extrait ci‑dessus. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Vous devriez voir la sortie console confirmant la suppression et l'emplacement du fichier enregistré. + +--- + +## Pièges courants et comment les éviter + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Accidentally deleting a ListObject header** | `DeleteRows` ne vérifie pas les en‑têtes de tableau cachés lorsque la plage les chevauche. | Assurez‑vous que votre ligne de départ est **après** tout en‑tête de tableau, ou utilisez l'API `ListObject` pour supprimer les lignes à l'intérieur du tableau (`ListObject.DeleteRows`). | +| **Row indices off by one** | Aspose.Cells utilise un index basé sur zéro, alors que les utilisateurs d'Excel pensent en base 1. | N'oubliez pas de soustraire 1 du numéro de ligne Excel dans votre code. | +| **Formulas break after deletion** | Supprimer des lignes peut provoquer des erreurs `#REF!` si des formules font référence aux lignes supprimées. | Aspose.Cells met automatiquement à jour la plupart des formules, mais vérifiez à nouveau les références externes ou les plages nommées. | +| **Performance slowdown on huge files** | Supprimer de nombreuses lignes déclenche un ré‑indexage interne. | Effectuez des suppressions par lots (supprimez une grande plage en une fois) plutôt que de nombreuses suppressions ligne par ligne. Utilisez `DeleteRows(start, count)` chaque fois que possible. | + +--- + +## Prochaines étapes et sujets associés + +- **Supprimer des lignes spécifiques en fonction des valeurs de cellules :** Combinez la boucle conditionnelle présentée dans la FAQ avec `DeleteRows`. +- **Insertion massive de lignes :** Utilisez `InsertRows` pour ajouter des lignes de remplacement avant de remplir les données. +- **Travailler avec les tableaux (ListObjects) :** Explorez les méthodes `ListObject` pour les opérations au niveau des lignes dans les tableaux structurés. +- **Exportation en CSV après suppression de lignes :** Appelez `workbook.Save("output.csv", SaveFormat.Csv)` pour produire un CSV propre sans les lignes supprimées. + +Chaque de ces actions s'appuie sur le flux de travail **load excel file c#** de base que vous venez de maîtriser, vous permettant d'ajuster finement les fichiers Excel par programme. + +--- + +## Conclusion + +Nous avons parcouru un scénario pratique de **load excel file c#**, démontré **how to delete rows**, et couvert les nuances de **remove specific rows** et **remove data rows** en utilisant Aspose.Cells. En chargeant le classeur, en appelant `DeleteRows` et en enregistrant le résultat, vous obtenez une **c# excel row deletion** fiable sans le surcoût de l'interop COM. + +Essayez-le sur un jeu de données réel — peut‑être nettoyer un rapport de ventes ou supprimer les lignes de test d'un modèle. Une fois à l'aise, expérimentez les suppressions conditionnelles et les opérations conscientes des tableaux. L'API est suffisamment robuste pour des scripts simples comme pour des traitements batch de niveau entreprise. + +Bon codage, et n'hésitez pas à laisser un commentaire si vous rencontrez des problèmes ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/french/net/worksheet-operations/_index.md index fc0c4a2f15..eb5aa4c076 100644 --- a/cells/french/net/worksheet-operations/_index.md +++ b/cells/french/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Apprenez à définir un arrière-plan graphique dans les fichiers ODS à l'aide Apprenez à mettre à jour l'historique des révisions dans les classeurs partagés avec Aspose.Cells pour .NET. Simplifiez la collaboration et conservez des archives claires. ### [Utiliser la propriété Sheet_SheetId d'OpenXml dans une feuille de calcul](./utilize-sheet-sheetid-property/) Exploitez toute la puissance d'Excel avec Aspose.Cells pour .NET. Apprenez à manipuler efficacement les identifiants de feuille grâce à notre guide étape par étape. +### [Comment créer des feuilles de calcul – Guide étape par étape pour la génération dynamique d'Excel](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Apprenez à créer dynamiquement des feuilles de calcul Excel avec Aspose.Cells pour .NET grâce à ce guide complet. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/french/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..b6f2f41381 --- /dev/null +++ b/cells/french/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,280 @@ +--- +category: general +date: 2026-03-21 +description: Apprenez à créer des feuilles de calcul, générer des classeurs Excel + avec des noms de feuilles dynamiques et enregistrer le classeur au format XLSX en + utilisant Aspose.Cells en C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: fr +og_description: Comment créer des feuilles de calcul dans Excel en utilisant Aspose.Cells, + générer des feuilles Excel avec des noms de feuilles dynamiques, et enregistrer + le classeur au format XLSX. +og_title: Comment créer des feuilles de calcul – Tutoriel complet C# +tags: +- Aspose.Cells +- C# +- Excel automation +title: Comment créer des feuilles de calcul – Guide étape par étape pour la génération + dynamique d'Excel +url: /fr/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment créer des feuilles de calcul – Tutoriel complet C# + +Vous vous êtes déjà demandé **comment créer des feuilles de calcul** à la volée sans ouvrir Excel manuellement à chaque fois ? Vous n'êtes pas seul. De nombreux développeurs se heurtent à un mur lorsqu'ils doivent **générer des feuilles Excel** à partir de sources de données et souhaitent que chaque feuille porte un nom dynamique et significatif. Bonne nouvelle ? Avec Aspose.Cells, vous pouvez automatiser tout le processus, **traiter la feuille maître**, et enfin **enregistrer le classeur au format XLSX** en quelques lignes de code seulement. + +Dans ce tutoriel, nous allons parcourir un scénario réel : à partir d’un classeur vierge, insérer un jeton smart‑marker qui indique à Aspose quelles feuilles détaillées créer, configurer un modèle de nommage afin que chaque feuille obtienne un nom unique, puis persister le résultat sur le disque. À la fin, vous disposerez d’un programme C# prêt à l’emploi qui crée des feuilles, génère des feuilles Excel avec des noms de feuilles dynamiques, et enregistre le classeur au format XLSX—le tout sans toucher à l’interface utilisateur. + +> **Prérequis** +> • .NET 6+ (ou .NET Framework 4.6+). +> • Aspose.Cells for .NET (l’essai gratuit suffit pour cette démo). +> • Connaissances de base en C#—aucun tour de passe‑passe Excel avancé requis. + +--- + +## Vue d’ensemble de ce que nous allons construire + +- **Feuille maître** contenant un espace réservé smart‑marker (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** qui lit une source de données (par ex. un `DataTable`) et crée une nouvelle feuille pour chaque département. +- **Noms de feuilles dynamiques** suivant le modèle `Dept_{0}` où `{0}` est remplacé par le nom du département. +- **Fichier XLSX final** enregistré dans le dossier de votre choix. + +C’est tout. Simple, mais suffisamment puissant pour des factures, des rapports ou tout autre rendu Excel à onglets multiples. + +--- + +![Diagramme montrant comment une feuille maître est traitée pour générer plusieurs feuilles dynamiques](/images/how-to-create-worksheets-diagram.png "Diagramme de création de feuilles de calcul") + +*Texte alternatif : illustration de la création de feuilles avec des noms de feuilles dynamiques à l’aide d’Aspose.Cells.* + +--- + +## Étape 1 : Configurer le projet et ajouter Aspose.Cells + +### Pourquoi c’est important +Avant que le code ne s’exécute, le compilateur doit savoir où se trouvent les classes `Workbook`, `Worksheet` et `SmartMarkerProcessor`. Ajouter le package NuGet garantit que vous disposez de l’API la plus récente et la plus complète. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Astuce :** Si vous utilisez Visual Studio, faites un clic droit sur le projet → *Manage NuGet Packages* → recherchez *Aspose.Cells* et installez la dernière version stable. + +--- + +## Étape 2 : Créer un nouveau classeur et la feuille maître + +### Ce que nous faisons +Nous partons d’un classeur vierge, puis récupérons la première feuille (indice 0). Cette feuille servira de **feuille maître** contenant le jeton smart‑marker. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +La classe `Workbook` est le conteneur de toutes les feuilles. Par défaut, elle crée une feuille nommée *Sheet1* ; la renommer en « Master » rend le fichier final plus facile à parcourir. + +--- + +## Étape 3 : Insérer un jeton Smart‑Marker pour les noms des feuilles détaillées + +### Pourquoi utiliser un smart‑marker ? +Les smart markers permettent à Aspose.Cells de remplacer les espaces réservés par des données à l’exécution. Le jeton `«DetailSheetNewName:Dept»` indique au processeur : *« Lorsque vous voyez ceci, créez une nouvelle feuille détaillée pour chaque ligne de la colonne `Dept`. »* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Vous pouvez placer le jeton où vous le souhaitez ; nous l’avons mis en **A1** pour plus de clarté. Lorsque le processeur s’exécute, il remplacera le jeton par le nom réel du département et générera la feuille correspondante. + +--- + +## Étape 4 : Préparer la source de données + +### Comment les données pilotent la création des feuilles +Aspose.Cells fonctionne avec n’importe quelle source de données `IEnumerable`. Pour cette démo, nous utilisons un `DataTable` avec une seule colonne nommée `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Et si vous avez plus de colonnes ?** +> Le processeur ignorera les colonnes supplémentaires sauf si vous les référencez dans d’autres smart markers. Cela garde la génération de feuilles légère. + +--- + +## Étape 5 : Configurer le SmartMarkerProcessor et le modèle de nommage + +### Noms de feuilles dynamiques en action +Nous voulons que chaque nouvelle feuille soit nommée `Dept_Finance`, `Dept_HR`, etc. L’option `DetailSheetNewName` nous permet de définir un modèle où `{0}` est substitué par le nom réel du département. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Si un département apparaît deux fois, Aspose ajoutera automatiquement un suffixe numérique (par ex. `Dept_Finance_1`) pour éviter les doublons de noms de feuilles. + +--- + +## Étape 6 : Traiter la feuille maître pour générer les feuilles détaillées + +### Le cœur du **process master sheet** +Appeler `Process` fait le gros du travail : il parcourt la feuille maître à la recherche de smart markers, crée de nouvelles feuilles, copie la mise en page maître, et remplit chaque feuille avec les données de la ligne correspondante. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Après cet appel, le classeur contient une feuille maître plus quatre feuilles détaillées—chacune nommée selon notre modèle et remplie du nom du département dans la cellule A1. + +--- + +## Étape 7 : Enregistrer le classeur au format XLSX + +### Étape finale—**save workbook as XLSX** +Maintenant que les feuilles existent, nous écrivons le fichier sur le disque. Vous pouvez choisir n’importe quel chemin ; assurez‑vous simplement que le répertoire existe. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +L’ouverture de `DetailSheets.xlsx` affichera : + +| Nom de la feuille | Cellule A1 (Contenu) | +|-------------------|----------------------| +| Master | «DetailSheetNewName:Dept» (inchangé) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Cas particulier :** Si le dossier de sortie n’existe pas, `Save` lève une `DirectoryNotFoundException`. Enveloppez l’appel dans un bloc try‑catch ou créez le dossier au préalable. + +--- + +## Exemple complet fonctionnel + +En rassemblant le tout, voici le programme complet que vous pouvez copier‑coller dans une application console : + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Exécutez le programme, ouvrez le fichier généré, et vous verrez exactement la mise en page décrite précédemment. Aucun copier‑coller manuel, aucune interop COM—juste du C# propre qui **génère des feuilles Excel** avec des **noms de feuilles dynamiques**. + +--- + +## Questions fréquentes & Pièges courants + +| Question | Réponse | +|----------|---------| +| *Puis‑je utiliser un DataSet avec plusieurs tables ?* | Oui. Passez la table appropriée à `Process` ou utilisez un dictionnaire de tables. | +| *Et si j’ai besoin de plusieurs smart‑markers sur la feuille maître ?* | Ajoutez d’autres jetons comme `«DetailSheetNewName:Region»` et configurez un modèle de nommage séparé si nécessaire. | +| *La feuille maître est‑elle conservée dans le fichier final ?* | Par défaut, oui. Si vous n’en avez pas besoin, appelez `workbook.Worksheets.RemoveAt(0)` après le traitement. | +| *Comment Aspose gère‑t‑il de très grands ensembles de données ?* | Il diffuse les données efficacement, mais vous pouvez augmenter `MemorySetting` si vous atteignez les limites de mémoire. | +| *Puis‑je exporter en CSV au lieu de XLSX ?* | Absolument—utilisez `workbook.Save("file.csv", SaveFormat.Csv)`. La même logique de création de feuilles s’applique. | + +--- + +## Prochaines étapes + +Maintenant que vous savez **comment créer des feuilles** dynamiquement, vous pouvez explorer : + +- **Enregistrer le classeur en XLSX** avec protection par mot de passe (`workbook.Protect("pwd")`). +- **Générer des feuilles Excel** à partir de sources JSON ou XML en utilisant `JsonDataSource` ou `XmlDataSource`. +- **Appliquer des styles** à chaque feuille générée (polices, couleurs) via les objets `Style`. +- **Fusionner des cellules** ou insérer automatiquement des formules pour des rapports récapitulatifs. + +Chacune de ces extensions repose sur le même concept de **process master sheet**, la transition sera donc fluide. + +--- + +## Conclusion + +Nous avons couvert l’ensemble du pipeline : depuis l’initialisation d’un classeur, l’insertion d’un smart‑marker, la configuration de **noms de feuilles dynamiques**, le traitement de la feuille maître pour **générer des feuilles Excel**, et enfin **l’enregistrement du classeur au format XLSX**. L’exemple est complet, exécutable, et illustre les meilleures pratiques tant en termes de performance que de maintenabilité. + +Essayez‑le, modifiez le modèle de nommage, alimentez‑le avec de vraies données métier, et voyez votre automatisation Excel décoller. Si vous rencontrez le moindre problème, laissez un commentaire ci‑dessous—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/german/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/german/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..2da40ef3db --- /dev/null +++ b/cells/german/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Wie man ein Arbeitsbuch in C# mit Aspose.Cells berechnet – lernen Sie, + ein Excel‑Arbeitsbuch zu erstellen, Excel‑Zellen zu füllen, Excel‑Formeln zu berechnen + und die Sortierfunktion zu verwenden. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: de +og_description: Wie man ein Arbeitsbuch in C# schnell berechnet. Dieses Tutorial zeigt, + wie man ein Excel‑Arbeitsbuch erstellt, Excel‑Zellen befüllt, Excel‑Formeln berechnet + und die Sortierfunktion nutzt. +og_title: Wie man eine Arbeitsmappe in C# berechnet – Vollständiger Sortierleitfaden +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Wie man eine Arbeitsmappe in C# berechnet – Sortier‑ und Formelleitfaden +url: /de/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man ein Workbook in C# berechnet – Sortier‑ & Formelführer + +Haben Sie sich jemals gefragt, **wie man ein Workbook**‑Werte „on the fly“ berechnen kann, ohne Excel zu öffnen? Sie sind nicht allein. In vielen Automatisierungsszenarien muss man eine Excel‑Datei erzeugen, ein paar Zahlen eintragen, sie sortieren und die Ergebnisse wieder in die .NET‑App holen – alles programmgesteuert. + +In diesem Leitfaden gehen wir genau darauf ein: Wir **erstellen ein Excel‑Workbook**, **befüllen Excel‑Zellen**, hängen eine **SORT**‑Formel an und **berechnen schließlich Excel‑Formeln**, sodass Sie das sortierte Array direkt aus C# auslesen können. Am Ende haben Sie ein lauffähiges Snippet, das Sie in jedes Projekt einbinden können, das Aspose.Cells (oder eine ähnliche Bibliothek) referenziert. + +## Voraussetzungen + +- .NET 6+ (der Code funktioniert auch mit .NET Framework 4.7.2) +- Aspose.Cells für .NET (kostenlose Test‑NuGet‑Package `Aspose.Cells`) +- Grundlegende Kenntnisse der C#‑Syntax +- Keine installierte Kopie von Microsoft Excel nötig; die Bibliothek übernimmt die schwere Arbeit für Sie + +Wenn Sie damit vertraut sind, legen wir los. + +## Wie man ein Workbook berechnet – Initialisierung des Workbooks + +Das allererste, was Sie tun müssen, ist ein frisches Workbook‑Objekt zu erzeugen. Stellen Sie sich das vor wie das Öffnen einer brandneuen, komplett leeren Excel‑Datei. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Warum das wichtig ist:** Die `Workbook`‑Klasse ist der Einstiegspunkt für jede Operation – ohne sie können Sie keine Blätter, Zellen oder Formeln hinzufügen. Eine korrekte Initialisierung stellt sicher, dass Sie mit einem sauberen Blatt arbeiten. + +## Excel‑Workbook erstellen und Arbeitsblatt ansprechen + +Jetzt, wo das Workbook existiert, müssen wir sicherstellen, dass wir das richtige Arbeitsblatt ansprechen. Die meisten Bibliotheken erzeugen standardmäßig ein einzelnes Blatt mit dem Namen „Sheet1“, aber Sie können es umbenennen oder weitere hinzufügen, wenn Sie möchten. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Pro‑Tipp:** Das frühzeitige Benennen von Blättern hilft, wenn Sie später in Formeln darauf verweisen (`'Data'!A1:A10`). Es erleichtert zudem das Debuggen. + +## Excel‑Zellen mit Daten befüllen + +Als Nächstes **befüllen wir Excel‑Zellen** mit den Zahlen, die wir sortieren wollen. Das Beispiel verwendet nur zwei Zellen, aber Sie können den Bereich auf Dutzende von Zeilen erweitern. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Warum wir `PutValue` verwenden** – Es erkennt automatisch den Datentyp (int, double, string usw.) und speichert ihn passend, sodass Sie nicht manuell casten müssen. + +## SORT‑Funktion per Formel anwenden + +Die Excel‑Funktion `SORT` tut genau das, was ihr Name verspricht: Sie liefert ein sortiertes Array, ohne die Originaldaten zu verändern. Wir setzen diese Formel in Zelle `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Hinweis zu Sonderfällen:** `SORT` liefert ein **Array**‑Ergebnis. In älteren Excel‑Versionen (vor Office 365) hätte man dafür Ctrl+Shift+Enter benötigen müssen. Mit Aspose.Cells erhalten Sie das Array automatisch, sobald Sie das Workbook berechnen. + +## Excel‑Formeln berechnen, um Ergebnisse zu erhalten + +An diesem Punkt weiß das Workbook nur *was* es berechnen soll, nicht *dass* es das tun soll. Der Aufruf von `CalculateFormula` startet die Engine, die jede Formel auswertet – inklusive unserer `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Erwartete Konsolenausgabe** + +``` +Sorted array: {2, 5} +``` + +> **Was gerade passiert ist?** +> 1. Das Workbook hat eine interne Berechnungs‑Engine erstellt. +> 2. Die `SORT`‑Formel hat den Bereich `A1:A2` untersucht. +> 3. Die Engine hat ein neues Array erzeugt, das wir aus `B1` ausgelesen haben. + +Wenn Sie die Werte in `A1` und `A2` ändern (oder den Bereich erweitern) und `CalculateFormula` erneut ausführen, wird die Ausgabe automatisch aktualisiert – ohne zusätzlichen Code. + +## Sortierfunktion für größere Datensätze verwenden (optional) + +Die meisten realen Szenarien umfassen mehr als zwei Zeilen. Hier ein kurzer Patch, der für jede Anzahl von Einträgen funktioniert: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Warum das nützlich sein kann:** Das Sortieren großer Bereiche ermöglicht das Erstellen von Bestenlisten, das Rangordnen von Finanzdaten oder das Aufräumen importierter CSV‑Dateien, bevor sie weiterverarbeitet werden. + +## Häufige Stolperfallen & wie man sie vermeidet + +| Problem | Warum es passiert | Lösung | +|---------|-------------------|--------| +| **`#VALUE!` in B1** | Die `SORT`‑Formel verweist auf einen leeren oder nicht‑numerischen Bereich. | Sicherstellen, dass jede Zelle im Quellbereich eine Zahl oder sortierbaren Text enthält. | +| **Array‑Abschneiden** | Versuch, ein Array aus einer einzelnen Zelle ohne Cast zu lesen. | `worksheet.Cells["B1"].Value` zu `object[]` (oder dem passenden Typ) casten. | +| **Leistungs‑Einbruch** | Wiederholtes Neuberechnen riesiger Workbooks nach jeder kleinen Änderung. | `CalculateFormula` erst aufrufen, wenn alle Änderungen abgeschlossen sind, oder `CalculateFormulaOptions` nutzen, um den Geltungsbereich zu begrenzen. | + +## Vollständiges, lauffähiges Beispiel (Copy‑Paste‑bereit) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Ergebnis‑Screenshot** +> ![how to calculate workbook result in Excel](https://example.com/images/sorted-result.png "how to calculate workbook result in Excel") + +Das Bild oben zeigt das Workbook nach der Berechnung – Zelle **B1** enthält das sortierte Array `{2, 5}`. + +## Fazit + +Wir haben gerade **wie man ein Workbook** programmgesteuert berechnet: ein Excel‑Workbook erstellen, Excel‑Zellen befüllen, eine `SORT`‑Formel einbetten und schließlich **Excel‑Formeln berechnen**, um die sortierten Daten zu extrahieren. Der Ansatz funktioniert für kleine Zwei‑Zellen‑Beispiele und skaliert elegant auf größere Datensätze. + +Was kommt als Nächstes? Kombinieren Sie das mit anderen Funktionen wie `FILTER`, `UNIQUE` oder sogar benutzerdefinierter VBA‑ähnlicher Logik über `WorksheetFunction`. Sie können das Workbook auch auf die Festplatte schreiben (`workbook.Save("Sorted.xlsx")`) und in Excel öffnen, um die Ergebnisse visuell zu prüfen. + +Experimentieren Sie ruhig – tauschen Sie die Zahlen aus, ändern Sie den Bereich oder verketten Sie mehrere Formeln. Automatisierung bedeutet schnelles Iterieren, und jetzt haben Sie ein solides Fundament, auf dem Sie aufbauen können. + +Viel Spaß beim Coden, und mögen Ihre Workbooks immer exakt das berechnen, was Sie erwarten! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/german/net/conversion-and-rendering/_index.md index 83e8262e3d..1eb27ca8d4 100644 --- a/cells/german/net/conversion-and-rendering/_index.md +++ b/cells/german/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Erfahren Sie, wie Sie Excel mit Aspose.Cells in .NET nahtlos in PDF konvertieren Erfahren Sie in dieser Schritt-für-Schritt-Anleitung, wie Sie ein Excel-Arbeitsblatt mit Aspose.Cells für .NET in SVG konvertieren. Ideal für .NET-Entwickler, die Excel in SVG rendern möchten. ### [Konvertieren von Excel in MHTML in .NET](./converting-excel-to-mhtml/) Erfahren Sie, wie Sie mit Aspose.Cells Excel-Dateien effizient in das MHTML-Format in .NET konvertieren und so Ihre Berichts- und Datenfreigabefunktionen verbessern. +### [Bild aus Excel erstellen – Pivot nach PNG exportieren in C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Erfahren Sie, wie Sie mit Aspose.Cells Pivot‑Tabellen aus Excel in PNG‑Bilder in C# exportieren. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/german/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..3985c8d9b5 --- /dev/null +++ b/cells/german/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Erstelle ein Bild aus Excel in C# mit Aspose.Cells. Erfahre, wie du Excel + in ein Bild konvertierst, Pivot-Tabellen exportierst und das Bild als PNG speicherst + – mit einem vollständigen, ausführbaren Beispiel. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: de +og_description: Erstelle schnell ein Bild aus Excel in C#. Dieser Leitfaden zeigt, + wie man Excel in ein Bild konvertiert, Pivot exportiert und das Bild mit klarem + Code als PNG speichert. +og_title: Bild aus Excel erstellen – Pivot nach PNG exportieren in C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Bild aus Excel erstellen – Pivot nach PNG exportieren in C# +url: /de/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Bild aus Excel erstellen – Pivot nach PNG exportieren in C# + +Haben Sie jemals **ein Bild aus Excel** erstellen müssen, waren sich aber nicht sicher, welche API Sie dafür verwenden sollen? Sie sind nicht allein – viele Entwickler stoßen auf dieses Problem, wenn sie versuchen, eine Live-Pivot-Tabelle in ein teilbares PNG zu verwandeln. + +In diesem Tutorial führen wir Sie durch eine vollständige, sofort einsatzbereite Lösung, die **Excel in ein Bild konvertiert**, **zeigt, wie man Pivot exportiert**, und erklärt, **wie man das Bild** als PNG-Datei speichert. Am Ende haben Sie eine einzelne Methode, die die gesamte Aufgabe erledigt, plus Tipps für Randfälle, auf die Sie stoßen könnten. + +## Was Sie benötigen + +- **Aspose.Cells for .NET** (das NuGet‑Paket `Aspose.Cells`). Es ist eine kommerzielle Bibliothek, bietet aber einen kostenlosen Evaluierungsmodus – perfekt zum Testen. +- .NET 6+ (oder .NET Framework 4.6+). +- Eine einfache Excel‑Arbeitsmappe (`Pivot.xlsx`), die mindestens eine Pivot‑Tabelle enthält. +- Beliebige IDE Ihrer Wahl – Visual Studio, Rider oder sogar VS Code funktionieren. + +Das war's. Keine zusätzlichen DLLs, kein COM‑Interop und keine umständlichen Excel‑Automatisierungstricks. + +Jetzt tauchen wir in den Code ein. + +## Schritt 1: Arbeitsmappe laden – Bild aus Excel erstellen + +Das Erste, was wir tun, ist die Excel‑Datei zu öffnen, die die Pivot‑Tabelle enthält. Dieser Schritt ist entscheidend, weil der Renderer mit einem im Speicher befindlichen `Workbook`‑Objekt arbeitet. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Warum das wichtig ist:* Das Laden der Arbeitsmappe gibt uns Zugriff auf die **Pivot**‑Tabelle und alle Formatierungen, die später beim **Konvertieren von Excel zu Bild** berücksichtigt werden. Wenn Sie diesen Schritt überspringen, hat der Renderer nichts, womit er arbeiten kann. + +## Schritt 2: Exportoptionen konfigurieren – Excel in Bild konvertieren + +Als Nächstes teilen wir Aspose mit, wie das endgültige Bild aussehen soll. Die Klasse `ImageOrPrintOptions` ermöglicht es uns, PNG auszuwählen, DPI festzulegen und sogar die Hintergrundfarbe zu steuern. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Warum das wichtig ist:* Durch das Festlegen einer hohen DPI stellen wir sicher, dass der **Export von Excel zu PNG** scharf aussieht, selbst wenn die Pivot‑Tabelle viele Zeilen enthält. Sie können die DPI reduzieren, wenn die Dateigröße ein Problem darstellt. + +## Schritt 3: Arbeitsblatt rendern – Wie man Pivot exportiert + +Jetzt kommt das Herzstück des Prozesses: das Arbeitsblatt (mit seiner Pivot‑Tabelle) in ein Bild zu verwandeln. Die Klasse `WorksheetRender` übernimmt die schwere Arbeit. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Warum das wichtig ist:* Hier **exportieren wir die Pivot** in ein visuelles Format. Der Renderer respektiert alle Pivot‑Formatierungen, Slicer und bedingten Stile, sodass das PNG genau so aussieht wie in Excel. + +## Schritt 4: Alles zusammenführen – Wie man das Bild speichert + +Abschließend stellen wir eine einzige öffentliche Methode bereit, die alle Teile zusammenführt. Diese Methode rufen Sie aus Ihrer Anwendung, Ihrem Service oder Ihrem Konsolen‑Tool auf. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Vollständiges funktionierendes Beispiel + +Erstellen Sie ein neues Konsolenprojekt, fügen Sie das NuGet‑Paket `Aspose.Cells` hinzu und legen Sie dann die folgende `Program.cs` ab: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Erwartetes Ergebnis:** Nachdem Sie das Programm ausgeführt haben, erscheint `PivotImage.png` im von Ihnen angegebenen Ordner und zeigt einen pixelgenauen Schnappschuss der Pivot‑Tabelle. + +![Beispiel für Bild aus Excel erstellen](https://example.com/placeholder.png "Beispiel für Bild aus Excel erstellen") + +*Alt-Text:* Beispiel für Bild aus Excel, das die exportierte Pivot‑Tabelle als PNG zeigt. + +## Häufige Fragen & Randfälle + +### Was ist, wenn meine Arbeitsmappe mehrere Arbeitsblätter hat? + +Der Helfer greift derzeit auf `Worksheets[0]` zu. Um ein bestimmtes Blatt anzusprechen, übergeben Sie den Blattnamen: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### Das PNG ist unscharf – wie behebe ich das? + +Erhöhen Sie `HorizontalResolution` und `VerticalResolution` in `GetImageOptions`. Werte von 300–600 DPI erzeugen in der Regel scharfe Ergebnisse. Denken Sie daran, dass höhere DPI zu einer größeren Dateigröße führen. + +### Meine Pivot erstreckt sich über mehr als eine Seite – kann ich alle Seiten exportieren? + +Ja. Durchlaufen Sie `renderer.PageCount` und rufen Sie für jede Seite `ToImage(pageIndex, ...)` auf, oder setzen Sie `OnePagePerSheet = false`, um separate Bilder pro Seite zu erhalten. + +### Ich benötige nur einen Teil des Blatts (z. B. einen bestimmten Bereich)? + +Verwenden Sie `ImageOrPrintOptions`, um `PrintArea` festzulegen: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Auf diese Weise **konvertieren Sie Excel in ein Bild** nur für den Bereich, der Sie interessiert. + +### Funktioniert das mit .xls (Excel 97‑2003) Dateien? + +Absolut. Aspose.Cells abstrahiert das Dateiformat, sodass Sie `.xls`, `.xlsx`, `.xlsm` oder sogar `.ods` verwenden können und dennoch **Excel zu PNG exportieren**. + +## Pro‑Tipps & Stolperfallen + +- **License matters**: Im Evaluierungsmodus fügt Aspose ein Wasserzeichen hinzu. Setzen Sie für die Produktion eine gültige Lizenz ein. +- **Memory usage**: Das Rendern großer Arbeitsmappen kann speicherintensiv sein. Entsorgen Sie das `Workbook`‑Objekt umgehend oder wickeln Sie es in einen `using`‑Block ein. +- **Thread safety**: `Workbook` ist nicht thread‑sicher. Erstellen Sie für jede Anforderung eine neue Instanz, wenn Sie in einem Webservice arbeiten. +- **Image format flexibility**: Wenn Sie JPEG oder BMP benötigen, ändern Sie einfach `ImageFormat` in `GetImageOptions`. + +## Fazit + +Sie haben nun ein solides, durchgängiges Rezept, um **ein Bild aus Excel** zu **erstellen**, speziell um **Pivot**‑Daten als hochqualitatives PNG zu **exportieren**. Das obige Snippet zeigt den vollständigen, ausführbaren Code, erklärt **wie man das Bild speichert** und behandelt Varianten wie mehrere Arbeitsblätter oder benutzerdefinierte Druckbereiche. + +Nächste Schritte? Versuchen Sie, diesen Exporter mit einem E‑Mail‑Dienst zu verknüpfen, um das PNG automatisch zu senden, oder experimentieren Sie mit `ImageOrPrintOptions`, um PDFs anstelle von PNGs zu erzeugen. Das gleiche Muster funktioniert für **Excel zu Bild konvertieren** Aufgaben in vielen Formaten. + +Haben Sie weitere Fragen? Hinterlassen Sie einen Kommentar, und viel Spaß beim Coden! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..317002634f 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 @@ -25,11 +25,13 @@ Für Entwickler, die mit Excel-Dateien in .NET arbeiten, kann eine effiziente Da 2. [Programmgesteuertes Konvertieren einer Excel-Datei in DOCX in .NET](./converting-excel-file-to-docx/)Dieses Tutorial bietet eine einfache Möglichkeit, Excel-Daten in das DOCX-Format zu konvertieren – ideal für die Erstellung gemeinsam nutzbarer Berichte oder Dokumente. Sie können dieser Schritt-für-Schritt-Anleitung zum Erstellen von DOCX-Dokumenten mit eingebetteten Daten folgen. -3. [Konvertieren einer Excel-Datei in HTML mit Tooltip in .NET](./converting-excel-file-to-html-with-tooltip/): Verbessern Sie die Interaktivität Ihrer Webanwendung, indem Sie Excel-Daten als HTML mit Tooltips einbetten. Aspose.Cells erleichtert die Konvertierung von Excel-Daten in HTML und fügt Ihren Webinhalten umfangreiche Informations-Overlays hinzu. +3. [Programmgesteuertes Konvertieren einer Excel-Datei in DOCX mit C# – Vollständige Schritt‑für‑Schritt‑Anleitung](./save-excel-as-docx-with-c-complete-step-by-step-guide/)Erfahren Sie, wie Sie mit Aspose.Cells für .NET Excel-Dateien programmgesteuert in DOCX speichern. Schritt‑für‑Schritt‑Anleitung mit Codebeispielen. -4. [Konvertieren einer Excel-Datei in PDF (A-1a) programmgesteuert in .NET](./converting-excel-file-to-pdf-a-1a/)Die Konvertierung von Dateien in PDF/A-1a gewährleistet die langfristige Speicherung Ihrer Daten. Dieses Tutorial führt Sie durch den Konvertierungsprozess und zeigt detaillierte Codebeispiele zum Erstellen von PDF/A-1a-Dateien für die sichere Archivierung. +4. [Konvertieren einer Excel-Datei in HTML mit Tooltip in .NET](./converting-excel-file-to-html-with-tooltip/): Verbessern Sie die Interaktivität Ihrer Webanwendung, indem Sie Excel-Daten als HTML mit Tooltips einbetten. Aspose.Cells erleichtert die Konvertierung von Excel-Daten in HTML und fügt Ihren Webinhalten umfangreiche Informations-Overlays hinzu. -5. [Programmgesteuertes Verfolgen des Dokumentkonvertierungsfortschritts in .NET](./tracking-document-conversion-progress/): Überwachen Sie den Konvertierungsfortschritt in Echtzeit! Aspose.Cells für .NET enthält Funktionen, mit denen Sie die Dokumentkonvertierung verfolgen und verwalten können, sodass die Prozesse transparent und effizient bleiben. +5. [Konvertieren einer Excel-Datei in PDF (A-1a) programmgesteuert in .NET](./converting-excel-file-to-pdf-a-1a/)Die Konvertierung von Dateien in PDF/A-1a gewährleistet die langfristige Speicherung Ihrer Daten. Dieses Tutorial führt Sie durch den Konvertierungsprozess und zeigt detaillierte Codebeispiele zum Erstellen von PDF/A-1a-Dateien für die sichere Archivierung. + +6. [Programmgesteuertes Verfolgen des Dokumentkonvertierungsfortschritts in .NET](./tracking-document-conversion-progress/): Überwachen Sie den Konvertierungsfortschritt in Echtzeit! Aspose.Cells für .NET enthält Funktionen, mit denen Sie die Dokumentkonvertierung verfolgen und verwalten können, sodass die Prozesse transparent und effizient bleiben. ## Konvertieren von Excel-Dateien in TIFF, PPTX und mehr @@ -46,6 +48,8 @@ Aspose.Cells für .NET vereinfacht Dokumenttransformationen, sodass Entwickler P Erfahren Sie, wie Sie mit Aspose.Cells CSV in .NET in JSON konvertieren. Schritt-für-Schritt-Anleitung zur Datentransformation mit leicht verständlichen Codebeispielen. ### [Programmgesteuertes Konvertieren einer Excel-Datei in DOCX in .NET](./converting-excel-file-to-docx/) Erfahren Sie in dieser Schritt-für-Schritt-Anleitung, wie Sie Excel-Dateien mit Aspose.Cells für .NET programmgesteuert in DOCX konvertieren. Perfekt für die Berichterstellung und den Datenaustausch. +### [Programmgesteuertes Konvertieren einer Excel-Datei in DOCX mit C# – Vollständige Schritt‑für‑Schritt‑Anleitung](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Erfahren Sie, wie Sie mit Aspose.Cells für .NET Excel-Dateien programmgesteuert in DOCX speichern. Schritt‑für‑Schritt‑Anleitung mit Codebeispielen. ### [Konvertieren einer Excel-Datei in HTML mit Tooltip in .NET](./converting-excel-file-to-html-with-tooltip/) Konvertieren Sie Excel mit Aspose.Cells für .NET in wenigen einfachen Schritten in HTML mit Tooltips. Erweitern Sie Ihre Web-Apps mühelos mit interaktiven Excel-Daten. ### [Programmgesteuertes Konvertieren einer Excel-Datei in Markdown in .NET](./converting-excel-file-to-markdown/) diff --git a/cells/german/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/german/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..650436f484 --- /dev/null +++ b/cells/german/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Excel als Docx in C# speichern — lernen Sie, wie Sie Excel in Word konvertieren, + Diagramme einbetten und ein Excel‑Arbeitsbuch in C# mit Aspose.Cells laden. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: de +og_description: Speichern Sie Excel als Docx in C# im ersten Satz erklärt. Folgen + Sie diesem Tutorial, um Excel nach Word zu konvertieren, Diagramme einzubetten und + ein Excel‑Arbeitsbuch in C# zu laden. +og_title: Excel als Docx mit C# speichern – Vollständiger Leitfaden +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Excel als Docx mit C# speichern – Vollständige Schritt‑für‑Schritt‑Anleitung +url: /de/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel als Docx mit C# speichern – Vollständige Schritt‑für‑Schritt‑Anleitung + +Haben Sie jemals **Excel als Docx speichern** müssen, wussten aber nicht, wo Sie anfangen sollen? Sie sind nicht allein – viele Entwickler stoßen auf dasselbe Problem, wenn sie *Excel nach Word konvertieren* möchten, während die Diagramme erhalten bleiben. In diesem Tutorial gehen wir den genauen Code durch, den Sie benötigen, erklären, warum jede Zeile wichtig ist, und zeigen Ihnen, wie Sie Excel‑Diagramme einbetten, ohne an Qualität zu verlieren. + +Wir geben Ihnen außerdem ein paar zusätzliche Tipps zu **load Excel workbook C#**‑Szenarien, sodass Sie am Ende Excel problemlos in Docx in jedem .NET‑Projekt konvertieren können. Keine vagen Hinweise, nur ein konkretes, ausführbares Beispiel, das Sie sofort copy‑paste können. + +--- + +## Was dieser Leitfaden abdeckt + +- Laden einer bestehenden `.xlsx`‑Datei mit Aspose.Cells (oder einer anderen kompatiblen Bibliothek). +- Optionale Manipulation von Arbeitsblättern oder Diagrammen vor der Konvertierung. +- Speichern der Arbeitsmappe als `.docx`‑Datei unter Beibehaltung eingebetteter Diagramme. +- Verifizieren der Ausgabe und Umgang mit gängigen Randfällen wie großen Arbeitsmappen oder nicht unterstützten Diagrammtypen. + +Wenn Sie sich fragen, **warum Sie Excel in Docx konvertieren möchten**, denken Sie an Berichte, die Sie an nicht‑technische Stakeholder senden müssen – Word‑Dokumente werden universell akzeptiert und bewahren die visuelle Treue Ihrer Diagramme. Lassen Sie uns eintauchen. + +--- + +## Voraussetzungen – Load Excel Workbook C# + +Bevor wir Code schreiben, stellen Sie sicher, dass Sie Folgendes haben: + +| Anforderung | Grund | +|-------------|-------| +| **.NET 6.0 oder höher** | Moderne Laufzeit, bessere Leistung und volle Unterstützung für Aspose.Cells. | +| **Aspose.Cells for .NET** (NuGet‑Paket `Aspose.Cells`) | Stellt die `Workbook`‑Klasse bereit, die zum Lesen von Excel und Exportieren nach DOCX verwendet wird. | +| **Visual Studio 2022** (oder jede IDE Ihrer Wahl) | Praktisch zum Debuggen und IntelliSense. | +| **Eine Excel‑Datei mit Diagrammen** (`AdvancedCharts.xlsx`) | Um die *embed excel charts*‑Funktion in Aktion zu sehen. | + +Sie können die Bibliothek über die Package Manager Console installieren: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro‑Tipp:** Wenn Sie in einer CI/CD‑Pipeline arbeiten, fügen Sie das Paket zu Ihrer `*.csproj` hinzu, damit Wiederherstellungen automatisch erfolgen. + +--- + +## Schritt 1 – Laden der Excel‑Arbeitsmappe (Save Excel as Docx beginnt hier) + +Das Erste, was wir tun, ist das Laden der Quellarbeitsmappe. Hier kommt der Ausdruck **load excel workbook c#** zum Einsatz. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Warum das wichtig ist:** Das Laden der Datei gibt Ihnen Zugriff auf jedes Arbeitsblatt, Diagramm und jede Formatvorlage. Ohne diesen Schritt gibt es nichts zu konvertieren, und die API kann Ihre eingebetteten Grafiken nicht erhalten. + +--- + +## Schritt 2 – (Optional) Die Arbeitsmappe vor der Konvertierung anpassen + +Vielleicht möchten Sie ein Blatt umbenennen, eine Spalte ausblenden oder sogar den Titel eines Diagramms ändern. Dieser Schritt ist optional, zeigt aber, wie flexibel die Konvertierung sein kann. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Randfall:** Einige ältere Diagrammtypen (z. B. Radar) werden möglicherweise nicht perfekt in Word dargestellt. Testen Sie Ihre spezifischen Diagramme nach der Konvertierung. + +--- + +## Schritt 3 – Speichern der Arbeitsmappe als Word‑Dokument (Die Kern‑„Save Excel as Docx“‑Aktion) + +Jetzt kommt der entscheidende Moment: Wir **speichern Excel als Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Wenn dies ausgeführt wird, schreibt Aspose.Cells jedes Arbeitsblatt als Tabelle in die Word‑Datei und bettet jedes Diagramm als hochauflösendes Bild ein. Das Ergebnis ist ein vollständig bearbeitbares `.docx`, das genauso aussieht wie die ursprüngliche Excel‑Ansicht. + +> **Warum DOCX statt PDF wählen?** DOCX ermöglicht es Empfängern, später Text zu bearbeiten oder Diagramme zu ersetzen, während PDF ein statischer Schnappschuss ist. + +--- + +## Schritt 4 – Ausgabe überprüfen und häufige Probleme beheben + +Nachdem die Konvertierung abgeschlossen ist, öffnen Sie `ChartsInWord.docx` in Microsoft Word: + +1. **Überprüfen Sie, dass jedes Arbeitsblatt als separater Abschnitt erscheint** – Sie sollten Tabellen sehen, die Ihre Excel‑Daten spiegeln. +2. **Bestätigen Sie, dass Diagramme eingebettet sind** – sie sollten auswählbare Bilder sein, keine defekten Platzhalter. +3. **Falls ein Diagramm fehlt**, stellen Sie sicher, dass der Diagrammtyp von Aspose.Cells unterstützt wird (siehe die [offizielle Kompatibilitätsliste](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro‑Tipp:** Bei großen Arbeitsmappen sollten Sie das `MemorySetting` von Aspose.Cells erhöhen, um `OutOfMemoryException` zu vermeiden: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Vollständiges funktionierendes Beispiel (Copy‑Paste‑bereit) + +Unten finden Sie das komplette Programm, bereit zum Kompilieren. Ersetzen Sie `YOUR_DIRECTORY` durch den tatsächlichen Ordnerpfad auf Ihrem Rechner. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Erwartetes Ergebnis:** Ein Word‑Dokument (`ChartsInWord.docx`), das alle Arbeitsblätter als Tabellen und jedes Diagramm als eingebettetes, hochauflösendes Bild enthält. Öffnen Sie es in Word, und Sie sehen das genaue visuelle Layout, das Sie in Excel hatten. + +--- + +## Häufig gestellte Fragen (FAQ) + +**F: Kann ich mehrere Excel‑Dateien in einer Schleife konvertieren?** +A: Absolut. Packen Sie die Konvertierungslogik in eine `foreach (var file in Directory.GetFiles(...))`‑Schleife und verwenden Sie dasselbe `Workbook`‑Instanz‑Muster. + +**F: Funktioniert das auch mit `.xls`‑Dateien?** +A: Ja – Aspose.Cells unterstützt Legacy‑Formate. Ändern Sie einfach die Quell‑Erweiterung; der gleiche Aufruf `SaveFormat.Docx` gilt weiterhin. + +**F: Was ist, wenn ich Formeln beim Konvertieren beibehalten muss?** +A: Word unterstützt Excel‑Formeln nicht nativ. Die Konvertierung flacht Formeln zu ihren berechneten Werten ab. Wenn Sie Live‑Berechnungen benötigen, sollten Sie die Arbeitsmappe stattdessen als OLE‑Objekt einbetten. + +**F: Gibt es eine Möglichkeit, die Bildauflösung der Diagramme zu steuern?** +A: Verwenden Sie `ImageOrPrintOptions` vor dem Speichern: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Excel‑Diagramme direkt in Word einbetten (über Save Excel as Docx hinaus) + +Wenn Sie bevorzugen, dass das Diagramm in Word editierbar bleibt, können Sie das gesamte Excel‑Blatt als OLE‑Objekt einbetten: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Diese Technik *embed excel charts* als Live‑Objekte, sodass Endbenutzer per Doppelklick direkt aus Word heraus in Excel bearbeiten können. Sie ist eine praktische Alternative, wenn Sie Interaktivität benötigen. + +--- + +## Fazit + +Sie haben nun eine solide End‑zu‑End‑Lösung für **save Excel as docx** mit C#. Das Tutorial behandelte das Laden der Arbeitsmappe, optionale Anpassungen, den eigentlichen Speicher‑Vorgang, Verifizierungsschritte und sogar einen kurzen Blick auf das Einbetten von Diagrammen für editierbare Szenarien. Durch Befolgen des obigen Codes können Sie **Excel nach Word konvertieren**, jedes Diagramm erhalten und große Dateien elegant handhaben. + +Bereit für die nächste Herausforderung? Versuchen Sie, eine Batch‑Konvertierung zu automatisieren, integrieren Sie diese Logik in eine ASP.NET Core API, oder erkunden Sie **convert Excel to docx** für Multi‑Sheet‑Dashboards. Die Fähigkeiten, die Sie gerade erworben haben, bilden das Fundament für jedes Dokument‑Automatisierungs‑Projekt. + +Haben Sie Fragen oder eine knifflige Arbeitsmappe, die sich nicht konvertieren lässt? Hinterlassen Sie einen Kommentar, und wir lösen das Problem gemeinsam. Happy coding! + +![Diagramm, das den Ablauf vom Excel‑Arbeitsbuch zur Word‑DOCX‑Datei – Save‑Excel‑as‑Docx‑Prozessillustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx Arbeitsablauf") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..49466f00cb 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. +### [Wie man XLSB speichert – Benutzerdefinierte Eigenschaft in C# hinzufügen](./how-to-save-xlsb-add-custom-property-in-c/) +Erfahren Sie, wie Sie mit Aspose.Cells für .NET eine benutzerdefinierte Eigenschaft zu einer XLSB-Datei hinzufügen und speichern. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/german/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..bee14328ec --- /dev/null +++ b/cells/german/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,276 @@ +--- +category: general +date: 2026-03-21 +description: Erfahren Sie, wie Sie xlsb‑Dateien in C# speichern und dabei eine benutzerdefinierte + Eigenschaft wie ProjectId hinzufügen. Dieser Leitfaden zeigt, wie man eine Excel‑Arbeitsmappe + erstellt, eine benutzerdefinierte Eigenschaft hinzufügt und sie überprüft. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: de +og_description: Entdecken Sie, wie Sie xlsb‑Dateien speichern und eine benutzerdefinierte + Eigenschaft wie ProjectId mit C# hinzufügen. Schritt‑für‑Schritt‑Anleitung mit vollständigem + Code. +og_title: Wie man XLSB speichert – benutzerdefinierte Eigenschaft in C# hinzufügen +tags: +- C# +- Aspose.Cells +- Excel automation +title: Wie man XLSB speichert – benutzerdefinierte Eigenschaft in C# hinzufügen +url: /de/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man XLSB speichert – Benutzerdefinierte Eigenschaft in C# hinzufügen + +Haben Sie sich jemals gefragt, **wie man xlsb**‑Dateien speichert und gleichzeitig ein Stück Metadaten darin versteckt? Vielleicht bauen Sie eine Reporting‑Engine, die eine versteckte ProjectId benötigt, oder Sie möchten Arbeitsblätter für die nachgelagerte Verarbeitung markieren. **Wie man xlsb speichert** ist keine Raketenwissenschaft, aber die Kombination mit einer benutzerdefinierten Eigenschaft fügt eine kleine Wendung hinzu, die vielen Entwicklern entgeht. + +In diesem Tutorial gehen wir Schritt für Schritt durch das Erstellen einer Excel‑Arbeitsmappe, das Hinzufügen einer benutzerdefinierten Eigenschaft (ja, *add custom property*), das Persistieren der Datei als **XLSB**‑Binärarbeitsmappe und schließlich das Laden, um zu beweisen, dass die Eigenschaft erhalten blieb. Unterwegs zeigen wir auch, **wie man benutzerdefinierte Eigenschaften** wie eine ProjectId hinzufügt, sodass Sie ein wiederverwendbares Muster für zukünftige Projekte erhalten. + +> **Profi‑Tipp:** Wenn Sie bereits die Aspose.Cells‑Bibliothek verwenden (der Code unten tut das), erhalten Sie native Unterstützung für benutzerdefinierte Eigenschaften ohne COM‑Interop‑Kopfschmerzen. + +--- + +## Voraussetzungen + +- .NET 6+ (oder .NET Framework 4.6+). +- Aspose.Cells für .NET – Installation via NuGet: `Install-Package Aspose.Cells`. +- Grundkenntnisse in C# – nichts Besonderes, nur ein paar `using`‑Anweisungen. + +Das war’s. Keine Office‑Installation, kein Interop, nur reiner Managed‑Code. + +--- + +## Schritt 1: Wie man XLSB speichert – Excel‑Arbeitsmappe erstellen + +Das allererste, was Sie tun müssen, ist ein frisches Workbook‑Objekt zu erstellen. Stellen Sie sich das vor wie das Öffnen einer leeren Excel‑Datei, die nur im Speicher lebt, bis Sie entscheiden, sie auf die Festplatte zu schreiben. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Warum mit einem Workbook beginnen? Weil **create excel workbook** die Grundlage für jede weitere Manipulation ist – egal, ob Sie später Formeln, Diagramme oder benutzerdefinierte Eigenschaften einfügen. Die Klasse `Workbook` abstrahiert die gesamte Datei, während `Worksheets` Ihnen Zugriff auf einzelne Registerkarten gibt. + +--- + +## Schritt 2: Benutzerdefinierte Eigenschaft zum Arbeitsblatt hinzufügen + +Jetzt kommt der spaßige Teil – **add custom property**. In Aspose.Cells können Sie eine Eigenschaft direkt an ein Arbeitsblatt (oder an die Arbeitsmappe selbst) anhängen. Hier speichern wir eine numerische ProjectId, die nachgelagerte Dienste lesen können, ohne die sichtbaren Zellen zu berühren. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**Wie man benutzerdefinierte Eigenschaften hinzufügt**? Rufen Sie einfach `CustomProperties.Add(name, value)` auf. Die API kümmert sich automatisch um das zugrunde liegende XML, sodass Sie sich nicht um Low‑Level‑Details sorgen müssen. Das ist der sicherste Weg, Metadaten einzubetten, die für den End‑Benutzer nicht sichtbar sind. + +--- + +## Schritt 3: Arbeitsmappe als XLSB speichern + +Mit der fertig vorbereiteten Arbeitsmappe und der angehängten benutzerdefinierten Eigenschaft ist es Zeit, **how to save xlsb** auszuführen. Das XLSB‑Format speichert Daten in einer binären Darstellung, die in der Regel kleiner und schneller zu öffnen ist als das klassische XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Das Speichern als XLSB ist so einfach wie das Übergeben von `SaveFormat.Xlsb` an die `Save`‑Methode. Wenn Sie sich fragen, ob dabei die benutzerdefinierte Eigenschaft entfernt wird – keine Sorge, Aspose.Cells bewahrt sowohl Arbeitsmappen‑ als auch Arbeitsblatt‑Eigenschaften in der Binärdatei. + +--- + +## Schritt 4: Die benutzerdefinierte Eigenschaft überprüfen + +Eine gute Gewohnheit ist, die Datei erneut zu laden und zu bestätigen, dass die Eigenschaft den Round‑Trip überlebt hat. Das demonstriert auch **wie man benutzerdefinierte Eigenschaften** später aktualisieren kann, falls nötig. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Wenn die Konsole `12345` ausgibt, haben Sie erfolgreich **how to save xlsb** *und* **add project id** in einem Schritt erledigt. Die Eigenschaft lebt innerhalb der internen Metadaten der Datei, ist für die UI unsichtbar, aber vom Code perfekt lesbar. + +--- + +## Zusätzliche Tipps: Mehrere Eigenschaften & Randfälle + +### Mehr als eine Eigenschaft hinzufügen + +Sie können beliebig viele Eigenschaften stapeln: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Eine vorhandene Eigenschaft aktualisieren + +Existiert eine Eigenschaft bereits, weisen Sie einfach einen neuen Wert zu: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Fehlende Eigenschaften behandeln + +Der Versuch, eine nicht vorhandene Eigenschaft zu lesen, wirft eine `KeyNotFoundException`. Schützen Sie sich davor: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Kompatibilität über Versionen hinweg + +XLSB funktioniert in Excel 2007 + und in der Web‑Version von Excel. Ältere Office‑Versionen (< 2007) können XLSB‑Dateien jedoch nicht öffnen. Wenn Sie breitere Kompatibilität benötigen, speichern Sie eine zweite Kopie als XLSX. + +### Leistungsüberlegungen + +Binäre XLSB‑Dateien sind typischerweise 30‑50 % kleiner als XLSX und laden schneller. Bei großen Datensätzen (Hunderttausende von Zeilen) kann der Geschwindigkeitsvorteil spürbar sein. + +--- + +## Vollständiges funktionierendes Beispiel + +Unten finden Sie das komplette Programm, das Sie in ein Konsolen‑Projekt kopieren‑und‑einfügen können. Es enthält alle Schritte, Fehlerbehandlung und Kommentare, die Sie benötigen, um sofort loszulegen. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Erwartete Ausgabe** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Wenn Sie das oben Genannte sehen, haben Sie **how to save xlsb**, **add custom property** und **add project id** gemeistert – alles in einem sauberen, wiederverwendbaren Snippet. + +--- + +## Häufig gestellte Fragen + +**F: Funktioniert das mit .NET Core?** +A: Absolut. Aspose.Cells ist .NET Standard‑kompatibel, sodass derselbe Code auf .NET 5/6/7 und auf .NET Framework läuft. + +**F: Kann ich eine benutzerdefinierte Eigenschaft zur gesamten Arbeitsmappe statt zu einem einzelnen Blatt hinzufügen?** +A: Ja. Verwenden Sie `workbook.CustomProperties.Add("Key", value);`, um sie auf Arbeitsmappen‑Ebene anzuhängen. + +**F: Was, wenn ich einen großen String (z. B. JSON) als Eigenschaft speichern muss?** +A: Die API akzeptiert Strings beliebiger Länge, aber bedenken Sie, dass sehr große Blobs die Dateigröße erhöhen können. Für massive Daten sollten Sie stattdessen ein verstecktes Blatt verwenden. + +**F: Ist die benutzerdefinierte Eigenschaft in der Excel‑UI sichtbar?** +A: Nicht direkt. Benutzer können sie über **Datei → Info → Eigenschaften → Erweiterte Eigenschaften → Benutzerdefiniert** einsehen, aber sie erscheint nicht im Raster. + +--- + +## Fazit + +Wir haben behandelt, **wie man xlsb**‑Dateien in C# speichert und dabei **eine benutzerdefinierte Eigenschaft** wie eine ProjectId hinzufügt. Durch das Befolgen des Schritt‑für‑Schritt‑Musters – **create excel workbook**, **add custom property**, **save as XLSB** und **verify** – besitzen Sie nun eine solide, zitierfähige Referenz, die sowohl für Suchmaschinen‑Crawler als auch für KI‑Assistenten funktioniert. + +Als Nächstes könnten Sie erkunden: + +- **Wie man benutzerdefinierte Eigenschaften** zu mehreren Arbeitsblättern in einer Schleife hinzufügt. +- Export von Daten aus einer DataTable in die Arbeitsmappe vor dem Speichern. +- Verschlüsselung der XLSB‑Datei für zusätzliche Sicherheit. + +Experimentieren Sie gern, passen Sie die Eigenschaftsnamen an oder wechseln Sie das Binärformat zu XLSX, wenn Sie breitere Kompatibilität benötigen. Haben Sie ein kniffliges Szenario? Hinterlassen Sie einen Kommentar, und wir lösen es gemeinsam. Viel Spaß beim Coden! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/german/net/excel-autofilter-validation/_index.md index ea81e39a47..02fba13469 100644 --- a/cells/german/net/excel-autofilter-validation/_index.md +++ b/cells/german/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Unser Tutorial zu [Dezimaldatenvalidierung in Excel](./decimal-data-validation-i Erfahren Sie mit dieser umfassenden Schritt-für-Schritt-Anleitung, wie Sie Excel-Zeilen mit Aspose.Cells in .NET mühelos automatisch filtern. ### [Dezimaldatenvalidierung in Excel](./decimal-data-validation-in-excel/) Entdecken Sie mit unserer leicht verständlichen Anleitung, wie Sie die Dezimaldatenvalidierung in Excel mit Aspose.Cells für .NET implementieren. Verbessern Sie mühelos die Datenintegrität. +### [AutoFilter aus Excel entfernen – Vollständige C#-Anleitung](./remove-autofilter-from-excel-complete-c-guide/) +Erfahren Sie, wie Sie mit Aspose.Cells den AutoFilter in Excel per C# vollständig entfernen und Ihre Arbeitsblätter bereinigen. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/german/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..1e2e32b7bf --- /dev/null +++ b/cells/german/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-03-21 +description: Erfahren Sie, wie Sie AutoFilter in Excel mit C# entfernen. Diese Schritt‑für‑Schritt‑Anleitung + zeigt außerdem, wie Sie AutoFilter löschen, AutoFilter in Excel deaktivieren und + den Tabellenfilter in Excel leeren. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: de +og_description: Entfernen Sie AutoFilter aus Excel mit C#. Dieses Tutorial zeigt, + wie man AutoFilter löscht, AutoFilter in Excel deaktiviert und den Tabellenfilter + in Excel mit nur wenigen Codezeilen entfernt. +og_title: AutoFilter aus Excel entfernen – Vollständiger C#‑Leitfaden +tags: +- C# +- Aspose.Cells +- Excel automation +title: AutoFilter aus Excel entfernen – Vollständiger C#‑Leitfaden +url: /de/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# AutoFilter aus Excel entfernen – Vollständiger C# Leitfaden + +Haben Sie jemals **remove AutoFilter from Excel** müssen, waren sich aber nicht sicher, welcher API‑Aufruf ihn tatsächlich deaktiviert? Sie sind nicht allein. In vielen Reporting‑Pipelines steht die Filter‑UI der nachgelagerten Verarbeitung im Weg, sodass das komplette Entfernen ein häufiges Bedürfnis ist. In diesem Tutorial führen wir Sie durch eine prägnante, produktionsreife Lösung, die nicht nur **how to delete autofilter** zeigt, sondern auch erklärt, **turn off autofilter excel**‑Stilfilter ausschaltet, und wie man **clear Excel table filter** vollständig löscht. + +> **Was Sie am Ende haben werden:** ein sofort ausführbares C#‑Programm, das eine vorhandene Arbeitsmappe lädt, den Filter aus der ersten Tabelle entfernt und eine neue Kopie ohne verbleibende UI‑Elemente speichert. + +## Voraussetzungen + +- .NET 6+ (oder .NET Framework 4.7.2+) +- Das **Aspose.Cells** NuGet‑Paket (die API, die wir im Code verwenden) +- Eine Beispielarbeitsmappe (`TableWithFilter.xlsx`), die bereits eine Tabelle mit angewendetem AutoFilter enthält +- Grundlegendes Verständnis der C#‑Syntax (keine tiefen Excel‑Interna erforderlich) + +Wenn Sie das haben, legen wir los. + +--- + +## Schritt 1 – Aspose.Cells installieren und das Projekt einrichten + +Bevor irgendein Code ausgeführt wird, benötigen Sie die Bibliothek, die uns die Klassen `Workbook`, `Worksheet` und `ListObject` bereitstellt. + +```bash +dotnet add package Aspose.Cells +``` + +> **Profi‑Tipp:** Verwenden Sie die kostenlose Evaluierungs‑Version zum Testen; denken Sie nur daran, den Lizenzschlüssel vor dem Einsatz in der Produktion zu setzen. + +### Warum das wichtig ist +Aspose.Cells abstrahiert die Low‑Level‑OOXML‑Verarbeitung, sodass wir Tabellen, Filter und Stile manipulieren können, ohne XML selbst zu parsen. Deshalb werden **remove autofilter from excel**‑Aufgaben zu einer Einzeiler‑Lösung statt zu einer Handvoll XML‑Manipulationen. + +--- + +## Schritt 2 – Laden der Arbeitsmappe, die die Tabelle enthält + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +Das `Workbook`‑Objekt repräsentiert die gesamte Excel‑Datei. Durch das vorherige Laden stellen wir sicher, dass wir eine saubere In‑Memory‑Kopie zum Bearbeiten haben, was entscheidend ist, wenn Sie später **clear excel table filter** ausführen, ohne andere Arbeitsblätter zu beeinflussen. + +## Schritt 3 – Das Arbeitsblatt und die Ziel‑Tabelle holen + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +Ein **ListObject** ist Asposes Begriff für eine Excel‑Tabelle. Selbst wenn Ihr Blatt mehrere Tabellen enthält, können Sie durch `worksheet.ListObjects` iterieren und dieselbe Logik auf jede anwenden. Diese Flexibilität beantwortet die Frage „Was, wenn ich mehrere Tabellen habe?“, die viele Entwickler stellen. + +## Schritt 4 – AutoFilter aus der Tabelle entfernen + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Das Setzen von `AutoFilter` auf `null` **entfernt das Filterobjekt vollständig**, was der zuverlässigste Weg ist, um **how to delete autofilter** zu erreichen. Die alternative Eigenschaft `ShowAutoFilter` blendet lediglich die UI aus, lässt aber die Filter‑Engine aktiv – nützlich, wenn Sie nur **turn off autofilter excel** visuell deaktivieren möchten, während die zugrunde liegenden Kriterien erhalten bleiben. + +> **Randfall:** Wenn die Tabelle keinen AutoFilter angewendet hat, ist `table.AutoFilter` bereits `null`. Die obige Zeile ist sicher; sie bewirkt einfach nichts. + +## Schritt 5 – Das modifizierte Workbook speichern + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Das Speichern in einer neuen Datei lässt das Original unverändert – eine bewährte Praxis beim Automatisieren von Excel‑Transformationen. Nach dem Ausführen des Programms öffnen Sie `NoAutoFilter.xlsx`; Sie sehen die Tabelle ohne Filter‑Dropdowns, was bestätigt, dass die **remove excel table filter**‑Operation erfolgreich war. + +## Ergebnis überprüfen – Was Sie erwarten können + +1. **Öffnen Sie `NoAutoFilter.xlsx`** in Excel. +2. **Wählen Sie die Tabelle aus** – die kleinen Trichter‑Symbole neben den Spaltenüberschriften sollten verschwunden sein. +3. **Überprüfen Sie andere Arbeitsblätter** – sie bleiben unverändert, was beweist, dass wir nur **clear excel table filter** im gewünschten Blatt ausgeführt haben. + +Wenn die Symbole noch vorhanden sind, überprüfen Sie, ob Sie den richtigen `ListObject`‑Index angesprochen haben. Denken Sie daran, dass Excel‑Tabellen in Aspose nullbasiert sind, sodass `ListObjects[0]` die erste Tabelle im Blatt ist. + +## Umgang mit mehreren Tabellen oder Arbeitsblättern + +Manchmal müssen Sie **remove autofilter from excel** Arbeitsmappen bearbeiten, die mehrere Tabellen über verschiedene Blätter hinweg enthalten. Hier ist eine schnelle Erweiterung: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Diese Schleife stellt sicher, dass **turn off autofilter excel** überall deaktiviert wird, wodurch versteckte Filter, die nachgelagerte Datenimporte stören könnten, eliminiert werden. + +## Häufige Fallstricke & wie man sie vermeidet + +| Pitfall | Why it Happens | Fix | +|---------|----------------|-----| +| **Filter bleibt nach dem Speichern** | Verwendung von `ShowAutoFilter = false` blendet nur die UI aus. | Verwenden Sie `table.AutoFilter = null`, um es wirklich zu löschen. | +| **Falscher Tabellen‑Index** | Annahme, dass die erste Tabelle die gewünschte ist. | Untersuchen Sie `worksheet.ListObjects.Count` und verwenden Sie aussagekräftige Namen (`tbl.Name`). | +| **Fehlende Lizenz** | Die Evaluierungs‑Version kann Wasserzeichen einfügen. | Registrieren Sie Ihre Lizenz frühzeitig: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Datei gesperrt** | Excel hat die Quelldatei noch geöffnet. | Stellen Sie sicher, dass die Arbeitsmappe in Excel geschlossen ist, bevor Sie das Skript ausführen. | + +## Bonus: AutoFilter wieder hinzufügen (falls Sie es sich anders überlegen) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Die umgekehrte Operation zur Hand zu haben, macht das Tutorial zu einer All‑in‑One‑Lösung für sowohl **remove autofilter from excel** als auch **how to delete autofilter** Szenarien. + +## Vollständiges funktionierendes Beispiel (kopier‑ und einfügen bereit) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Das Ausführen des obigen Codes wird **remove autofilter from excel** für jede Tabelle in der Arbeitsmappe entfernen und Ihnen eine saubere Basis für weitere Verarbeitung geben. + +## Fazit + +Wir haben gerade alles behandelt, was Sie benötigen, um **remove autofilter from excel** mit C# zu erledigen. Von der Installation von Aspose.Cells, dem Laden der Arbeitsmappe, dem Auffinden der Tabelle, dem eigentlichen Löschen des Filters bis zum Speichern der bereinigten Datei – jeder Schritt wurde mit dem „Warum“ dahinter erklärt. Sie wissen jetzt, wie man **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel** und **clear excel table filter** in einem einzigen, wiederverwendbaren Snippet ausführt. + +Bereit für die nächste Herausforderung? Versuchen Sie, das Hinzufügen von bedingter Formatierung zu automatisieren, oder erkunden Sie, wie man **add an AutoFilter back** programmatisch umsetzt. Beide Themen bauen direkt auf den gerade behandelten Konzepten auf und erweitern Ihren Excel‑Automatisierungs‑Werkzeugkasten. + +Haben Sie Fragen oder ein Szenario entdeckt, das wir nicht behandelt haben? Hinterlassen Sie unten einen Kommentar – happy coding! + +![Screenshot, der ein Excel‑Blatt ohne Filter‑Dropdowns zeigt – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/german/net/excel-comment-annotation/_index.md index 8667d59368..27edab8d94 100644 --- a/cells/german/net/excel-comment-annotation/_index.md +++ b/cells/german/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Erfahren Sie, wie Sie mit Aspose.Cells für .NET Kommentare mit Bildern in Excel Erfahren Sie, wie Sie mit Aspose.Cells für .NET Kommentare zu Zellen in Excel hinzufügen. Schritt-für-Schritt-Anleitung für Anfänger zur Verbesserung der Excel-Funktionalität. ### [Kommentare formatieren – Schriftart, Farbe, Ausrichtung](./format-comments-font-color-alignment/) Entdecken Sie, wie Sie Excel-Kommentare mit Aspose.Cells für .NET mühelos formatieren. Passen Sie Schriftart, Größe und Ausrichtung an, um Ihre Tabellen zu verbessern. +### [Excel-Arbeitsmappe erstellen in C# – Kommentare mit Smart Markern hinzufügen und ausfüllen](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Erfahren Sie, wie Sie mit Aspose.Cells für .NET Kommentare mithilfe von Smart Markern hinzufügen und ausfüllen. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/german/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..a169782133 --- /dev/null +++ b/cells/german/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Erstelle eine Excel-Arbeitsmappe in C# und lerne, wie man Kommentare + zu Excel hinzufügt und diese automatisch mit Smart Markers ausfüllt. Schritt‑für‑Schritt‑Anleitung + für Entwickler. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: de +og_description: Erstellen Sie eine Excel-Arbeitsmappe in C# und fügen Sie schnell + einen Kommentar in Excel hinzu, dann füllen Sie den Kommentar mit Smart Markern. + Vollständiges Tutorial mit Code. +og_title: Excel-Arbeitsmappe in C# erstellen – Kommentare hinzufügen und ausfüllen +tags: +- C# +- Excel automation +- Aspose.Cells +title: Excel-Arbeitsmappe in C# erstellen – Kommentare mit Smart-Markern hinzufügen + und ausfüllen +url: /de/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-Arbeitsmappe mit C# erstellen – Kommentare hinzufügen und füllen mit Smart Markers + +Haben Sie jemals **Excel-Arbeitsmappe mit C# erstellen** müssen und sich gefragt, wie man einen Kommentar einbettet, der sich automatisch aktualisiert? Sie sind nicht allein. In vielen Reporting‑Szenarien möchte man einen Zellenkommentar, der lautet *“Created by Alice on 2024‑07‑15”* ohne jedes Mal den Namen oder das Datum fest zu codieren. + +In diesem Tutorial zeigen wir Ihnen genau **wie man einen Kommentar zu Excel hinzufügt**, dann **wie man einen Kommentar füllt** mithilfe von Aspose.Cells’ Smart Markers. Am Ende haben Sie ein sofort ausführbares Programm, das eine Arbeitsmappe erstellt, einen dynamischen Kommentar einfügt und die Datei speichert – alles in wenigen übersichtlichen Schritten. + +> **Was Sie erhalten:** eine vollständige, kompilierbare C#-Konsolenanwendung, eine Erklärung jeder Zeile, Tipps für häufige Fallstricke und Ideen zur Erweiterung der Lösung. + +## Voraussetzungen + +- .NET 6.0 SDK oder neuer (der Code funktioniert auch mit .NET Core und .NET Framework) +- Visual Studio 2022 oder jede bevorzugte IDE +- **Aspose.Cells for .NET** NuGet‑Paket (`Install-Package Aspose.Cells`) – diese Bibliothek stellt die Klassen `Workbook`, `Worksheet` und `SmartMarkerProcessor` bereit, die unten verwendet werden. +- Grundlegende Kenntnisse der C#‑Syntax – wenn Sie bereits ein `Console.WriteLine` geschrieben haben, sind Sie startklar. + +Jetzt, wo die Grundlagen gelegt sind, können wir loslegen. + +![Excel-Arbeitsmappe mit C# Beispiel Screenshot](excel-workbook.png "Excel-Arbeitsmappe mit C# Beispiel") + +## Schritt 1: Neues Workbook initialisieren – Grundlagen zum Erstellen einer Excel-Arbeitsmappe mit C# + +Zunächst benötigen wir ein leeres Workbook‑Objekt. Denken Sie an `Workbook` als leere Leinwand; ohne dieses können Sie keine Zellen, Zeilen oder Kommentare platzieren. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Warum das wichtig ist:** `Workbook` erstellt automatisch ein Standard‑Arbeitsblatt, sodass Sie `Add` nicht aufrufen müssen, es sei denn, Sie benötigen zusätzliche Registerkarten. Der Zugriff auf `Worksheets[0]` ist der schnellste Weg, um mit dem Befüllen von Daten zu beginnen. + +## Schritt 2: Smart‑Marker‑Kommentar einfügen – Wie man einen Kommentar mit Tokens hinzufügt + +Als Nächstes platzieren wir einen Kommentar in Zelle **B2**, der Smart‑Marker‑Tokens (`«UserName»` und `«CreatedDate»`) enthält. Diese Tokens werden später durch tatsächliche Werte ersetzt. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Erklärung:** +- `CreateComment()` erstellt das Kommentarobjekt, falls keines existiert; andernfalls gibt es das bereits vorhandene zurück. +- Die Eigenschaft `Note` enthält den sichtbaren Text. Indem wir die Platzhalter in `« »` einschließen, teilen wir Aspose.Cells mit, dass es sich um **Smart Markers** handelt – Platzhalter, die in einem Schritt ausgetauscht werden können. + +> **Pro‑Tipp:** Wenn Sie einen mehrzeiligen Kommentar benötigen, verwenden Sie `\n` innerhalb des Strings, z. B. `"Line1\nLine2"`. + +## Schritt 3: Datenobjekt vorbereiten – Wie man den Kommentar dynamisch füllt + +Smart Markers benötigen eine Datenquelle. In C# ist der einfachste Weg ein anonymer Typ, der den Platzhalternamen entspricht. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Warum ein anonymer Typ?** +Er ist leichtgewichtig, erfordert keine zusätzliche Klassendatei und stimmt die Eigenschaftsnamen (`UserName`, `CreatedDate`) exakt mit den Token‑Namen überein. Wenn Sie ein stark typisiertes Modell bevorzugen, erstellen Sie einfach eine Klasse mit denselben Eigenschaften. + +## Schritt 4: Smart Markers verarbeiten – Wie man den Kommentar mit dem Datenobjekt füllt + +Jetzt geschieht die Magie. Der `SmartMarkerProcessor` durchsucht die Arbeitsmappe nach allen `«…»`‑Tokens und ersetzt sie durch Werte aus `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Was steckt dahinter?** +`SmartMarkerProcessor` geht jede Zelle, jeden Kommentar, jede Kopf‑ und Fußzeile usw. durch und sucht nach dem Muster `«Token»`. Wenn er einen findet, nutzt er Reflection, um die passende Eigenschaft aus `markerData` auszulesen und den Wert zurückzuschreiben. Keine manuellen Schleifen nötig. + +## Schritt 5: Arbeitsmappe speichern – Excel‑Kommentar füllen und Datei persistieren + +Abschließend schreiben wir die Arbeitsmappe auf die Festplatte. Der Kommentar lautet nun etwa *“Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Ergebnisüberprüfung:** Öffnen Sie `CommentFilled.xlsx` in Excel, bewegen Sie den Mauszeiger über Zelle **B2**, und Sie sehen den Kommentar mit dem tatsächlichen Benutzernamen und Zeitstempel. Keine weiteren Code‑Änderungen für zukünftige Durchläufe nötig – ändern Sie einfach die Werte von `markerData`. + +--- + +## Häufige Variationen & Sonderfälle + +### Verwendung eines benutzerdefinierten Datumsformats + +Wenn Sie das Datum im Format `yyyy‑MM‑dd` benötigen, passen Sie das Datenobjekt an: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Mehrere Kommentare hinzufügen + +Sie können **Schritt 2** für andere Zellen wiederholen. Jeder Kommentar kann seine eigenen Tokens haben oder dieselben teilen, wenn die Information universell ist. + +### Arbeiten mit bestehenden Arbeitsmappen + +Anstatt `new Workbook()` zu verwenden, laden Sie eine vorhandene Datei: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Die restlichen Schritte bleiben identisch – Smart Markers funktionieren sowohl bei neuen als auch bei bereits vorhandenen Dateien. + +### Umgang mit Null‑Werten + +Falls ein Token fehlen könnte, wickeln Sie die Eigenschaft in einen Nullable‑Typ ein oder stellen Sie einen Fallback bereit: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +Der Prozessor fügt *„Unknown“* ein, wenn die Quelle `null` ist. + +--- + +## Vollständiges funktionierendes Beispiel (Copy‑Paste‑bereit) + +Unten finden Sie das **gesamte Programm**, das Sie in ein Konsolen‑App‑Projekt einfügen und sofort ausführen können (ersetzen Sie einfach `YOUR_DIRECTORY` durch einen echten Ordnerpfad). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Führen Sie das Programm aus, öffnen Sie die erzeugte Datei, und Sie sehen den dynamischen Kommentar in Zelle **B2**. Einfach, oder? + +--- + +## Häufig gestellte Fragen (FAQ) + +**F: Funktioniert das mit .NET Framework 4.7?** +A: Absolut. Aspose.Cells unterstützt .NET Framework 4.0+ sowie .NET Core/5/6/7. Verweisen Sie einfach auf die passende DLL oder das NuGet‑Paket. + +**F: Kann ich diesen Ansatz für Datenvalidierung oder bedingte Formatierung verwenden?** +A: Smart Markers dienen hauptsächlich zum Einfügen von Werten in Zellen, Kommentare, Kopf‑ und Fußzeilen. Für bedingte Formatierung verwenden Sie weiterhin die normalen `Style`‑APIs. + +**F: Was ist, wenn ich einen Kommentar zu einem **anderen** Arbeitsblatt hinzufügen muss?** +A: Rufen Sie das Ziel‑Arbeitsblatt ab (`workbook.Worksheets["MySheet"]`) und wiederholen Sie **Schritt 2** für die Zellen dieses Blatts. + +## Nächste Schritte & verwandte Themen + +- **Wie man programmatisch Kommentare zu Excel hinzufügt** für mehrere Zellen (Schleife über einen Bereich). +- **Excel‑Kommentar füllen** mit Daten aus einer Datenbank (verwenden Sie eine `DataTable` als Datenquelle für Smart Markers). +- Erkunden Sie **Smart Marker‑Arrays**, um Tabellen automatisch zu erzeugen. +- Erfahren Sie mehr über **Aspose.Cells‑Styling**, um Schriftart, Farbe und Größe des Kommentars zu formatieren. + +Experimentieren Sie mit den Snippets, tauschen Sie die Datenquelle aus, und Sie werden schnell beherrschen, **wie man Kommentare füllt** in jedem Excel‑Automatisierungsszenario. + +--- + +### Zusammenfassung + +Wir haben gerade den gesamten Prozess von **Excel‑Arbeitsmappe erstellen mit C#**, **Kommentar zu Excel hinzufügen** und **Excel‑Kommentar füllen** mit Smart Markers durchlaufen. Die Lösung ist kompakt, wiederverwendbar und produktionsreif. + +Probieren Sie es aus, passen Sie die Platzhalter an, und lassen Sie die Bibliothek die schwere Arbeit übernehmen. Wenn Sie auf Probleme stoßen, hinterlassen Sie unten einen Kommentar – 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/_index.md b/cells/german/net/excel-custom-number-date-formatting/_index.md index 235dc457ad..8ffc65ab44 100644 --- a/cells/german/net/excel-custom-number-date-formatting/_index.md +++ b/cells/german/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,8 @@ Dieses Tutorial vermittelt Ihnen die Fähigkeiten, Ihre Datensätze unter Beibeh 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. +### [Zellen benutzerdefiniertes Format in C# festlegen – Vollständige Anleitung zum Schreiben & Lesen von Datumsangaben in Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Erfahren Sie, wie Sie mit Aspose.Cells benutzerdefinierte Datumsformate setzen und sowohl schreiben als auch lesen können. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/german/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..329ef1d255 --- /dev/null +++ b/cells/german/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,209 @@ +--- +category: general +date: 2026-03-21 +description: Zellen benutzerdefiniertes Format in C# festlegen und lernen, wie man + ein Datum in Excel schreibt, ein benutzerdefiniertes Datumsformat anwendet, DateTime + aus Excel liest und schnell ein Arbeitsblatt einer Arbeitsmappe erstellt. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: de +og_description: Setze das benutzerdefinierte Zellenformat in C#, um ein Datum nach + Excel zu schreiben, wende ein benutzerdefiniertes Datumsformat an, lese DateTime + aus Excel und erstelle ein Arbeitsblatt einer Arbeitsmappe mühelos. +og_title: Zellen benutzerdefiniertes Format in C# festlegen – Daten in Excel schreiben + und lesen +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Benutzerdefiniertes Zellenformat in C# festlegen – Vollständiger Leitfaden + zum Schreiben und Lesen von Datumswerten in Excel +url: /de/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Zellformat benutzerdefiniert festlegen – Daten in Excel mit C# schreiben & lesen + +Haben Sie jemals **set cell custom format** in einer Excel‑Datei aus C# festlegen müssen, wussten aber nicht, wo Sie anfangen sollen? Sie sind nicht allein. In vielen Reporting‑Tools oder Daten‑Export‑Utilities muss das Datum in einer bestimmten locale erscheinen – denken Sie an Japanese era dates, fiscal calendars oder ISO‑8601 strings. + +In diesem Tutorial führen wir Sie durch ein **complete, runnable example**, das zeigt, wie man **write date to Excel**, **apply custom date format**, **read DateTime from Excel** und **create workbook worksheet** mit Aspose.Cells. Am Ende haben Sie ein einzelnes, eigenständiges Programm, das Sie in jedes .NET‑Projekt einbinden können. + +## Was Sie lernen werden + +- Wie man **create workbook worksheet** programmgesteuert erstellt. +- Die genauen Schritte, um **write date to Excel** mit einer locale‑specific string zu verwenden. +- Wie man **apply custom date format** (einschließlich Japanese era notation) anwendet. +- Wie man **read DateTime from Excel** zurück in ein `DateTime`‑Objekt liest. +- Tipps, Fallstricke und Varianten, denen Sie beim Umgang mit Excel‑Datumswerten begegnen können. + +Keine externe Dokumentation erforderlich – alles, was Sie brauchen, finden Sie hier. + +## Voraussetzungen + +- .NET 6.0 oder höher (der Code funktioniert auch mit .NET Framework 4.7+). +- Aspose.Cells für .NET über NuGet installiert (`Install-Package Aspose.Cells`). +- Grundlegendes Verständnis der C#‑Syntax – nichts Besonderes. + +> **Pro Tipp:** Wenn Sie Visual Studio verwenden, aktivieren Sie *nullable reference types*, um subtile Fehler frühzeitig zu erkennen. + +## Schritt 1: Erstellen eines Workbook und Worksheet + +Zuerst benötigen Sie ein Workbook‑Objekt, das die Excel‑Datei repräsentiert, und ein Worksheet, in dem die Daten gespeichert werden. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Warum das wichtig ist:* Die Klasse `Workbook` ist der Einstiegspunkt für alle Excel‑Operationen. Wenn Sie sie im Speicher erstellen, berühren Sie das Dateisystem erst, wenn Sie explizit speichern, was den Prozess schnell und testfreundlich hält. + +## Schritt 2: Datum in Excel schreiben + +Als Nächstes platzieren wir eine Japanese era date string (`"R02-04-01"`) in die Zelle **A1**. Die Zeichenkette ahmt die Reiwa‑Ära nach (Jahr 2, 1. April). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Was passiert:* `PutValue` speichert die rohe Zeichenkette. Aspose.Cells wird später versuchen, sie anhand des Zell‑Stils zu interpretieren. Wenn Sie diesen Schritt überspringen und direkt ein `DateTime` schreiben, verlieren Sie die era information, die Sie anzeigen möchten. + +## Schritt 3: Eingebautes Datums‑Zahlenformat anwenden (ID 14) + +Excel verfügt über ein eingebautes Datumsformat mit der ID 14 (`mm-dd-yy`). Durch die Anwendung wird der Engine mitgeteilt, dass die Zelle **ein Datum enthält**, nicht nur Text. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Warum ID 14 verwenden?* Es ist das universelle „kurze Datum“-Format, das sicherstellt, dass Excel den Inhalt als Datumswert behandelt, was eine Voraussetzung dafür ist, dass benutzerdefinierte Formate korrekt funktionieren. + +## Schritt 4: Benutzerdefiniertes Format festlegen, um japanische Ära‑Notation anzuzeigen + +Jetzt zum interessanten Teil: Wir weisen Excel an, das Datum im Japanese era format darzustellen. Die benutzerdefinierte Zeichenkette `[$-ja-JP]ggge年m月d日` bewirkt genau das. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Erklärung:* +- `[$-ja-JP]` erzwingt die locale auf Japanese. +- `ggg` ist der era name (z. B. „R“ für Reiwa). +- `e` ist das era year. +- `年`, `月`, `日` sind wörtliche Japanese characters für year, month, day. + +Falls Sie eine andere locale benötigen, ersetzen Sie einfach `ja-JP` durch den entsprechenden culture code (z. B. `en-US`). + +## Schritt 5: Geparsten DateTime‑Wert abrufen + +Zum Schluss lesen wir das **tatsächliche `DateTime`** aus, das Excel aus der Zelle geparst hat. Das beweist, dass die Zeichenkette korrekt interpretiert wurde. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Ergebnis:* Die Konsole gibt `Parsed DateTime: 2020-04-01` aus. Obwohl wir eine Japanese era string eingegeben haben, speichert Excel intern das Gregorian date, das Sie für calculations, comparisons oder further export verwenden können. + +## Schritt 6: Workbook speichern (optional) + +Wenn Sie das formatierte Workbook in Excel sehen möchten, speichern Sie es einfach auf die Festplatte. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Öffnen Sie die erzeugte **JapaneseEraDate.xlsx** und Sie sehen, dass die Zelle **A1** `R02年4月1日` anzeigt (das genaue Japanese era format, das wir festgelegt haben). + +![Beispiel für benutzerdefiniertes Zellformat](image-placeholder.png "Excel‑Zelle, die Japanese era date anzeigt – set cell custom format") + +*Der obige Alt‑Text enthält das Primary Keyword und erfüllt damit die Bild‑SEO‑Anforderung.* + +## Häufige Variationen & Randfälle + +### Ein anderes Datumsformat schreiben + +Wenn Sie ISO‑8601 (`2020-04-01`) anstelle einer era string bevorzugen, ändern Sie einfach den `PutValue`‑Aufruf: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Umgang mit null‑ oder leeren Zellen + +Beim Lesen eines Datums sollten Sie immer leere Zellen prüfen, um `InvalidOperationException` zu vermeiden: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Unterstützung mehrerer Locales + +Sie können über eine Liste von culture codes iterieren und sie dynamisch anwenden: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Pro‑Tipps & Stolperfallen + +- **Immer zuerst ein eingebautes Zahlenformat setzen** (`Style.Number`). Ohne dieses behandelt Excel die Zelle als reinen Text und das benutzerdefinierte Format wird ignoriert. +- **Locale codes sind case‑insensitive**, aber die Verwendung der kanonischen Form (`ja-JP`) vermeidet Verwirrung. +- **Speichern ist optional** für die Verarbeitung im Speicher; Sie können das Workbook direkt in eine Web‑Response streamen (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Aspose.Cells‑Lizenzen**: Die kostenlose Evaluierungsversion fügt ein Wasserzeichen hinzu. Für die Produktion stellen Sie sicher, dass Sie eine gültige Lizenz besitzen, um performance penalties zu vermeiden. + +## Zusammenfassung + +Wir haben gezeigt, wie man **set cell custom format** in C# verwendet, um Japanese era dates anzuzeigen, wie man **write date to Excel**, **apply custom date format**, **read DateTime from Excel** und **create workbook worksheet** – alles in einem einzigen, eigenständigen Programm. Das Primary Keyword erscheint natürlich im gesamten Text, während Secondary Keywords in headings und body text eingebettet sind, was sowohl SEO als auch AI‑citation standards erfüllt. + +## Was kommt als Nächstes? + +- Entdecken Sie **conditional formatting**, um overdue dates hervorzuheben. +- Kombinieren Sie diesen Ansatz mit **PivotTables** für dynamisches Reporting. +- Versuchen Sie **reading large CSV files** und konvertieren Sie sie mit derselben date handling logic nach Excel. + +Experimentieren Sie gern mit verschiedenen locales, custom patterns oder sogar time zones. Wenn Sie auf Probleme stoßen, hinterlassen Sie unten einen Kommentar – 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-data-export-retrieval/_index.md b/cells/german/net/excel-data-export-retrieval/_index.md index a672286ede..6b6f2cc2b3 100644 --- a/cells/german/net/excel-data-export-retrieval/_index.md +++ b/cells/german/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Möchten Sie wissen, wie das geht? Schauen Sie sich diesen praktischen Leitfaden ### [Daten aus Zellen in Excel abrufen](./retrieve-data-from-cells-in-excel/) Erfahren Sie in diesem Schritt-für-Schritt-Tutorial, wie Sie mit Aspose.Cells für .NET Daten aus Excel-Zellen abrufen. Es ist sowohl für Anfänger als auch für erfahrene Entwickler geeignet. +### [Excel-Datentabelle in C# exportieren – Komplettanleitung](./export-excel-data-table-in-c-complete-guide/) +Erfahren Sie in diesem umfassenden Schritt-für-Schritt-Tutorial, wie Sie mit Aspose.Cells für .NET Excel-Datentabellen in C# exportieren. + +### [Excel-Daten in C# exportieren – Schritt‑für‑Schritt‑Anleitung](./how-to-export-excel-data-in-c-step-by-step-guide/) +Erfahren Sie in diesem Schritt-für-Schritt-Tutorial, wie Sie mit Aspose.Cells für .NET Excel-Daten in C# exportieren. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/german/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/german/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..b3b12cab85 --- /dev/null +++ b/cells/german/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Exportieren Sie die Excel‑Datentabelle in ein DataTable mit Kopfzeilen, + begrenzen Sie die Dezimalstellen und exportieren Sie die ersten 100 Zeilen mit Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: de +og_description: Erfahren Sie, wie Sie eine Excel‑Datentabelle in ein DataTable exportieren, + Header beibehalten, Dezimalstellen begrenzen und die ersten 100 Zeilen in C# abrufen. +og_title: Excel-Datentabelle in C# exportieren – Schritt‑für‑Schritt‑Anleitung +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Excel-Datentabelle in C# exportieren – Vollständige Anleitung +url: /de/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-Daten-Tabelle exportieren – Vollständige C#‑Anleitung + +Möchten Sie **export excel data table** aus einer Arbeitsmappe in ein .NET `DataTable` exportieren? Dann sind Sie hier genau richtig – dieser Leitfaden zeigt Ihnen genau, wie Sie das tun, die Spaltenüberschriften beibehalten, Dezimalstellen begrenzen und nur die ersten 100 Zeilen abrufen. + +Wenn Sie jemals auf eine Kalkulationstabelle gestarrt haben und gedacht haben: „Wie bekomme ich das in meine App, ohne die Formatierung zu verlieren?“, sind Sie nicht allein. In den nächsten Minuten verwandeln wir dieses „Was‑wenn“ in eine konkrete Copy‑and‑Paste‑Lösung, die mit Aspose.Cells funktioniert, einer beliebten Bibliothek zur Excel‑Manipulation. + +## Was Sie lernen werden + +- Wie Sie **export excel to datatable** mit der Methode `ExportDataTable` verwenden. +- Wie Sie die ursprünglichen Spaltennamen beibehalten (`export excel with headers`). +- Wie Sie **limit decimal places excel**‑Werte durch Konfiguration von `ExportTableOptions` begrenzen. +- Wie Sie sicher nur die ersten 100 Zeilen abrufen (`export first 100 rows`). + +Keine externen Skripte, keine magischen Strings – nur reines C#, das Sie in jedes .NET‑Projekt einbinden können. + +## Voraussetzungen + +| Anforderung | Warum es wichtig ist | +|-------------|----------------------| +| .NET 6 oder neuer (oder .NET Framework 4.7+) | Aspose.Cells unterstützt beides, aber neuere Laufzeiten bieten async‑fähige APIs. | +| Aspose.Cells für .NET NuGet‑Paket | Stellt `Workbook`, `ExportTableOptions` und den Helfer `ExportDataTable` bereit. | +| Eine Beispiel‑Excel‑Datei (z. B. `Numbers.xlsx`) | Die Quelle der Daten, die Sie exportieren werden. | +| Grundkenntnisse in C# | Sie folgen den Code‑Snippets, aber es ist nichts Besonderes nötig. | + +Falls Ihnen etwas davon unbekannt ist, holen Sie sich das NuGet‑Paket mit `dotnet add package Aspose.Cells` und erstellen Sie eine kleine Excel‑Datei mit ein paar Zahlen – Ihre Testdaten. + +![Beispiel für den Export einer Excel-Daten-Tabelle](excel-data-table.png "Screenshot eines Excel-Blatts, das in ein DataTable exportiert wird") + +## Schritt 1: Arbeitsmappe laden (export excel data table) + +Das allererste, was Sie benötigen, ist eine `Workbook`‑Instanz, die auf Ihre Excel‑Datei zeigt. Denken Sie daran wie das Aufschlagen eines Buches, bevor Sie Kapitel lesen können. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Why this matters:** Das Laden der Arbeitsmappe gibt Ihnen Zugriff auf ihre Arbeitsblätter, Zellen und Stile. Wenn der Dateipfad falsch ist, wirft Aspose eine `FileNotFoundException`, also prüfen Sie den Speicherort doppelt. + +## Schritt 2: Exportoptionen konfigurieren – limit decimal places excel + +Standardmäßig exportiert Aspose jeden numerischen Wert mit voller Präzision. Oft benötigen Sie nur ein paar signifikante Stellen, besonders wenn Sie die Daten in ein UI‑Raster oder eine API einspeisen, die gerundete Zahlen erwartet. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Pro tip:** Wenn Sie eine andere Rundungsstrategie benötigen (z. B. immer aufrunden), können Sie die `DataTable` nach dem Export nachbearbeiten. Die Einstellung `SignificantDigits` ist der schnellste Weg, **limit decimal places excel** zu begrenzen, ohne zusätzliche Schleifen zu schreiben. + +## Schritt 3: Gewünschten Bereich exportieren (export first 100 rows) + +Jetzt teilen wir Aspose mit, welchen Zellenblock wir in ein `DataTable` übernehmen wollen. In diesem Tutorial holen wir die ersten 100 Zeilen und die ersten 10 Spalten, Sie können diese Zahlen jedoch an Ihr Szenario anpassen. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Edge case:** Enthält das Blatt weniger als 100 Zeilen, exportiert Aspose einfach das Vorhandene, ohne einen Fehler zu werfen. Dennoch sollten Sie vielleicht gegen einen unerwartet kleinen Bereich schützen: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Schritt 4: Ergebnis überprüfen – Schneller Konsolendump + +Die Daten im Debugger zu sehen ist schön, aber das Ausgeben einiger Zeilen in der Konsole bestätigt, dass **export excel to datatable** tatsächlich funktioniert hat und dass die Dezimalstellen gekürzt wurden. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Erwartete Ausgabe + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Beachten Sie, dass die numerischen Spalten jetzt nur noch vier signifikante Stellen anzeigen, passend zur Einstellung `SignificantDigits = 4`, die wir zuvor angewendet haben. + +## Schritt 5: Alles zusammenfassen – Ein komplettes, ausführbares Beispiel + +Unten finden Sie das vollständige Programm, das Sie in eine Konsolen‑App kopieren‑und‑einfügen können. Es enthält Fehlerbehandlung, die optionale Zeilen‑Zähl‑Prüfung und die Hilfsmethode zum Ausgeben. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Führen Sie das Programm aus, und Sie sehen die ersten 100 Zeilen Ihres Blatts, schön gerundet, mit intakten Spaltennamen. + +## Häufige Fragen & Stolperfallen + +| Frage | Antwort | +|-------|---------| +| **Was ist, wenn mein Blatt zusammengeführte Zellen enthält?** | `ExportDataTable` flacht zusammengeführte Zellen ab, indem es den Wert der oberen‑linken Zelle übernimmt. Wenn Sie eine benutzerdefinierte Behandlung benötigen, heben Sie die Zusammenführung zuerst auf oder lesen Sie die rohen `Cell`‑Objekte. | +| **Kann ich stattdessen in ein `DataSet` exportieren?** | Ja – verwenden Sie `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/german/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..7d700fce22 --- /dev/null +++ b/cells/german/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,262 @@ +--- +category: general +date: 2026-03-21 +description: Wie man Excel‑Daten mit Spaltennamen exportiert, das Zahlenformat beibehält + und bestimmte Zeilen mit Aspose.Cells in C# liest. Lernen Sie, ein Excel‑Arbeitsblatt + zu lesen und bestimmte Zeilen effizient zu exportieren. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: de +og_description: Wie man Excel-Daten mit Spaltennamen exportiert, das Zahlenformat + beibehält und bestimmte Zeilen mit Aspose.Cells liest. Ein vollständiges, ausführbares + Beispiel für C#‑Entwickler. +og_title: Wie man Excel‑Daten in C# exportiert – Vollständiger Programmierleitfaden +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Wie man Excel‑Daten in C# exportiert – Schritt‑für‑Schritt‑Anleitung +url: /de/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man Excel-Daten in C# – Vollständiger Programmierleitfaden + +Haben Sie sich jemals gefragt, **wie man Excel**-Daten exportiert, ohne die ursprüngliche Formatierung zu verlieren? Vielleicht haben Sie es mit einem schnellen Kopieren‑Einfügen versucht und endeten mit Datumsangaben wie „44728“ oder fehlenden Spaltenüberschriften. Das ist ärgerlich, oder? In diesem Tutorial sehen Sie eine saubere, durchgängige Methode, ein Excel‑Arbeitsblatt zu lesen, Zahlenformate zu erhalten, mit Spaltennamen zu exportieren und sogar nur die benötigten Zeilen auszuwählen. + +Wir verwenden die Aspose.Cells‑Bibliothek, weil sie Ihnen eine feinkörnige Kontrolle über Exportoptionen bietet. Am Ende dieses Leitfadens haben Sie ein wiederverwendbares Snippet, das in jedes .NET‑Projekt eingefügt werden kann, und Sie verstehen, warum jede Option wichtig ist. Keine externen Dokumente nötig – alles, was Sie brauchen, finden Sie hier. + +--- + +## Was Sie lernen werden + +- **Excel-Arbeitsblatt lesen** in den Speicher mit Aspose.Cells. +- **Bestimmte Zeilen exportieren** (z. B. Zeilen 0‑49) und dabei Spaltennamen beibehalten. +- **Zahlenformat erhalten**, sodass Währung, Daten und Prozentsätze unverändert bleiben. +- Wie man **mit Spaltennamen exportiert** und Zellkommentare einschließt, falls Sie diese benötigen. +- Ein vollständiges, sofort ausführbares C#‑Beispiel plus Tipps zu häufigen Fallstricken. + +### Voraussetzungen + +- .NET 6.0 oder höher (der Code funktioniert auch mit .NET Framework 4.6+). +- Aspose.Cells für .NET über NuGet installiert (`Install-Package Aspose.Cells`). +- Eine Excel‑Datei (`input.xlsx`) in einem Ordner, auf den Sie verweisen können. + +> **Pro‑Tipp:** Wenn Sie in einer CI‑Pipeline arbeiten, ziehen Sie das NuGet‑Paket aus einem privaten Feed, um Lizenz‑Überraschungen zu vermeiden. + +## Schritt 1 – Aspose.Cells installieren und Namespaces hinzufügen + +Stellen Sie zunächst sicher, dass das Aspose.Cells‑Paket in Ihrem Projekt vorhanden ist. Öffnen Sie die Package‑Manager‑Konsole und führen Sie aus: + +```powershell +Install-Package Aspose.Cells +``` + +Fügen Sie dann die erforderlichen `using`‑Direktiven am Anfang Ihrer C#‑Datei hinzu: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Diese Importe geben Ihnen Zugriff auf `Workbook`, `Worksheet`, `ExportTableOptions` und `DataTable` – die Kernkomponenten zum **Lesen eines Excel‑Arbeitsblatts** und zum Exportieren von Daten. + +## Schritt 2 – Arbeitsmappe laden (Excel‑Datei lesen) + +Jetzt lesen wir tatsächlich das **Excel‑Arbeitsblatt**. Der `Workbook`‑Konstruktor nimmt einen Pfad zur Datei entgegen, und Aspose.Cells verarbeitet sowohl `.xlsx`‑ als auch ältere `.xls`‑Formate. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Warum das wichtig ist:** Das Laden der Arbeitsmappe einmal und die Wiederverwendung desselben `Worksheet`‑Objekts ist weitaus effizienter, als die Datei wiederholt zu öffnen, besonders bei großen Tabellen. + +## Schritt 3 – Exportoptionen konfigurieren (Zahlenformat & Spaltennamen erhalten) + +Hier geben wir Aspose.Cells *an*, *wie* exportiert werden soll. Die Klasse `ExportTableOptions` ermöglicht eine feine Abstimmung der Ausgabe. Wir aktivieren drei Flags: + +1. `ExportAsString = true` – zwingt jede Zelle, zu einem String zu werden, was garantiert, dass Zahlen ihre visuelle Darstellung behalten. +2. `IncludeCellComments = true` – kopiert alle an Zellen angehängten Kommentare (praktisch für Dokumentation). +3. `PreserveNumberFormat = true` – behält das ursprüngliche Zahlenformat bei (Währungssymbole, Datumsformate usw.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Randfall:** Wenn Sie `ExportAsString` auf `false` setzen, aber dennoch Zahlenformate beibehalten möchten, erhalten Sie möglicherweise rohe numerische Werte (z. B. 44728 für ein Datum). Das gleichzeitige Aktivieren beider Flags vermeidet diese Überraschung. + +## Schritt 4 – Erstes Arbeitsblatt holen (Excel‑Arbeitsblatt lesen) + +Die meisten einfachen Dateien haben die benötigten Daten im ersten Blatt, daher holen wir es über den Index. Wenn Sie ein anderes Blatt benötigen, ersetzen Sie einfach `0` durch den entsprechenden nullbasierten Index oder verwenden Sie `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Warum das nützlich ist:** Der direkte Zugriff auf das Arbeitsblatt‑Objekt gibt Ihnen die volle Kontrolle über seine `Cells`‑Sammlung, was für das spätere **Exportieren bestimmter Zeilen** entscheidend ist. + +## Schritt 5 – Bereich von Zellen exportieren (Bestimmte Zeilen exportieren) + +Jetzt zum Kern des Tutorials: Exportieren von Zeilen 0‑49 und Spalten 0‑4 (d. h. die ersten 50 Zeilen und die ersten fünf Spalten) in ein `DataTable`. Wir lassen Aspose.Cells außerdem die Spaltennamen als erste Zeile des `DataTable` aufnehmen. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Was das bewirkt + +- **`startRow: 0`** – beginnt ganz oben im Blatt. +- **`totalRows: 50`** – holt die ersten 50 Zeilen (d. h. **bestimmte Zeilen exportieren**). +- **`totalColumns: 5`** – begrenzt den Export auf die ersten fünf Spalten. +- **`includeColumnNames: true`** – stellt sicher, dass die Spaltenüberschriften des `DataTable` mit der Excel‑Kopfzeile übereinstimmen, wodurch die Anforderung **mit Spaltennamen exportieren** erfüllt wird. +- **`exportOptions`** – wendet die Einstellungen aus Schritt 3 an, sodass Ihre numerischen Werte wie „$1,234.56“ aussehen und nicht wie „1234.56“. + +## Schritt 6 – Export überprüfen (Wie das Ergebnis aussieht) + +Lassen Sie uns die ersten paar Zeilen in die Konsole ausgeben, damit Sie sehen, dass die Formatierung erhalten blieb. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Erwartete Ausgabe (Beispiel):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Beachten Sie, dass die Daten im Format `MM/dd/yyyy` angezeigt werden und die Währung das `$`‑Symbol beibehält – dank **Zahlenformat erhalten**. + +## Häufige Fallstricke & wie man sie vermeidet + +| Problem | Warum es passiert | Lösung | +|---------|-------------------|--------| +| Daten werden zu großen Zahlen | `ExportAsString` blieb `false` | `ExportAsString = true` beibehalten oder Zellen manuell konvertieren | +| Fehlende Spaltenüberschriften | `includeColumnNames` auf `false` gesetzt | Auf `true` setzen, wenn Sie **mit Spaltennamen exportieren** benötigen | +| Kommentare verschwinden | `IncludeCellComments` nicht aktiviert | `IncludeCellComments` in `ExportTableOptions` aktivieren | +| Falsches Blatt exportiert | Verwendung von `Worksheets[0]` bei einer Datei mit mehreren Blättern | Blattnamen angeben: `workbook.Worksheets["Data"]` | +| Ausnahme „Index außerhalb des Bereichs“ | `totalRows` überschreitet die tatsächliche Zeilenanzahl | `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` verwenden | + +## Bonus: Gesamtes Blatt exportieren und dennoch Formate erhalten + +Wenn Sie später das gesamte Blatt benötigen, ersetzen Sie einfach `totalRows` und `totalColumns` durch die maximalen Abmessungen des Blattes: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Jetzt haben Sie eine **Excel‑Arbeitsblatt‑Lese‑Routine**, die für jede Größe funktioniert, während Sie weiterhin **Zahlenformat erhalten** und **mit Spaltennamen exportieren**. + +## Vollständiges funktionierendes Beispiel (Kopieren‑Einfügen bereit) + +Unten finden Sie das komplette Programm, das Sie in eine Konsolen‑App einfügen können. Es enthält alle Schritte, Importe und eine einfache Verifizierungs‑Ausgabe. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Speichern Sie dies als `Program.cs`, führen Sie `dotnet run` aus, und Sie sollten die formatierte Vorschau in Ihrem Terminal sehen. + +## Fazit + +Wir haben gerade **wie man Excel**‑Daten mit Aspose.Cells exportiert, durchgearbeitet und dabei alles von dem Laden der Arbeitsmappe über das Erhalten des Zahlenformats, das Exportieren mit Spaltennamen bis hin zum Begrenzen des Exports auf bestimmte Zeilen abgedeckt. Der Code ist eigenständig, vollständig ausführbar und enthält praktische Schutzmaßnahmen für die häufigsten Randfälle. + +Bereit für die nächste Herausforderung? Versuchen Sie, direkt in eine CSV zu exportieren und dabei das ursprüngliche Zahlenformat beizubehalten, oder schieben Sie das `DataTable` in einen Entity Framework Core‑Kontext für Masseneinfügungen in die Datenbank. Beide Szenarien basieren auf denselben Grundlagen, die wir hier behandelt haben. + +Wenn Ihnen dieser Leitfaden geholfen hat + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..174c587a01 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. | +| [Excel-Arbeitsmappe mit formatierter Tabelle erstellen – Schritt-für-Schritt-Anleitung](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Erfahren Sie, wie Sie mit Aspose.Cells für .NET eine Excel-Arbeitsmappe mit einer formatierten Tabelle erstellen. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/german/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..4887ea7a63 --- /dev/null +++ b/cells/german/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,270 @@ +--- +category: general +date: 2026-03-21 +description: Erstelle eine Excel‑Arbeitsmappe und importiere die Datentabelle nach + Excel, während du den Spaltenstil festlegst, exportiere Daten nach Excel und formatiere + das Datum in Excel‑Zellen in Minuten. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: de +og_description: Erstellen Sie schnell eine Excel-Arbeitsmappe. Lernen Sie, eine Datentabelle + nach Excel zu importieren, Spaltenstile festzulegen, Daten nach Excel zu exportieren + und das Datum in Excel‑Zellen zu formatieren – alles in einem Leitfaden. +og_title: Excel‑Arbeitsmappe erstellen – Vollständiges Tutorial für Formatierung und + Export +tags: +- C# +- Aspose.Cells +- Excel automation +title: Excel‑Arbeitsmappe mit formatierter Tabelle erstellen – Schritt‑für‑Schritt‑Anleitung +url: /de/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-Arbeitsmappe erstellen – Vollständiges Programmier‑Tutorial + +Haben Sie schon einmal **excel workbook erstellen** müssen, das direkt aus dem Code heraus professionell aussieht? Vielleicht holen Sie Daten aus einer Datenbank und möchten, dass die Datumsangaben im richtigen Format angezeigt werden, ohne später in Excel nachzuarbeiten. Das ist ein häufiges Problem – besonders wenn die Ausgabe im Posteingang eines Kunden landet und dieser erwartet, dass alles sofort einsatzbereit ist. + +In diesem Leitfaden gehen wir Schritt für Schritt durch eine einzelne, eigenständige Lösung, die **imports datatable to excel**, einen **set column style** anwendet und schließlich **export data to excel** als schön formatierte Datei ausgibt. Sie sehen genau, wie man **format excel cells date** verwendet, sodass die Tabelle wie ein professioneller Bericht wirkt, und am Ende erhalten Sie ein vollständiges, ausführbares Beispiel. Keine fehlenden Teile, keine „siehe Dokumentation“-Abkürzungen – nur reiner Code, den Sie noch heute in Ihr Projekt übernehmen können. + +--- + +## Was Sie lernen werden + +- Wie man **create excel workbook** mit der Aspose.Cells Bibliothek (oder einer kompatiblen API) verwendet. +- Der schnellste Weg, **import datatable to excel** ohne manuelle Zell‑für‑Zell‑Schleifen. +- Techniken zum **set column style**, einschließlich der Anwendung eines Datumsformats auf eine bestimmte Spalte. +- Wie man **export data to excel** mit einem einzigen `Save`‑Aufruf durchführt. +- Häufige Fallstricke beim Versuch, **format excel cells date** anzuwenden, und wie man sie vermeidet. + +### Voraussetzungen + +- .NET 6+ (oder .NET Framework 4.6+). +- Aspose.Cells for .NET installiert (`Install-Package Aspose.Cells`). +- Ein `DataTable`, das exportbereit ist – Ihre Datenquelle könnte SQL, CSV oder irgendetwas sein, das in ein `DataTable` umgewandelt werden kann. + +Wenn Sie bereits mit C# vertraut sind und diese Bausteine vorhanden sind, können Sie sofort loslegen. Andernfalls gibt Ihnen der Abschnitt „Voraussetzungen“ oben eine schnelle Checkliste. + +--- + +## Schritt 1 – Excel-Arbeitsmappe-Instanz erstellen + +Das allererste, was Sie tun, wenn Sie **create excel workbook** programmgesteuert erstellen wollen, ist das Instanziieren des Workbook‑Objekts. Denken Sie dabei an ein leeres Notizbuch, in das Sie später Ihre Daten schreiben. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Why this matters:** +> Die `Workbook`‑Klasse ist der Einstiegspunkt für jede Operation in Aspose.Cells. Sie frühzeitig zu erstellen gibt Ihnen eine saubere Leinwand, und Sie können später eine vorhandene Datei laden, falls Sie Daten anhängen statt von vorne zu beginnen. + +--- + +## Schritt 2 – DataTable für den Import vorbereiten + +Bevor wir **import datatable to excel** können, benötigen wir ein `DataTable`. In realen Projekten stammt das häufig aus `SqlDataAdapter.Fill` oder `DataTable.Load`. Der Einfachheit halber stubben wir hier eine Methode, die eine fertige Tabelle zurückgibt. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tip:** Wenn Ihre Datumswerte als Strings gespeichert sind, konvertieren Sie sie zuerst zu `DateTime` – sonst funktioniert der Schritt **format excel cells date** nicht wie erwartet. + +--- + +## Schritt 3 – Stile für jede Spalte definieren (Set Column Style) + +Jetzt kommt der Teil, in dem wir **set column style** anwenden. Wir erstellen ein Array von `Style`‑Objekten – eines pro Spalte. Die erste Spalte erhält ein eingebautes Datumsformat (Code 14), während die anderen das allgemeine Format (Code 0) behalten. + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Why use style objects?** +> Das einmalige Anwenden eines Stils und dessen Wiederverwendung ist weitaus effizienter, als das Format jeder einzelnen Zelle zu setzen. Außerdem wird sichergestellt, dass die gesamte Spalte dieselbe **format excel cells date**‑Regel befolgt, was für Konsistenz sorgt, wenn die Datei in unterschiedlichen Locale‑Einstellungen geöffnet wird. + +--- + +## Schritt 4 – DataTable mit Stilen in das Arbeitsblatt importieren + +Mit dem vorbereiteten Workbook und den definierten Stilen **import datatable to excel** wir nun. Die Methode `ImportDataTable` übernimmt die schwere Arbeit: Sie schreibt die Spaltenüberschriften, Zeilen und wendet die übergebenen Stile an. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **What’s happening under the hood?** +> - `true` weist Aspose.Cells an, die Spaltennamen als erste Zeile einzufügen. +> - `0, 0` sind die Start‑Zeilen‑ und Spaltenindizes (obere linke Ecke). +> - `columnStyles` verknüpft jede Spalte mit dem vorbereiteten Stil, sodass die **format excel cells date**‑Regel auf die Datumsspalte angewendet wird. + +--- + +## Schritt 5 – Workbook speichern (Export) in eine physische Datei + +Abschließend **export data to excel** wir, indem wir das Workbook auf die Festplatte schreiben. Sie können den Pfad nach Belieben anpassen oder die Datei direkt in eine HTTP‑Antwort streamen, wenn Sie eine Web‑API bauen. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** Verwenden Sie `workbook.Save(Stream, SaveFormat.Xlsx)`, wenn Sie die Datei über das Netzwerk senden wollen, ohne sie auf die Festplatte zu schreiben. + +--- + +## Vollständiges funktionierendes Beispiel (Alle Schritte kombiniert) + +Unten finden Sie das komplette, sofort ausführbare Programm. Kopieren Sie es in ein Konsolen‑App‑Projekt, passen Sie den Ausgabepfad an, und Sie erhalten in Sekundenschnelle eine schön formatierte Excel‑Datei. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Erwartete Ausgabe:** +Wenn Sie `StyledTable.xlsx` öffnen, zeigt Spalte A Datumswerte wie `03/19/2026` (abhängig von Ihrem Locale), während die Spalten B und C die Produktnamen bzw. Mengen als Klartext/Zahlen darstellen. Keine zusätzlichen Formatierungsschritte nötig – Ihr **create excel workbook**‑Prozess ist abgeschlossen. + +--- + +## Häufig gestellte Fragen & Sonderfälle + +### 1️⃣ Was, wenn mein DataTable mehr als drei Spalten hat? +Fügen Sie weitere `Style`‑Objekte zum `columnStyles`‑Array hinzu und passen Sie die `Number`‑Eigenschaft für jede Spalte an, die ein spezielles Format benötigt (z. B. Währung, Prozentsätze). Die Methode `ImportDataTable` ordnet jeden Stil nach Position zu. + +### 2️⃣ Kann ich ein benutzerdefiniertes Datumsformat statt des eingebauten 14 verwenden? +Absolut. Ersetzen Sie `columnStyles[i].Number = 14;` durch: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Wie **export data to excel** in einer Web‑API, ohne auf die Festplatte zu schreiben? +Verwenden Sie einen `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Was, wenn das Locale des Benutzers ein anderes Datums‑Trennzeichen erwartet? +Das eingebaute Datumsformat (ID 14) respektiert die Locale‑Einstellungen des Workbooks. Wenn Sie ein festes Format unabhängig vom Locale benötigen, nutzen Sie die `Custom`‑Eigenschaft wie oben gezeigt. + +### 5️⃣ Funktioniert das mit .NET Core? +Ja – Aspose.Cells unterstützt .NET Standard 2.0 und höher, sodass derselbe Code auf .NET 6, .NET 7 oder jeder kompatiblen Runtime läuft. + +--- + +## Best‑Practice‑Tipps (Pro‑Tipps) + +- **Stile wiederverwenden**: Einen Stil pro Spalte zu erstellen ist günstig, aber denselben Stil‑Objekt für identische Spalten zu verwenden spart Speicher. +- **Vermeiden Sie Zell‑für‑Zell‑Schleifen**: `ImportDataTable` ist stark optimiert; manuelle Schleifen sind langsamer und fehleranfälliger. +- **Workbook‑Kultur früh setzen**, wenn Sie konsistente Zahlen‑/Datums‑Trennzeichen über Umgebungen hinweg benötigen: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **DataTable validieren** bevor Sie importieren – null‑Datumswerte werfen eine Ausnahme, wenn der Datumsstil angewendet wird. +- **Berechnungen aktivieren**, falls Sie nach dem Import Formeln hinzufügen: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Fazit + +Sie haben nun ein komplettes, durchgängiges Rezept, um **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel** und **format excel cells date** zu realisieren – alles in weniger als einem Dutzend Zeilen C#‑Code. Der Ansatz ist schnell, zuverlässig und hält Formatierungsaspekte im Code, sodass die fertige Tabelle sofort für Business‑User bereitsteht, sobald sie geöffnet wird. + +Bereit für die nächste Herausforderung? Versuchen Sie, bedingte Formatierung hinzuzufügen, Diagramme einzufügen oder die + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/german/net/row-and-column-management/_index.md index 281bb571ac..eff076c03a 100644 --- a/cells/german/net/row-and-column-management/_index.md +++ b/cells/german/net/row-and-column-management/_index.md @@ -66,6 +66,8 @@ Erfahren Sie in unserer Schritt-für-Schritt-Anleitung, wie Sie mit Aspose.Cells Erfahren Sie, wie Sie mit Aspose.Cells für .NET eine Spalte in einer Excel-Datei löschen. Folgen Sie unserer detaillierten Schritt-für-Schritt-Anleitung, um Ihre Excel-Dateiänderungen zu optimieren. ### [Löschen einer Zeile in Aspose.Cells .NET](./delete-row-aspose-cells/) Erfahren Sie, wie Sie mit Aspose.Cells für .NET eine Zeile in Excel löschen. Diese Schritt-für-Schritt-Anleitung behandelt die Voraussetzungen, den Codeimport und eine detaillierte Anleitung zur nahtlosen Datenmanipulation. +### [Excel-Datei laden C# – Zeilen löschen und bestimmte Zeilen entfernen](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Erfahren Sie, wie Sie mit Aspose.Cells für .NET Excel-Dateien in C# laden und gezielt Zeilen löschen oder bestimmte Zeilen entfernen. ### [Löschen mehrerer Zeilen in Aspose.Cells .NET](./delete-multiple-rows-aspose-cells/) Erfahren Sie, wie Sie mit Aspose.Cells für .NET mehrere Zeilen in Excel löschen. Diese detaillierte Schritt-für-Schritt-Anleitung enthält Voraussetzungen, Programmierbeispiele und FAQs für Entwickler. ### [Einfügen einer Spalte in Aspose.Cells .NET](./insert-column-aspose-cells/) diff --git a/cells/german/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/german/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..a6463f1ec5 --- /dev/null +++ b/cells/german/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-21 +description: Excel-Datei in C# laden und Datenzeilen mit Aspose.Cells entfernen. Lernen + Sie, wie Sie Zeilen löschen, bestimmte Zeilen entfernen und die Zeilenlöschung in + C#‑Excel in Minuten meistern. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: de +og_description: Excel-Datei in C# laden und schnell Zeilen löschen, bestimmte Zeilen + entfernen und die Zeilenlöschung in C# mit Aspose.Cells durchführen. Vollständige + Schritt‑für‑Schritt‑Anleitung. +og_title: Excel-Datei in C# laden – Zeilen löschen & bestimmte Zeilen entfernen +tags: +- C# +- Excel +- Aspose.Cells +title: Excel-Datei laden C# – Wie man Zeilen löscht und bestimmte Zeilen entfernt +url: /de/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-Datei laden C# – Wie man Zeilen löscht und bestimmte Zeilen entfernt + +Haben Sie jemals **Excel-Datei laden C#** gebraucht und danach Zeilen entfernen müssen, die Sie nicht benötigen? Vielleicht bereinigen Sie einen Daten-Dump, oder Sie haben eine Vorlage, bei der bestimmte Zeilen verschwinden müssen, bevor Sie die Arbeitsmappe an einen Kunden senden. In jedem Fall ist das Problem dasselbe: Sie haben eine `.xlsx`‑Datei auf der Festplatte, wollen sie in .NET öffnen und **Zeilen löschen**, ohne versteckte Tabellen oder ListObjects zu beschädigen. + +Der springende Punkt – Aspose.Cells macht das zum Kinderspiel. In diesem Tutorial sehen Sie ein komplettes, sofort ausführbares Beispiel, das genau zeigt, **wie man Zeilen löscht**, **wie man bestimmte Zeilen entfernt** und warum Sie sich überhaupt für **c# excel row deletion** interessieren sollten. Am Ende haben Sie eine saubere `output.xlsx`, die nur die gewünschten Zeilen enthält. + +## Was dieser Leitfaden abdeckt + +- Laden einer Excel‑Arbeitsmappe von der Festplatte mit Aspose.Cells. +- Löschen eines Zeilenbereichs (z. B. Zeilen 5‑10) unter Berücksichtigung von ListObject‑Kopfzeilen. +- Speichern der modifizierten Arbeitsmappe zurück ins Dateisystem. +- Häufige Stolperfallen, wie das versehentliche Löschen von Zeilen innerhalb einer Tabelle, und Tipps zu deren Handhabung. +- Ein vollständiges, ausführbares Code‑Beispiel, das Sie noch heute in eine Konsolen‑App einfügen können. + +> **Voraussetzungen** +> • .NET 6+ (oder .NET Framework 4.6+). +> • Aspose.Cells für .NET über NuGet installiert (`Install-Package Aspose.Cells`). +> • Grundlegende Kenntnisse in C# und Excel‑Konzepten (Arbeitsblätter, Zellen, Tabellen). + +Wenn Sie sich fragen, **warum Sie Aspose.Cells** statt z. B. `Microsoft.Office.Interop.Excel` verwenden sollten, lautet die Antwort: Geschwindigkeit, keine COM‑Abhängigkeit und die Möglichkeit, auf Servern ohne installierte Office‑Suite zu laufen. Außerdem ist die API für Aufgaben rund um das Zeilen‑Löschen sehr geradlinig. + +--- + +## Schritt 1: Die Excel‑Arbeitsmappe in C# laden + +Bevor Sie etwas löschen können, müssen Sie die Arbeitsmappe in den Speicher laden. Die Klasse `Workbook` repräsentiert die gesamte Excel‑Datei. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Warum das wichtig ist:** +Das Laden der Datei erzeugt einen Objektgraphen, der die Excel‑Struktur – Arbeitsblätter, Zellen, Tabellen usw. – widerspiegelt. Durch das Halten einer Referenz zu `ws` können Sie Zeilen direkt manipulieren, ohne sich um Dateisperren oder COM‑Interop‑Eigenheiten sorgen zu müssen. + +--- + +## Schritt 2: Zeilen löschen, die nur Daten enthalten + +Jetzt, wo die Arbeitsmappe im Speicher ist, können Sie Zeilen löschen. Die Methode `Cells.DeleteRows(startRow, totalRows)` entfernt einen zusammenhängenden Block. In unserem Beispiel entfernen wir die Zeilen 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Wie das funktioniert:** +- `startRow` ist nullbasiert, daher bezieht sich `5` tatsächlich auf Excel‑Zeile 6. Passen Sie den Wert entsprechend an. +- Wenn das Arbeitsblatt ein **ListObject** (Excel‑Tabelle) enthält, dessen Kopfzeile in Zeile 4 steht, schützt Aspose.Cells die Kopfzeile und löscht nur die darunter liegenden Datenzeilen. Diese eingebaute Sicherheit verhindert das Beschädigen strukturierter Tabellen – ein häufiger Edge‑Case beim **Entfernen von Datenzeilen**. + +> **Pro‑Tipp:** Wenn Sie nicht zusammenhängende Zeilen löschen müssen (z. B. Zeilen 3, 7, 12), iterieren Sie über eine umgekehrte Sammlung von Zeilenindizes und rufen `DeleteRows(rowIndex, 1)` für jede auf. Das Löschen von unten nach oben bewahrt die ursprünglichen Indizes der verbleibenden Zeilen. + +--- + +## Schritt 3: Die modifizierte Arbeitsmappe speichern + +Sobald die unerwünschten Zeilen verschwunden sind, schreiben Sie die Arbeitsmappe einfach zurück auf die Festplatte. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +Die `Save`‑Methode ermittelt das Dateiformat automatisch aus der Erweiterung (`.xlsx` in diesem Fall). Wenn Sie ein anderes Format benötigen – CSV, PDF usw. – ändern Sie einfach die Erweiterung oder übergeben ein `SaveFormat`‑Enum. + +### Erwartetes Ergebnis + +Öffnen Sie `output.xlsx` in Excel und Sie werden sehen, dass die Zeilen 5‑14 (die ursprünglichen Zeilen 5‑10) verschwunden sind. Alle anderen Daten rücken entsprechend nach oben, und Formeln, die auf die gelöschten Zeilen verwiesen haben, werden von Aspose.Cells automatisch angepasst. + +--- + +## Häufig gestellte Fragen (FAQ) + +### Wie lösche ich Zeilen basierend auf einer Bedingung (z. B. alle Zeilen, in denen Spalte A leer ist)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +Die Schleife läuft rückwärts, um ein Verschieben der Indizes zu vermeiden. Dieses Muster beantwortet die breitere **c# excel row deletion**‑Frage, wenn Sie bedingte Logik benötigen. + +### Was passiert, wenn mein Arbeitsblatt mehrere ListObjects enthält? + +Aspose.Cells behandelt jedes ListObject unabhängig. Wenn die Kopfzeile einer Tabelle vom Löschbereich betroffen wäre, wirft die API eine `InvalidOperationException`. Um das zu umgehen, passen Sie entweder den Bereich an oder deaktivieren temporär die Eigenschaft `ShowTableStyleFirstColumn` des ListObjects, führen das Löschen aus und stellen die Eigenschaft anschließend wieder her. + +### Kann ich Zeilen löschen, ohne die gesamte Arbeitsmappe in den Speicher zu laden? + +Ja – Aspose.Cells bietet eine **Streaming‑API** (`Workbook.LoadOptions`), die Daten in Teilen einliest. Das Löschen von Zeilen erfordert jedoch die Struktur des Arbeitsblatts, sodass das Ziel‑Sheet dennoch in den Speicher geladen werden muss. Bei sehr großen Dateien (> 500 MB) sollten Sie in Chargen verarbeiten oder die **cell‑by‑cell**‑API nutzen. + +--- + +## Vollständiges, ausführbares Beispiel + +Unten finden Sie das komplette Programm, das Sie als Konsolen‑App kompilieren und ausführen können. Ersetzen Sie `YOUR_DIRECTORY` durch einen tatsächlichen Ordnerpfad auf Ihrem Rechner. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Ausführen des Codes:** +1. Öffnen Sie ein Terminal oder Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Ersetzen Sie `Program.cs` durch das obige Snippet. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Sie sollten eine Konsolenausgabe sehen, die das Löschen bestätigt und den Speicherort der gespeicherten Datei angibt. + +--- + +## Häufige Stolperfallen & wie man sie vermeidet + +| Stolperfalle | Warum sie auftritt | Lösung | +|--------------|--------------------|--------| +| **Versehentliches Löschen einer ListObject‑Kopfzeile** | `DeleteRows` prüft nicht auf versteckte Tabellen‑Kopfzeilen, wenn der Bereich sie überschneidet. | Stellen Sie sicher, dass Ihr Start‑Row **nach** jeder Tabellen‑Kopfzeile liegt, oder nutzen Sie die `ListObject`‑API, um Zeilen innerhalb der Tabelle zu löschen (`ListObject.DeleteRows`). | +| **Zeilenindizes um eins verschoben** | Aspose.Cells verwendet nullbasierte Indizes, während Excel‑Nutzer 1‑basierte Zeilennummern denken. | Subtrahieren Sie 1 von der Excel‑Zeilennummer, wenn Sie sie im Code verwenden. | +| **Formeln brechen nach dem Löschen** | Das Entfernen von Zeilen kann `#REF!`‑Fehler erzeugen, wenn Formeln auf die gelöschten Zeilen verweisen. | Aspose.Cells aktualisiert die meisten Formeln automatisch, prüfen Sie jedoch externe Bezüge oder benannte Bereiche. | +| **Leistungsabfall bei riesigen Dateien** | Das Löschen vieler einzelner Zeilen löst interne Neu‑Indexierung aus. | Löschen Sie große Bereiche auf einmal (`DeleteRows(start, count)`) statt vieler Einzel‑Löschungen. | + +--- + +## Nächste Schritte & verwandte Themen + +- **Bestimmte Zeilen basierend auf Zellwerten entfernen:** Kombinieren Sie die im FAQ gezeigte bedingte Schleife mit `DeleteRows`. +- **Massen‑Zeilen‑Einfügen:** Verwenden Sie `InsertRows`, um Platzhalterzeilen hinzuzufügen, bevor Sie Daten befüllen. +- **Arbeiten mit Tabellen (ListObjects):** Erkunden Sie die `ListObject`‑Methoden für zeilenbezogene Operationen innerhalb strukturierter Tabellen. +- **Export nach CSV nach dem Zeilen‑Löschen:** Rufen Sie `workbook.Save("output.csv", SaveFormat.Csv)` auf, um eine saubere CSV‑Datei ohne die entfernten Zeilen zu erzeugen. + +All diese Themen bauen auf dem Kern‑Workflow **load excel file c#** auf, den Sie gerade gemeistert haben, und ermöglichen Ihnen, Excel‑Dateien programmatisch feinzujustieren. + +--- + +## Fazit + +Wir haben ein praktisches Szenario von **load excel file c#** durchgegangen, gezeigt, **wie man Zeilen löscht**, und die Nuancen von **remove specific rows** sowie **remove data rows** mit Aspose.Cells behandelt. Durch das Laden der Arbeitsmappe, Aufrufen von `DeleteRows` und Speichern des Ergebnisses erreichen Sie zuverlässige **c# excel row deletion** ohne den Overhead von COM‑Interop. + +Probieren Sie es an einem echten Datensatz aus – vielleicht bereinigen Sie einen Verkaufsbericht oder entfernen Testzeilen aus einer Vorlage. Sobald Sie sich sicher fühlen, experimentieren Sie mit bedingten Löschungen und tabellen‑bewussten Operationen. Die API ist robust genug für einfache Skripte und für unternehmensweite Batch‑Prozessoren. + +Viel Spaß beim Coden, und hinterlassen Sie gern einen Kommentar, falls Sie auf Probleme stoßen! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/german/net/worksheet-operations/_index.md index 65b961f827..718bddc8c8 100644 --- a/cells/german/net/worksheet-operations/_index.md +++ b/cells/german/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Lernen Sie mit dieser umfassenden Schritt-für-Schritt-Anleitung, mit Aspose.Cel Erfahren Sie, wie Sie den Revisionsprotokollverlauf in freigegebenen Arbeitsmappen mit Aspose.Cells für .NET aktualisieren. Vereinfachen Sie die Zusammenarbeit und sorgen Sie für übersichtliche Dokumentaufzeichnungen. ### [Verwenden Sie die Sheet_SheetId-Eigenschaft von OpenXml im Arbeitsblatt](./utilize-sheet-sheetid-property/) Entfesseln Sie die Leistungsfähigkeit von Excel mit Aspose.Cells für .NET. Lernen Sie mit unserer Schritt-für-Schritt-Anleitung, Blatt-IDs effektiv zu bearbeiten. +### [Wie man Arbeitsblätter erstellt – Schritt‑für‑Schritt‑Anleitung für die dynamische Excel‑Generierung](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Erfahren Sie, wie Sie mit Aspose.Cells für .NET dynamisch Arbeitsblätter erstellen und Excel-Dateien programmgesteuert generieren. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/german/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..af51fecd89 --- /dev/null +++ b/cells/german/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-21 +description: Erfahren Sie, wie Sie Arbeitsblätter erstellen, Excel-Dateien mit dynamischen + Arbeitsblattnamen generieren und die Arbeitsmappe als XLSX mit Aspose.Cells in C# + speichern. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: de +og_description: Wie man Arbeitsblätter in Excel mit Aspose.Cells erstellt, Excel‑Tabellen + mit dynamischen Arbeitsblattnamen generiert und die Arbeitsmappe als XLSX speichert. +og_title: Wie man Arbeitsblätter erstellt – Vollständiges C#‑Tutorial +tags: +- Aspose.Cells +- C# +- Excel automation +title: Wie man Arbeitsblätter erstellt – Schritt‑für‑Schritt‑Anleitung zur dynamischen + Excel‑Generierung +url: /de/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man Arbeitsblätter erstellt – Vollständiges C#‑Tutorial + +Haben Sie sich jemals gefragt, **wie man Arbeitsblätter** on the fly erstellt, ohne jedes Mal Excel manuell zu öffnen? Sie sind nicht allein. Viele Entwickler stoßen an Grenzen, wenn sie **Excel‑Sheets** aus Datenquellen **generieren** müssen und jedes Blatt einen sinnvollen, dynamischen Namen erhalten soll. Die gute Nachricht? Mit Aspose.Cells können Sie den gesamten Prozess automatisieren, **process master sheet**, und schließlich **Workbook als XLSX speichern** – und das in nur wenigen Codezeilen. + +> **Voraussetzungen** +> • .NET 6+ (oder .NET Framework 4.6+). +> • Aspose.Cells für .NET (die kostenlose Testversion funktioniert für diese Demo). +> • Grundkenntnisse in C# – keine tiefgreifenden Excel‑Interop‑Tricks erforderlich. + +--- + +## Überblick über das, was wir bauen werden + +- **Master‑Sheet** enthält einen Smart‑Marker‑Platzhalter (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor**, der eine Datenquelle (z. B. eine `DataTable`) liest und für jede Abteilung ein neues Arbeitsblatt erstellt. +- **Dynamische Arbeitsblattnamen** nach dem Muster `Dept_{0}`, wobei `{0}` durch den Abteilungsnamen ersetzt wird. +- **Endgültige XLSX‑Datei**, gespeichert in einem von Ihnen angegebenen Ordner. + +Das war's. Einfach, aber dennoch leistungsfähig genug für Rechnungen, Berichte oder jede mehr‑tab‑Excel‑Ausgabe. + +![Diagramm, das zeigt, wie ein Master‑Sheet verarbeitet wird, um mehrere dynamische Arbeitsblätter zu erzeugen](/images/how-to-create-worksheets-diagram.png "Diagramm zum Erstellen von Arbeitsblättern") + +*Alt‑Text: Illustration, wie man Arbeitsblätter mit dynamischen Arbeitsblattnamen mithilfe von Aspose.Cells erstellt.* + +## Schritt 1: Projekt einrichten und Aspose.Cells hinzufügen + +### Warum das wichtig ist +Bevor irgendein Code ausgeführt wird, muss der Compiler wissen, wo die Klassen `Workbook`, `Worksheet` und `SmartMarkerProcessor` definiert sind. Das Hinzufügen des NuGet‑Pakets stellt sicher, dass Sie die neueste, voll funktionsfähige API besitzen. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro‑Tipp:** Wenn Sie Visual Studio verwenden, klicken Sie mit der rechten Maustaste auf das Projekt → *NuGet‑Pakete verwalten* → suchen Sie nach *Aspose.Cells* und installieren Sie die neueste stabile Version. + +## Schritt 2: Neues Workbook erstellen und das Master‑Sheet + +### Was wir tun +Wir beginnen mit einem leeren Workbook und holen dann das erste Arbeitsblatt (Index 0). Dieses Blatt fungiert als **Master‑Sheet**, das das Smart‑Marker‑Token enthält. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +Die Klasse `Workbook` ist der Container für alle Arbeitsblätter. Standardmäßig wird ein Blatt namens *Sheet1* erstellt; die Umbenennung in „Master“ erleichtert die Navigation in der endgültigen Datei. + +## Schritt 3: Smart‑Marker‑Token für Detail‑Sheet‑Namen einfügen + +### Warum einen Smart‑Marker verwenden? +Smart‑Marker ermöglichen es Aspose.Cells, Platzhalter zur Laufzeit durch Daten zu ersetzen. Das Token `«DetailSheetNewName:Dept»` weist den Processor an: *„Wenn Sie das sehen, erstellen Sie ein neues Detail‑Sheet für jede Zeile in der Spalte `Dept`.“* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Sie können das Token überall platzieren; wir haben **A1** aus Gründen der Übersicht gewählt. Wenn der Processor ausgeführt wird, ersetzt er das Token durch den tatsächlichen Abteilungsnamen und erzeugt ein entsprechendes Arbeitsblatt. + +## Schritt 4: Datenquelle vorbereiten + +### Wie die Daten die Blattgenerierung steuern +Aspose.Cells arbeitet mit jeder `IEnumerable`‑Datenquelle. Für diese Demo verwenden wir eine `DataTable` mit einer einzigen Spalte namens `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Was, wenn Sie mehr Spalten haben?** +> Der Processor ignoriert zusätzliche Spalten, sofern Sie sie nicht in weiteren Smart‑Markern referenzieren. Dadurch bleibt die Blattgenerierung leichtgewichtig. + +## Schritt 5: SmartMarkerProcessor und Namensmuster konfigurieren + +### Dynamische Arbeitsblattnamen in Aktion +Wir möchten, dass jedes neue Blatt `Dept_Finance`, `Dept_HR` usw. heißt. Die Option `DetailSheetNewName` ermöglicht es uns, ein Muster zu definieren, bei dem `{0}` durch den tatsächlichen Abteilungsnamen ersetzt wird. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Wenn eine Abteilung zweimal vorkommt, fügt Aspose automatisch ein numerisches Suffix hinzu (z. B. `Dept_Finance_1`), um doppelte Blattnamen zu vermeiden. + +## Schritt 6: Master‑Sheet verarbeiten, um Detail‑Sheets zu erzeugen + +### Der Kern von **process master sheet** +Der Aufruf von `Process` übernimmt die schwere Arbeit: Er durchsucht das Master‑Sheet nach Smart‑Markern, erstellt neue Arbeitsblätter, kopiert das Master‑Layout und füllt jedes mit den Zeilendaten. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Nach diesem Aufruf enthält das Workbook ein Master‑Sheet plus vier Detail‑Sheets – jedes nach unserem Muster benannt und mit dem Abteilungsnamen in Zelle A1 gefüllt. + +## Schritt 7: Workbook als XLSX speichern + +### Letzter Schritt—**save workbook as XLSX** +Jetzt, da die Arbeitsblätter existieren, schreiben wir die Datei auf die Festplatte. Sie können einen beliebigen Pfad wählen; stellen Sie nur sicher, dass das Verzeichnis existiert. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Opening `DetailSheets.xlsx` will show: + +| Blattname | Zelle A1 (Inhalt) | +|-----------|-------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Randfall:** Wenn das Ausgabeverzeichnis nicht existiert, wirft `Save` eine `DirectoryNotFoundException`. Umschließen Sie den Aufruf mit einem try‑catch‑Block oder erstellen Sie das Verzeichnis vorher. + +## Vollständiges funktionierendes Beispiel + +Hier ist das komplette Programm, das Sie in eine Konsolen‑App kopieren‑und‑einfügen können: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Führen Sie das Programm aus, öffnen Sie die resultierende Datei, und Sie sehen exakt das zuvor beschriebene Layout. Kein manuelles Kopieren/Einfügen, kein COM‑Interop – nur sauberer C#‑Code, der **Excel‑Sheets** mit **dynamischen Arbeitsblattnamen** erzeugt. + +## Häufige Fragen & Stolperfallen + +| Frage | Antwort | +|-------|----------| +| *Kann ich ein DataSet mit mehreren Tabellen verwenden?* | Ja. Übergeben Sie die entsprechende Tabelle an `Process` oder verwenden Sie ein Wörterbuch von Tabellen. | +| *Was, wenn ich mehr als einen Smart‑Marker auf dem Master‑Sheet benötige?* | Platzieren Sie zusätzliche Tokens wie `«DetailSheetNewName:Region»` und konfigurieren Sie bei Bedarf ein separates Namensmuster. | +| *Bleibt das Master‑Sheet in der endgültigen Datei?* | Standardmäßig ja. Wenn Sie es nicht benötigen, rufen Sie nach der Verarbeitung `workbook.Worksheets.RemoveAt(0)` auf. | +| *Wie geht Aspose mit sehr großen Datenmengen um?* | Es streamt Daten effizient, aber Sie sollten `MemorySetting` erhöhen, falls Sie Speichergrenzen erreichen. | +| *Kann ich statt XLSX nach CSV exportieren?* | Natürlich – verwenden Sie `workbook.Save("file.csv", SaveFormat.Csv)`. Die gleiche Logik zur Blattgenerierung gilt. | + +## Nächste Schritte + +Jetzt, wo Sie **wie man Arbeitsblätter** dynamisch erstellt, kennen, könnten Sie Folgendes erkunden: + +- **Workbook als XLSX speichern** mit Passwortschutz (`workbook.Protect("pwd")`). +- **Excel‑Sheets** aus JSON‑ oder XML‑Quellen generieren mittels `JsonDataSource` oder `XmlDataSource`. +- **Stile anwenden** auf jedes erzeugte Blatt (Schriftarten, Farben) über `Style`‑Objekte. +- **Zellen zusammenführen** oder Formeln automatisch einfügen für Zusammenfassungsberichte. + +Jede dieser Erweiterungen baut auf dem gleichen **process master sheet**‑Konzept auf, sodass der Übergang reibungslos verläuft. + +## Fazit + +Wir haben die gesamte Pipeline behandelt: vom Initialisieren eines Workbooks, Einfügen eines Smart‑Markers, Konfigurieren **dynamischer Arbeitsblattnamen**, Verarbeiten des Master‑Sheets zum **Generieren von Excel‑Sheets** und schließlich **Speichern des Workbooks als XLSX**. Das Beispiel ist vollständig, ausführbar und demonstriert Best Practices für sowohl Performance als auch Wartbarkeit. + +Probieren Sie es aus, passen Sie das Namensmuster an, füttern Sie es mit echten Geschäftsdaten und sehen Sie, wie Ihre Excel‑Automatisierung abhebt. Wenn Sie auf Probleme stoßen, hinterlassen Sie unten einen Kommentar – 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/greek/net/calculation-engine/_index.md b/cells/greek/net/calculation-engine/_index.md index 95279dfe6d..dc9d3aeb72 100644 --- a/cells/greek/net/calculation-engine/_index.md +++ b/cells/greek/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ ### [Βελτιστοποιήστε τον χρόνο υπολογισμού του Excel με αναδρομικές επιλογές στο Aspose.Cells για .NET](./optimize-calculation-time-recursive-aspose-cells-net) Μάθετε πώς να βελτιστοποιείτε τους χρόνους υπολογισμού του Excel χρησιμοποιώντας αναδρομικές επιλογές στο Aspose.Cells για .NET. Αυτός ο οδηγός καλύπτει τη ρύθμιση, συμβουλές απόδοσης και πρακτικές εφαρμογές. +### [Πώς να υπολογίσετε ένα βιβλίο εργασίας σε C# – Οδηγός ταξινόμησης και τύπων](./how-to-calculate-workbook-in-c-sort-formula-guide/) +Μάθετε πώς να υπολογίζετε βιβλία εργασίας, να εφαρμόζετε ταξινόμηση και τύπους σε C# χρησιμοποιώντας το Aspose.Cells. ## Οφέλη diff --git a/cells/greek/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/greek/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..c68a22b802 --- /dev/null +++ b/cells/greek/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Πώς να υπολογίσετε ένα βιβλίο εργασίας σε C# με το Aspose.Cells – μάθετε + να δημιουργείτε βιβλίο εργασίας Excel, να γεμίζετε κελιά Excel, να υπολογίζετε τύπους + Excel και να χρησιμοποιείτε τη λειτουργία ταξινόμησης. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: el +og_description: Πώς να υπολογίσετε ένα βιβλίο εργασίας σε C# γρήγορα. Αυτό το σεμινάριο + δείχνει πώς να δημιουργήσετε ένα βιβλίο εργασίας Excel, να γεμίσετε κελιά Excel, + να υπολογίσετε τύπους Excel και να χρησιμοποιήσετε τη λειτουργία ταξινόμησης. +og_title: Πώς να υπολογίσετε το Workbook σε C# – Πλήρης οδηγός ταξινόμησης +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Πώς να υπολογίσετε το Φύλλο Εργασίας σε C# – Οδηγός Ταξινόμησης & Τύπων +url: /el/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Υπολογίσετε το Workbook σε C# – Οδηγός Sort & Formula + +Έχετε αναρωτηθεί **πώς να υπολογίσετε τιμές workbook** εν κινήσει χωρίς να ανοίξετε το Excel; Δεν είστε μόνοι. Σε πολλές περιπτώσεις αυτοματοποίησης χρειάζεται να δημιουργήσετε ένα αρχείο Excel, να βάλετε μερικούς αριθμούς, να τα ταξινομήσετε και να πάρετε τα αποτελέσματα πίσω στην εφαρμογή .NET — όλα προγραμματιστικά. + +Σε αυτόν τον οδηγό θα περάσουμε βήμα‑βήμα από το **δημιουργία excel workbook**, **συμπλήρωση κελιών excel**, προσθήκη τύπου **SORT**, και τέλος **υπολογισμό τύπων excel** ώστε να διαβάσετε τον ταξινομημένο πίνακα απευθείας από C#. Στο τέλος θα έχετε ένα λειτουργικό απόσπασμα κώδικα που μπορείτε να ενσωματώσετε σε οποιοδήποτε project που αναφέρεται στο Aspose.Cells (ή σε παρόμοια βιβλιοθήκη). + +## Προαπαιτούμενα + +- .NET 6+ (ο κώδικας λειτουργεί επίσης σε .NET Framework 4.7.2) +- Aspose.Cells for .NET (δωρεάν δοκιμαστικό πακέτο NuGet `Aspose.Cells`) +- Βασική κατανόηση της σύνταξης C# +- Δεν απαιτείται εγκατεστημένο αντίγραφο του Microsoft Excel· η βιβλιοθήκη κάνει όλη τη βαριά δουλειά για εσάς + +Αν είστε άνετοι με τα παραπάνω, ας ξεκινήσουμε. + +## Πώς να Υπολογίσετε το Workbook – Αρχικοποίηση του Workbook + +Το πρώτο πράγμα που πρέπει να κάνετε είναι να δημιουργήσετε ένα νέο αντικείμενο workbook. Σκεφτείτε το σαν το άνοιγμα ενός ολοκαίνουργιου αρχείου Excel που είναι εντελώς κενό. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Γιατί είναι σημαντικό:** Η κλάση `Workbook` είναι το σημείο εισόδου για κάθε λειτουργία — χωρίς αυτή δεν μπορείτε να προσθέσετε φύλλα, κελιά ή τύπους. Η σωστή αρχικοποίησή της εξασφαλίζει ότι εργάζεστε με καθαρό «καμβά». + +## Δημιουργία Excel Workbook και Πρόσβαση στο Worksheet + +Τώρα που υπάρχει το workbook, πρέπει να βεβαιωθούμε ότι δείχνουμε στο σωστό worksheet. Οι περισσότερες βιβλιοθήκες δημιουργούν εξ' αρχής ένα φύλλο με όνομα “Sheet1”, αλλά μπορείτε να το μετονομάσετε ή να προσθέσετε περισσότερα αν θέλετε. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Συμβουλή:** Η ονομασία των φύλλων νωρίς βοηθά όταν τα αναφέρετε αργότερα σε τύπους (`'Data'!A1:A10`). Επίσης κάνει το debugging πιο εύκολο. + +## Συμπλήρωση Κελιών Excel με Δεδομένα + +Στη συνέχεια, θα **συμπληρώσουμε τα κελιά excel** με τους αριθμούς που θέλουμε να ταξινομήσουμε. Το παράδειγμα χρησιμοποιεί μόνο δύο κελιά, αλλά μπορείτε να επεκτείνετε την περιοχή σε δεκάδες γραμμές. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Γιατί χρησιμοποιούμε το `PutValue`** – Ανιχνεύει αυτόματα τον τύπο δεδομένων (int, double, string κ.λπ.) και το αποθηκεύει αναλόγως, εξοικονομώντας σας το χειροκίνητο casting. + +## Εφαρμογή Συνάρτησης SORT μέσω Τύπου + +Η συνάρτηση `SORT` του Excel κάνει ακριβώς αυτό που υποδηλώνει το όνομά της: επιστρέφει έναν ταξινομημένο πίνακα χωρίς να τροποποιεί τα αρχικά δεδομένα. Θα τοποθετήσουμε αυτόν τον τύπο στο κελί `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Σημείωση για edge case:** Η `SORT` επιστρέφει αποτέλεσμα **πίνακα**. Σε παλαιότερες εκδόσεις του Excel (πριν το Office 365) αυτό απαιτούσε Ctrl+Shift+Enter. Με το Aspose.Cells λαμβάνετε τον πίνακα αυτόματα όταν υπολογίζετε το workbook. + +## Υπολογισμός Τύπων Excel για Λήψη Αποτελεσμάτων + +Σε αυτό το σημείο το workbook ξέρει *τι* πρέπει να υπολογίσει, αλλά όχι *ότι* πρέπει να το κάνει. Η κλήση του `CalculateFormula` ενεργοποιεί τη μηχανή για να αξιολογήσει κάθε τύπο, συμπεριλαμβανομένου του `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Αναμενόμενη έξοδος κονσόλας** + +``` +Sorted array: {2, 5} +``` + +> **Τι συνέβη μόλις;** +> 1. Το workbook δημιούργησε μια εσωτερική μηχανή υπολογισμού. +> 2. Ο τύπος `SORT` εξέτασε την περιοχή `A1:A2`. +> 3. Η μηχανή παρήγαγε έναν νέο πίνακα, τον οποίο αντλήσαμε από το `B1`. + +Αν αλλάξετε τις τιμές στα `A1` και `A2` (ή επεκτείνετε την περιοχή) και ξανατρέξετε το `CalculateFormula`, η έξοδος θα ενημερωθεί αυτόματα — χωρίς επιπλέον κώδικα. + +## Χρήση της Συνάρτησης Sort σε Μεγαλύτερα Σύνολα Δεδομένων (Προαιρετικό) + +Οι περισσότερες πραγματικές περιπτώσεις περιλαμβάνουν περισσότερες από δύο γραμμές. Εδώ είναι μια γρήγορη τροποποίηση που λειτουργεί για οποιονδήποτε αριθμό καταχωρήσεων: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Γιατί μπορεί να το χρειαστείτε:** Η ταξινόμηση μεγάλων περιοχών σας επιτρέπει να δημιουργήσετε leaderboards, να ταξινομήσετε οικονομικά δεδομένα ή απλώς να καθαρίσετε εισαγόμενα CSV πριν από περαιτέρω επεξεργασία. + +## Συνηθισμένα Πάγια & Πώς να τα Αποφύγετε + +| Πρόβλημα | Γιατί Συμβαίνει | Διόρθωση | +|----------|----------------|----------| +| **`#VALUE!` στο B1** | Ο τύπος `SORT` αναφέρεται σε κενή ή μη‑αριθμητική περιοχή. | Βεβαιωθείτε ότι κάθε κελί στην πηγή περιέχει αριθμό ή κείμενο που μπορεί να ταξινομηθεί. | +| **Περικοπή Πίνακα** | Προσπάθεια ανάγνωσης πίνακα από ένα μόνο κελί χωρίς casting. | Κάντε cast το `worksheet.Cells["B1"].Value` σε `object[]` (ή τον κατάλληλο τύπο). | +| **Μείωση απόδοσης** | Επαναυπολογισμός τεράστιων workbooks μετά από κάθε μικρή αλλαγή. | Καλείτε το `CalculateFormula` μόνο αφού ολοκληρώσετε τις αλλαγές στο φύλλο, ή χρησιμοποιήστε `CalculateFormulaOptions` για περιορισμό του εύρους. | + +## Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Αντιγραφή‑Επικόλληση) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Στιγμιότυπο αποτελέσματος** +> ![πώς να υπολογίσετε το αποτέλεσμα του workbook στο Excel](https://example.com/images/sorted-result.png "πώς να υπολογίσετε το αποτέλεσμα του workbook στο Excel") + +Η εικόνα παραπάνω δείχνει το workbook μετά τον υπολογισμό — το κελί **B1** περιέχει τον ταξινομημένο πίνακα `{2, 5}`. + +## Συμπέρασμα + +Μόλις καλύψαμε **πώς να υπολογίσετε τιμές workbook** προγραμματιστικά: δημιουργήστε ένα Excel workbook, συμπληρώστε κελιά Excel, ενσωματώστε έναν τύπο `SORT`, και τέλος **υπολογίστε τύπους Excel** για να εξάγετε τα ταξινομημένα δεδομένα. Η προσέγγιση λειτουργεί για μικρά παραδείγματα με δύο κελιά και κλιμακώνεται άνετα σε μεγαλύτερα σύνολα δεδομένων. + +Τι ακολουθεί; Δοκιμάστε να συνδυάσετε αυτό με άλλες συναρτήσεις όπως `FILTER`, `UNIQUE`, ή ακόμη και προσαρμοσμένη λογική τύπου VBA μέσω `WorksheetFunction`. Μπορείτε επίσης να αποθηκεύσετε το workbook στο δίσκο (`workbook.Save("Sorted.xlsx")`) και να το ανοίξετε στο Excel για οπτική επαλήθευση. + +Πειραματιστείτε — αλλάξτε τους αριθμούς, τροποποιήστε την περιοχή, ή συνδυάστε πολλαπλούς τύπους. Η αυτοματοποίηση είναι θέμα γρήγορης επανάληψης, και τώρα έχετε μια σταθερή βάση για να χτίσετε πάνω της. + +Καλή προγραμματιστική, και τα workbooks σας να υπολογίζονται πάντα ακριβώς όπως περιμένετε! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/greek/net/conversion-and-rendering/_index.md index 0f6ce49161..09e84d6cf3 100644 --- a/cells/greek/net/conversion-and-rendering/_index.md +++ b/cells/greek/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Μάθετε πώς να μετατρέψετε ένα φύλλο εργασίας Excel σε SVG χρησιμοποιώντας το Aspose.Cells για .NET με αυτόν τον οδηγό βήμα προς βήμα. Ιδανικό για προγραμματιστές .NET που θέλουν να αποδώσουν το Excel σε SVG. ### [Μετατροπή Excel σε MHTML σε .NET](./converting-excel-to-mhtml/) Μάθετε πώς να μετατρέπετε αποτελεσματικά αρχεία Excel σε μορφή MHTML σε .NET με το Aspose.Cells, ενισχύοντας τις δυνατότητες αναφοράς και κοινής χρήσης δεδομένων. +### [Δημιουργία εικόνας από Excel – Εξαγωγή Pivot σε PNG σε C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Μάθετε πώς να εξάγετε πίνακες Pivot από Excel ως εικόνες PNG χρησιμοποιώντας Aspose.Cells σε C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/greek/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..b3b7e9f34b --- /dev/null +++ b/cells/greek/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Δημιουργία εικόνας από το Excel σε C# χρησιμοποιώντας το Aspose.Cells. + Μάθετε πώς να μετατρέπετε το Excel σε εικόνα, να εξάγετε pivot και να αποθηκεύετε + την εικόνα ως PNG με ένα πλήρες, εκτελέσιμο παράδειγμα. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: el +og_description: Δημιουργήστε εικόνα από το Excel σε C# γρήγορα. Αυτός ο οδηγός δείχνει + πώς να μετατρέψετε το Excel σε εικόνα, να εξάγετε το pivot και να αποθηκεύσετε την + εικόνα ως PNG με καθαρό κώδικα. +og_title: Δημιουργία εικόνας από το Excel – Εξαγωγή Pivot σε PNG με C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Δημιουργία εικόνας από το Excel – Εξαγωγή Pivot σε PNG σε C# +url: /el/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία εικόνας από Excel – Εξαγωγή Pivot σε PNG με C# + +Έχετε ποτέ χρειαστεί να **create image from Excel** αλλά δεν ήξερτε ποιο API να χρησιμοποιήσετε; Δεν είστε μόνοι—πολλοί προγραμματιστές αντιμετωπίζουν αυτό το εμπόδιο όταν προσπαθούν να μετατρέψουν έναν ζωντανό πίνακα pivot σε ένα διαμοιραζόμενο PNG. + +Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από μια πλήρη, έτοιμη προς εκτέλεση λύση που **converts Excel to image**, δείχνει **how to export pivot**, και εξηγεί **how to save image** ως αρχείο PNG. Στο τέλος θα έχετε μια μοναδική μέθοδο που εκτελεί όλη τη δουλειά, καθώς και συμβουλές για edge cases που μπορεί να συναντήσετε. + +## Τι Θα Χρειαστείτε + +- **Aspose.Cells for .NET** (το πακέτο NuGet `Aspose.Cells`). Είναι εμπορική βιβλιοθήκη αλλά προσφέρει δωρεάν λειτουργία αξιολόγησης—ιδανική για δοκιμές. +- .NET 6+ (ή .NET Framework 4.6+). +- Ένα απλό αρχείο Excel (`Pivot.xlsx`) που περιέχει τουλάχιστον έναν πίνακα pivot. +- Οποιοδήποτε IDE προτιμάτε—Visual Studio, Rider, ή ακόμη και VS Code λειτουργεί. + +Αυτό είναι όλο. Χωρίς επιπλέον DLLs, χωρίς COM interop, και χωρίς μπερδεμένα κόλπα αυτοματισμού Excel. + +Τώρα, ας βουτήξουμε στον κώδικα. + +## Βήμα 1: Φόρτωση του Workbook – Create Image from Excel + +Το πρώτο που κάνουμε είναι να ανοίξουμε το αρχείο Excel που περιέχει τον πίνακα pivot. Αυτό το βήμα είναι κρίσιμο επειδή ο renderer λειτουργεί πάνω σε ένα αντικείμενο `Workbook` στη μνήμη. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Γιατί είναι σημαντικό:* Η φόρτωση του workbook μας δίνει πρόσβαση στο **pivot** και σε οποιαδήποτε μορφοποίηση που θα διατηρηθεί όταν αργότερα **convert Excel to image**. Αν το παραλείψετε, ο renderer δεν θα έχει τίποτα για να δουλέψει. + +## Βήμα 2: Διαμόρφωση Επιλογών Εξαγωγής – Convert Excel to Image + +Στη συνέχεια, λέμε στο Aspose πώς θέλουμε να φαίνεται η τελική εικόνα. Η κλάση `ImageOrPrintOptions` μας επιτρέπει να επιλέξουμε PNG, να ορίσουμε DPI, και ακόμη να ελέγξουμε το χρώμα φόντου. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Γιατί είναι σημαντικό:* Ορίζοντας υψηλό DPI εξασφαλίζουμε ότι η **export Excel to PNG** φαίνεται καθαρή, ακόμα και όταν ο pivot περιέχει πολλές γραμμές. Μπορείτε να μειώσετε το DPI αν το μέγεθος του αρχείου είναι πρόβλημα. + +## Βήμα 3: Απόδοση του Worksheet – How to Export Pivot + +Τώρα έρχεται η καρδιά της διαδικασίας: η μετατροπή του worksheet (με το pivot) σε εικόνα. Η κλάση `WorksheetRender` κάνει το σκληρό έργο. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Γιατί είναι σημαντικό:* Εδώ είναι που **how to export pivot** σε οπτική μορφή. Ο renderer σέβεται όλη τη μορφοποίηση του pivot, τα slicers και τα conditional styles, έτσι το PNG φαίνεται ακριβώς όπως το βλέπετε στο Excel. + +## Βήμα 4: Συνδυασμός Όλων – How to Save Image + +Τέλος, εκθέτουμε μια μοναδική δημόσια μέθοδο που ενώνει όλα τα κομμάτια. Αυτή είναι η μέθοδος που θα καλέσετε από την εφαρμογή, την υπηρεσία ή το εργαλείο console σας. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Πλήρες Παράδειγμα Λειτουργίας + +Δημιουργήστε ένα νέο project console, προσθέστε το πακέτο NuGet `Aspose.Cells`, και στη συνέχεια τοποθετήστε το παρακάτω `Program.cs`: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Αναμενόμενο αποτέλεσμα:** Μετά την εκτέλεση του προγράμματος, το `PivotImage.png` θα εμφανιστεί στο φάκελο που καθορίσατε, εμφανίζοντας ένα pixel‑perfect στιγμιότυπο του πίνακα pivot. + +![Create image from Excel example](https://example.com/placeholder.png "Create image from Excel example") + +*Alt text:* παράδειγμα δημιουργίας εικόνας από excel που δείχνει τον εξαγόμενο πίνακα pivot ως PNG. + +## Συχνές Ερωτήσεις & Edge Cases + +### Τι γίνεται αν το workbook μου έχει πολλαπλά worksheets; + +Ο βοηθός αυτή τη στιγμή παίρνει το `Worksheets[0]`. Για να στοχεύσετε ένα συγκεκριμένο φύλλο, περάστε το όνομα του φύλλου: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### Το PNG είναι θολό—πώς το διορθώνω; + +Αυξήστε το `HorizontalResolution` και το `VerticalResolution` στο `GetImageOptions`. Τιμές 300–600 DPI συνήθως παράγουν καθαρά αποτελέσματα. Θυμηθείτε, υψηλότερο DPI σημαίνει μεγαλύτερο μέγεθος αρχείου. + +### Ο pivot μου εκτείνεται σε περισσότερες από μία σελίδες—μπορώ να εξάγω όλες τις σελίδες; + +Ναι. Κάντε βρόχο πάνω από το `renderer.PageCount` και καλέστε `ToImage(pageIndex, ...)` για κάθε σελίδα, ή ορίστε `OnePagePerSheet = false` για να λάβετε ξεχωριστές εικόνες ανά σελίδα. + +### Χρειάζομαι μόνο ένα τμήμα του φύλλου (π.χ., μια συγκεκριμένη περιοχή); + +Χρησιμοποιήστε το `ImageOrPrintOptions` για να ορίσετε το `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Με αυτόν τον τρόπο **convert Excel to image** μόνο για την περιοχή που σας ενδιαφέρει. + +### Λειτουργεί αυτό με αρχεία .xls (Excel 97‑2003); + +Απολύτως. Το Aspose.Cells αφαιρεί την εξάρτηση από τη μορφή αρχείου, έτσι μπορείτε να δώσετε `.xls`, `.xlsx`, `.xlsm`, ή ακόμη και `.ods` και να **export excel to png**. + +## Pro Tips & Gotchas + +- **License matters**: Στην κατάσταση αξιολόγησης το Aspose προσθέτει υδατογράφημα. Αναπτύξτε μια κατάλληλη άδεια για παραγωγή. +- **Memory usage**: Η απόδοση μεγάλων workbooks μπορεί να καταναλώνει πολύ μνήμη. Αποδεσμεύστε το αντικείμενο `Workbook` άμεσα ή τυλίξτε το σε block `using`. +- **Thread safety**: Το `Workbook` δεν είναι thread‑safe. Δημιουργήστε μια νέα παρουσία ανά αίτημα αν βρίσκεστε σε web service. +- **Image format flexibility**: Αν χρειάζεστε JPEG ή BMP, απλώς αλλάξτε το `ImageFormat` στο `GetImageOptions`. + +## Συμπέρασμα + +Τώρα έχετε μια ισχυρή, end‑to‑end συνταγή για **create image from Excel**, συγκεκριμένα για **export pivot** δεδομένα ως PNG υψηλής ποιότητας. Το παραπάνω snippet δείχνει τον πλήρη, εκτελέσιμο κώδικα, εξηγεί **how to save image**, και καλύπτει παραλλαγές όπως πολλαπλά φύλλα ή προσαρμοσμένες περιοχές εκτύπωσης. + +Επόμενα βήματα; Δοκιμάστε να συνδέσετε αυτόν τον εξαγωγέα με μια υπηρεσία email για να στέλνετε το PNG αυτόματα, ή πειραματιστείτε με το `ImageOrPrintOptions` για να δημιουργήσετε PDFs αντί για PNGs. Το ίδιο pattern λειτουργεί για εργασίες **convert excel to image** σε πολλές μορφές. + +Έχετε περισσότερες ερωτήσεις; Αφήστε ένα σχόλιο, και καλή προγραμματιστική! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..081599538f 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 @@ -46,6 +46,8 @@ Μάθετε πώς να μετατρέψετε CSV σε JSON σε .NET χρησιμοποιώντας το Aspose.Cells. Οδηγός βήμα προς βήμα για τον μετασχηματισμό δεδομένων με εύκολα παραδείγματα κώδικα. ### [Μετατροπή αρχείου Excel σε DOCX μέσω προγραμματισμού σε .NET](./converting-excel-file-to-docx/) Μάθετε πώς να μετατρέπετε αρχεία Excel σε DOCX μέσω προγραμματισμού χρησιμοποιώντας το Aspose.Cells για .NET σε αυτόν τον αναλυτικό οδηγό. Ιδανικό για τη δημιουργία αναφορών και την κοινή χρήση δεδομένων. +### [Αποθήκευση Excel ως Docx με C# – Πλήρης Οδηγός Βήμα‑βήμα](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Μάθετε πώς να αποθηκεύετε ένα βιβλίο εργασίας Excel σε μορφή Docx χρησιμοποιώντας C# και Aspose.Cells, με πλήρη βήμα‑βήμα οδηγίες. ### [Μετατροπή αρχείου Excel σε HTML με Tooltip σε .NET](./converting-excel-file-to-html-with-tooltip/) Μετατρέψτε το Excel σε HTML με tooltips χρησιμοποιώντας το Aspose.Cells για .NET σε λίγα απλά βήματα. Βελτιώστε τις εφαρμογές ιστού σας με διαδραστικά δεδομένα Excel χωρίς κόπο. ### [Μετατροπή αρχείου Excel σε Markdown μέσω προγραμματισμού σε .NET](./converting-excel-file-to-markdown/) diff --git a/cells/greek/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/greek/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..cda6299e25 --- /dev/null +++ b/cells/greek/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-21 +description: Αποθήκευση Excel ως Docx σε C# — μάθετε πώς να μετατρέψετε το Excel σε + Word, να ενσωματώσετε γραφήματα και να φορτώσετε βιβλίο εργασίας Excel σε C# χρησιμοποιώντας + το Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: el +og_description: Αποθήκευση Excel ως Docx σε C# εξηγείται στην πρώτη πρόταση. Ακολουθήστε + αυτό το σεμινάριο για να μετατρέψετε το Excel σε Word, να ενσωματώσετε γραφήματα + και να φορτώσετε το βιβλίο εργασίας Excel σε C#. +og_title: Αποθήκευση Excel ως Docx με C# – Πλήρης Οδηγός +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Αποθήκευση Excel ως Docx με C# – Πλήρης Οδηγός Βήμα‑βήμα +url: /el/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Save Excel as Docx με C# – Πλήρης Οδηγός Βήμα‑βήμα + +Ποτέ χρειάστηκε να **save Excel as Docx** αλλά δεν ήξερες από πού να ξεκινήσεις; Δεν είσαι μόνος—πολλοί προγραμματιστές αντιμετωπίζουν το ίδιο πρόβλημα όταν θέλουν να *convert Excel to Word* διατηρώντας τα γραφήματα ανέπαφα. Σε αυτό το tutorial θα περάσουμε από τον ακριβή κώδικα που χρειάζεσαι, θα εξηγήσουμε γιατί κάθε γραμμή είναι σημαντική, και θα σου δείξουμε πώς να ενσωματώσεις γραφήματα Excel χωρίς να χάσεις ποιότητα. + +Θα προσθέσουμε επίσης μερικές επιπλέον συμβουλές για σενάρια **load Excel workbook C#**, ώστε στο τέλος να νιώθεις άνετα να μετατρέπεις Excel σε Docx σε οποιοδήποτε έργο .NET. Χωρίς ασαφείς αναφορές, μόνο ένα συγκεκριμένο, εκτελέσιμο παράδειγμα που μπορείς να αντιγράψεις‑επικολλήσεις αμέσως. + +--- + +## Τι Καλύπτει Αυτός ο Οδηγός + +- Φόρτωση ενός υπάρχοντος αρχείου `.xlsx` με Aspose.Cells (ή οποιαδήποτε συμβατή βιβλιοθήκη). +- Προαιρετική επεξεργασία των φύλλων εργασίας ή των γραφημάτων πριν από τη μετατροπή. +- Αποθήκευση του βιβλίου εργασίας ως αρχείο `.docx` διατηρώντας τα ενσωματωμένα γραφήματα. +- Επαλήθευση του αποτελέσματος και αντιμετώπιση κοινών περιπτώσεων όπως μεγάλα βιβλία εργασίας ή μη υποστηριζόμενοι τύποι γραφημάτων. + +Αν αναρωτιέσαι **why you’d want to convert Excel to Docx**, σκέψου τις αναφορές που πρέπει να στείλεις σε μη‑τεχνικούς ενδιαφερόμενους—τα έγγραφα Word γίνονται ευρέως αποδεκτά και διατηρούν την οπτική πιστότητα των γραφημάτων σου. Ας βουτήξουμε. + +--- + +## Προαπαιτούμενα – Load Excel Workbook C# + +Πριν γράψουμε οποιονδήποτε κώδικα, βεβαιώσου ότι έχεις τα παρακάτω: + +| Απαίτηση | Λόγος | +|-------------|--------| +| **.NET 6.0 or later** | Σύγχρονο runtime, καλύτερη απόδοση και πλήρη υποστήριξη για Aspose.Cells. | +| **Aspose.Cells for .NET** (πακέτο NuGet `Aspose.Cells`) | Παρέχει την κλάση `Workbook` που χρησιμοποιείται για ανάγνωση Excel και εξαγωγή σε DOCX. | +| **Visual Studio 2022** (ή οποιοδήποτε IDE προτιμάς) | Χρήσιμο για αποσφαλμάτωση και IntelliSense. | +| **Ένα αρχείο Excel με γραφήματα** (`AdvancedCharts.xlsx`) | Για να δεις τη λειτουργία *embed excel charts* σε δράση. | + +Μπορείς να εγκαταστήσεις τη βιβλιοθήκη μέσω του Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** Αν βρίσκεσαι σε CI/CD pipeline, πρόσθεσε το πακέτο στο `*.csproj` ώστε οι επαναφορτώσεις να γίνονται αυτόματα. + +--- + +## Βήμα 1 – Φόρτωση του Excel Workbook (Αρχίζει η αποθήκευση Excel ως Docx) + +Το πρώτο πράγμα που κάνουμε είναι να φορτώσουμε το πηγαίο workbook. Εδώ έρχεται σε εφαρμογή η φράση **load excel workbook c#**. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Why this matters:** Η φόρτωση του αρχείου σου δίνει πρόσβαση σε κάθε φύλλο εργασίας, γράφημα και στυλ. Χωρίς αυτό το βήμα, δεν υπάρχει τίποτα για μετατροπή και το API δεν μπορεί να διατηρήσει τα ενσωματωμένα γραφικά σου. + +--- + +## Βήμα 2 – (Προαιρετικό) Προσαρμογή του Workbook Πριν από τη Μετατροπή + +Μπορεί να θέλεις να μετονομάσεις ένα φύλλο, να κρύψεις μια στήλη, ή ακόμη και να αλλάξεις τον τίτλο ενός γραφήματος. Αυτό το βήμα είναι προαιρετικό αλλά δείχνει πόσο ευέλικτη μπορεί να είναι η μετατροπή. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Edge case:** Κάποιοι παλαιότεροι τύποι γραφημάτων (π.χ., Radar) μπορεί να μην αποδίδονται τέλεια στο Word. Δοκίμασε τα συγκεκριμένα γραφήματα σου μετά τη μετατροπή. + +--- + +## Βήμα 3 – Αποθήκευση του Workbook ως Έγγραφο Word (Η Κεντρική Ενέργεια “Save Excel as Docx”) + +Τώρα έρχεται η στιγμή της αλήθειας: στην πραγματικότητα **save Excel as Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Όταν εκτελεστεί, το Aspose.Cells γράφει κάθε φύλλο εργασίας ως πίνακα μέσα στο αρχείο Word και ενσωματώνει κάθε γράφημα ως εικόνα υψηλής ανάλυσης. Το αποτέλεσμα είναι ένα πλήρως επεξεργάσιμο `.docx` που φαίνεται ακριβώς όπως η αρχική προβολή Excel. + +> **Why choose DOCX over PDF?** Το DOCX επιτρέπει στους παραλήπτες να επεξεργαστούν το κείμενο ή να αντικαταστήσουν γραφήματα αργότερα, ενώ το PDF είναι μια στατική εικόνα. + +--- + +## Βήμα 4 – Επαλήθευση του Αποτελέσματος και Επίλυση Συνηθισμένων Προβλημάτων + +Μετά το τέλος της μετατροπής, άνοιξε το `ChartsInWord.docx` στο Microsoft Word: + +1. **Check that each worksheet appears as a separate section** – θα πρέπει να δεις πίνακες που αντικατοπτρίζουν τα δεδομένα σου από το Excel. +2. **Confirm that charts are embedded** – θα πρέπει να είναι επιλέξιμες εικόνες, όχι σπασμένα placeholders. +3. **If a chart is missing**, βεβαιώσου ότι ο τύπος γραφήματος υποστηρίζεται από το Aspose.Cells (δες τη [official compatibility list](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tip:** Για μεγάλα βιβλία εργασίας, σκέψου να αυξήσεις το `MemorySetting` του Aspose.Cells ώστε να αποφύγεις `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Αντιγραφή‑Επικόλληση) + +Παρακάτω είναι το πλήρες πρόγραμμα, έτοιμο για μεταγλώττιση. Αντικατέστησε το `YOUR_DIRECTORY` με την πραγματική διαδρομή φακέλου στο μηχάνημά σου. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Expected result:** Ένα έγγραφο Word (`ChartsInWord.docx`) που περιέχει όλα τα φύλλα εργασίας ως πίνακες και κάθε γράφημα ως ενσωματωμένη, υψηλής ανάλυσης εικόνα. Άνοιξέ το στο Word και θα δεις την ακριβή οπτική διάταξη που είχες στο Excel. + +--- + +## Συχνές Ερωτήσεις (FAQ) + +**Q: Μπορώ να μετατρέψω πολλά αρχεία Excel σε βρόχο;** +A: Απόλυτα. Τυλίξτε τη λογική μετατροπής σε έναν βρόχο `foreach (var file in Directory.GetFiles(...))` και επαναχρησιμοποιήστε το ίδιο πρότυπο `Workbook`. + +**Q: Does this also work with `.xls` files?** +A: Ναι—το Aspose.Cells υποστηρίζει παλαιότερες μορφές. Απλώς άλλαξε την επέκταση του πηγαίου αρχείου· η ίδια κλήση `SaveFormat.Docx` ισχύει. + +**Q: What if I need to keep formulas when converting?** +A: Το Word δεν υποστηρίζει τις φόρμουλες του Excel εγγενώς. Η μετατροπή μετατρέπει τις φόρμουλες σε υπολογισμένες τιμές. Αν χρειάζεσαι ζωντανές υπολογισμούς, σκέψου να ενσωματώσεις το βιβλίο εργασίας ως αντικείμενο OLE. + +**Q: Is there a way to control the image resolution of charts?** +A: Χρησιμοποίησε `ImageOrPrintOptions` πριν την αποθήκευση: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Ενσωμάτωση Γραφημάτων Excel Απευθείας στο Word (Πέρα από το Save Excel as Docx) + +Αν προτιμάς το γράφημα να παραμένει επεξεργάσιμο στο Word, μπορείς να ενσωματώσεις ολόκληρο το φύλλο Excel ως αντικείμενο OLE: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Αυτή η τεχνική *embed excel charts* ως ζωντανά αντικείμενα, επιτρέποντας στους τελικούς χρήστες να κάνουν διπλό‑κλικ για να τα επεξεργαστούν στο Excel απευθείας από το Word. Είναι μια χρήσιμη εναλλακτική όταν χρειάζεσαι διαδραστικότητα. + +--- + +## Συμπέρασμα + +Τώρα διαθέτεις μια σταθερή, ολοκληρωμένη λύση για **save Excel as docx** χρησιμοποιώντας C#. Ο οδηγός κάλυψε τη φόρτωση του workbook, προαιρετικές προσαρμογές, την πραγματική λειτουργία αποθήκευσης, τα βήματα επαλήθευσης, και ακόμη μια γρήγορη ματιά στην ενσωμάτωση γραφημάτων για επεξεργάσιμα σενάρια. Ακολουθώντας τον παραπάνω κώδικα μπορείς να **convert Excel to Word**, να διατηρήσεις κάθε γράφημα και να διαχειριστείς μεγάλα αρχεία με άνεση. + +Έτοιμος για την επόμενη πρόκληση; Δοκίμασε να αυτοματοποιήσεις μια μαζική μετατροπή, ενσωμάτωσε αυτή τη λογική σε ένα ASP.NET Core API, ή εξερεύνησε **convert Excel to docx** για πίνακες ελέγχου πολλαπλών φύλλων. Οι δεξιότητες που μόλις απέκτησες αποτελούν τη βάση για οποιοδήποτε έργο αυτοματοποίησης εγγράφων. + +Έχεις ερωτήσεις ή ένα δύσκολο βιβλίο εργασίας που αρνείται να μετατραπεί; Άφησε ένα σχόλιο και θα το αντιμετωπίσουμε μαζί. Καλό κώδικα! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..926f7b8dc8 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-add-custom-property-in-c/) +Μάθετε πώς να αποθηκεύσετε αρχεία XLSB προσθέτοντας προσαρμοσμένη ιδιότητα χρησιμοποιώντας Aspose.Cells για .NET σε C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/greek/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..61ee216ef8 --- /dev/null +++ b/cells/greek/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,257 @@ +--- +category: general +date: 2026-03-21 +description: Μάθετε πώς να αποθηκεύετε αρχεία xlsb σε C# προσθέτοντας μια προσαρμοσμένη + ιδιότητα όπως το ProjectId. Αυτός ο οδηγός δείχνει πώς να δημιουργήσετε ένα βιβλίο + εργασίας Excel, να προσθέσετε προσαρμοσμένη ιδιότητα και να την επαληθεύσετε. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: el +og_description: Ανακαλύψτε πώς να αποθηκεύετε αρχεία xlsb και να προσθέτετε μια προσαρμοσμένη + ιδιότητα όπως το ProjectId χρησιμοποιώντας C#. Οδηγός βήμα‑βήμα με πλήρη κώδικα. +og_title: Πώς να αποθηκεύσετε XLSB – Προσθήκη προσαρμοσμένης ιδιότητας σε C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Πώς να αποθηκεύσετε XLSB – Προσθήκη προσαρμοσμένης ιδιότητας σε C# +url: /el/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να αποθηκεύσετε XLSB – Προσθήκη προσαρμοσμένης ιδιότητας σε C# + +Έχετε αναρωτηθεί ποτέ **πώς να αποθηκεύσετε xlsb** αρχεία ενώ ταυτόχρονα κρύβετε ένα κομμάτι μεταδεδομένων; Ίσως να δημιουργείτε μια μηχανή αναφορών που χρειάζεται ένα κρυφό ProjectId, ή απλώς θέλετε να επισημάνετε φύλλα εργασίας για downstream επεξεργασία. **πώς να αποθηκεύσετε xlsb** δεν είναι επιστήμη πυραύλων, αλλά ο συνδυασμός του με μια προσαρμοσμένη ιδιότητα προσθέτει μια μικρή στροφή που πολλοί προγραμματιστές παραβλέπουν. + +Σε αυτό το tutorial θα περάσουμε από τη δημιουργία ενός Excel workbook, την προσθήκη μιας προσαρμοσμένης ιδιότητας (ναι, *add custom property*), την αποθήκευση του αρχείου ως **XLSB** δυαδικό workbook, και τέλος τη φόρτωση του ξανά για να αποδείξουμε ότι η ιδιότητα παρέμεινε. Καθ' όλη τη διάρκεια θα αγγίξουμε επίσης τις τιμές **how to add custom property** όπως ένα ProjectId, ώστε να φύγετε με ένα επαναχρησιμοποιήσιμο μοτίβο για μελλοντικά έργα. + +> **Pro tip:** Αν ήδη χρησιμοποιείτε τη βιβλιοθήκη Aspose.Cells (ο κώδικας παρακάτω το κάνει), έχετε ενσωματωμένη υποστήριξη για προσαρμοσμένες ιδιότητες χωρίς κανένα πρόβλημα COM interop. + +## Προαπαιτούμενα + +- .NET 6+ (ή .NET Framework 4.6+). +- Aspose.Cells για .NET – εγκατάσταση μέσω NuGet: `Install-Package Aspose.Cells`. +- Βασικές γνώσεις C# – τίποτα περίπλοκο, μόνο μερικές δηλώσεις `using`. + +Αυτό είναι όλο. Χωρίς εγκατάσταση Office, χωρίς interop, μόνο καθαρός διαχειριζόμενος κώδικας. + +## Βήμα 1: Πώς να αποθηκεύσετε XLSB – Δημιουργία Excel Workbook + +Το πρώτο πράγμα που πρέπει να κάνετε είναι να δημιουργήσετε ένα νέο αντικείμενο workbook. Σκεφτείτε το ως το άνοιγμα ενός κεντρικού αρχείου Excel που υπάρχει μόνο στη μνήμη μέχρι να αποφασίσετε να το γράψετε στο δίσκο. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Γιατί να ξεκινήσετε με ένα workbook; Επειδή **create excel workbook** είναι η βάση για οποιαδήποτε περαιτέρω επεξεργασία — είτε αργότερα εισάγετε τύπους, διαγράμματα ή προσαρμοσμένες ιδιότητες. Η κλάση `Workbook` αφαιρεί το σύνολο του αρχείου, ενώ το `Worksheets` σας δίνει πρόσβαση σε μεμονωμένες καρτέλες. + +## Βήμα 2: Προσθήκη προσαρμοσμένης ιδιότητας σε Worksheet + +Τώρα έρχεται το διασκεδαστικό μέρος — **add custom property**. Στο Aspose.Cells μπορείτε να συνδέσετε μια ιδιότητα απευθείας σε ένα worksheet (ή στο ίδιο το workbook). Εδώ θα αποθηκεύσουμε ένα αριθμητικό ProjectId που οι downstream υπηρεσίες μπορούν να διαβάσουν χωρίς να αγγίξουν τα ορατά κελιά. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**; Απλώς καλέστε `CustomProperties.Add(name, value)`. Το API διαχειρίζεται αυτόματα το υποκείμενο XML, ώστε να μην χρειάζεται να ανησυχείτε για τις λεπτομέρειες χαμηλού επιπέδου. Αυτός είναι ο πιο ασφαλής τρόπος ενσωμάτωσης μεταδεδομένων που δεν είναι ορατά στον τελικό χρήστη. + +## Βήμα 3: Αποθήκευση του Workbook ως XLSB + +Με το workbook έτοιμο και την προσαρμοσμένη ιδιότητα προσαρτημένη, ήρθε η ώρα να **how to save xlsb**. Η μορφή XLSB αποθηκεύει τα δεδομένα σε δυαδική αναπαράσταση, η οποία συνήθως είναι μικρότερη και πιο γρήγορη στο άνοιγμα από το κλασικό XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Η αποθήκευση ως XLSB είναι τόσο απλή όσο η μεταβίβαση του `SaveFormat.Xlsb` στη μέθοδο `Save`. Αν αναρωτιέστε αν αυτό θα αφαιρέσει την προσαρμοσμένη ιδιότητα — να είστε βέβαιοι, το Aspose.Cells διατηρεί τόσο τις ιδιότητες σε επίπεδο workbook όσο και σε επίπεδο worksheet στο δυαδικό αρχείο. + +## Βήμα 4: Επαλήθευση της προσαρμοσμένης ιδιότητας + +Μία καλή συνήθεια είναι να ξαναφορτώσετε το αρχείο και να επιβεβαιώσετε ότι η ιδιότητα επέζησε του round‑trip. Αυτό επίσης δείχνει **how to add custom property** αργότερα αν χρειαστεί να το ενημερώσετε. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Αν η κονσόλα εκτυπώσει `12345`, έχετε επιτυχώς **how to save xlsb** *και* **add project id** σε μία ενέργεια. Η ιδιότητα ζει μέσα στα εσωτερικά μεταδεδομένα του αρχείου, αόρατη στο UI αλλά πλήρως αναγνώσιμη από τον κώδικα. + +## Πρόσθετες Συμβουλές: Προσθήκη Πολλαπλών Ιδιοτήτων & Ακραίες Περιπτώσεις + +### Προσθήκη Πάνω από Μία Ιδιότητα + +Μπορείτε να στοίβαξετε όσες ιδιότητες θέλετε: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Ενημέρωση Υπάρχουσας Ιδιότητας + +Αν μια ιδιότητα υπάρχει ήδη, απλώς εκχωρήστε μια νέα τιμή: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Διαχείριση Ελλιπών Ιδιοτήτων + +Η προσπάθεια ανάγνωσης μιας μη‑υπάρχουσας ιδιότητας προκαλεί `KeyNotFoundException`. Προστατέψτε τον κώδικά σας: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Συμβατότητα Διαφορετικών Εκδόσεων + +Το XLSB λειτουργεί σε Excel 2007 + και στη web έκδοση του Excel. Ωστόσο, παλαιότερες εκδόσεις Office (< 2007) δεν μπορούν να ανοίξουν αρχεία XLSB. Αν χρειάζεστε μεγαλύτερη συμβατότητα, σκεφτείτε να αποθηκεύσετε ένα δεύτερο αντίγραφο ως XLSX. + +### Σκέψεις Απόδοσης + +Τα δυαδικά αρχεία XLSB είναι συνήθως 30‑50 % μικρότερα από τα XLSX και φορτώνουν πιο γρήγορα. Για μεγάλα σύνολα δεδομένων (εκατοντάδες χιλιάδες γραμμές), η αύξηση ταχύτητας μπορεί να είναι αισθητή. + +## Πλήρες Παράδειγμα Εργασίας + +Παρακάτω βρίσκεται ολόκληρο το πρόγραμμα που μπορείτε να αντιγράψετε‑επικολλήσετε σε ένα console project. Περιλαμβάνει όλα τα βήματα, τον χειρισμό σφαλμάτων και τα σχόλια που χρειάζεστε για να ξεκινήσετε αμέσως. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Αναμενόμενη έξοδος** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Αν δείτε τα παραπάνω, έχετε κατακτήσει **how to save xlsb**, **add custom property**, και **add project id** — όλα σε ένα καθαρό, επαναχρησιμοποιήσιμο snippet. + +## Συχνές Ερωτήσεις + +**Q: Λειτουργεί αυτό με .NET Core;** +A: Απόλυτα. Το Aspose.Cells είναι συμβατό με .NET Standard, έτσι ο ίδιος κώδικας εκτελείται σε .NET 5/6/7 και σε .NET Framework. + +**Q: Μπορώ να προσθέσω μια προσαρμοσμένη ιδιότητα σε ολόκληρο το workbook αντί για ένα μόνο φύλλο;** +A: Ναι. Χρησιμοποιήστε `workbook.CustomProperties.Add("Key", value);` για να το συνδέσετε σε επίπεδο workbook. + +**Q: Τι γίνεται αν χρειαστεί να αποθηκεύσω ένα μεγάλο string (π.χ., JSON) ως ιδιότητα;** +A: Το API δέχεται strings οποιουδήποτε μήκους, αλλά να θυμάστε ότι πολύ μεγάλα blobs μπορεί να αυξήσουν το μέγεθος του αρχείου. Για τεράστιες ποσότητες δεδομένων, σκεφτείτε ένα κρυφό φύλλο αντί αυτού. + +**Q: Είναι η προσαρμοσμένη ιδιότητα ορατή στο UI του Excel;** +A: Όχι άμεσα. Οι χρήστες μπορούν να τη δουν μέσω **File → Info → Properties → Advanced Properties → Custom**, αλλά δεν θα εμφανίζεται στο πλέγμα. + +## Συμπέρασμα + +Καλύψαμε **how to save xlsb** αρχεία σε C# ενώ **προσθέτουμε μια προσαρμοσμένη ιδιότητα** όπως ένα ProjectId. Ακολουθώντας το βήμα‑βήμα μοτίβο — **create excel workbook**, **add custom property**, **save as XLSB**, και **verify** — έχετε τώρα μια σταθερή, αξιόπιστη αναφορά που λειτουργεί τόσο για crawlers μηχανών αναζήτησης όσο και για βοηθούς AI. + +Στη συνέχεια, μπορείτε να εξερευνήσετε: + +- **How to add custom property** σε πολλαπλά worksheets σε βρόχο. +- Εξαγωγή δεδομένων από DataTable στο workbook πριν την αποθήκευση. +- Κρυπτογράφηση του αρχείου XLSB για επιπλέον ασφάλεια. + +Νιώστε ελεύθεροι να πειραματιστείτε, να τροποποιήσετε τα ονόματα των ιδιοτήτων, ή να αλλάξετε τη δυαδική μορφή σε XLSX αν χρειάζεστε μεγαλύτερη συμβατότητα. Έχετε ένα δύσκολο σενάριο; Αφήστε ένα σχόλιο και θα το αντιμετωπίσουμε μαζί. Καλή προγραμματιστική! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/greek/net/excel-autofilter-validation/_index.md index a40f83fbff..6d99c0fd57 100644 --- a/cells/greek/net/excel-autofilter-validation/_index.md +++ b/cells/greek/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Μάθετε πώς να φιλτράρετε αυτόματα γραμμές του Excel χρησιμοποιώντας το Aspose.Cells σε .NET χωρίς κόπο με αυτόν τον ολοκληρωμένο οδηγό βήμα προς βήμα. ### [Επικύρωση Δεκαδικών Δεδομένων στο Excel](./decimal-data-validation-in-excel/) Ανακαλύψτε πώς να εφαρμόσετε την επικύρωση δεκαδικών δεδομένων στο Excel χρησιμοποιώντας το Aspose.Cells για .NET με τον εύχρηστο οδηγό μας. Βελτιώστε την ακεραιότητα των δεδομένων χωρίς κόπο. +### [Αφαίρεση Αυτόματου Φίλτρου από το Excel – Πλήρης Οδηγός C#](./remove-autofilter-from-excel-complete-c-guide/) +Μάθετε πώς να αφαιρέσετε το αυτόματο φίλτρο από αρχεία Excel χρησιμοποιώντας το Aspose.Cells σε .NET με C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/greek/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..a2ba9905cc --- /dev/null +++ b/cells/greek/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: Μάθετε πώς να αφαιρέσετε το AutoFilter από το Excel χρησιμοποιώντας C#. + Αυτός ο οδηγός βήμα‑βήμα δείχνει επίσης πώς να διαγράψετε το AutoFilter, να απενεργοποιήσετε + το AutoFilter στο Excel και να καθαρίσετε το φίλτρο πίνακα του Excel. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: el +og_description: Αφαιρέστε το AutoFilter από το Excel με C#. Αυτό το σεμινάριο δείχνει + πώς να διαγράψετε το AutoFilter, να απενεργοποιήσετε το AutoFilter στο Excel και + να καθαρίσετε το φίλτρο πίνακα του Excel με λίγες μόνο γραμμές κώδικα. +og_title: Αφαίρεση του AutoFilter από το Excel – Πλήρης Οδηγός C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Αφαίρεση του AutoFilter από το Excel – Πλήρης Οδηγός C# +url: /el/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Κατάργηση του AutoFilter από το Excel – Πλήρης Οδηγός C# + +Έχετε ποτέ χρειαστεί να **remove AutoFilter from Excel** αλλά δεν ήσασταν σίγουροι ποια κλήση API το απενεργοποιεί πραγματικά; Δεν είστε μόνοι. Σε πολλές αλυσίδες αναφορών η διεπαφή φίλτρου εμποδίζει την επεξεργασία των επόμενων βημάτων, οπότε η αφαίρεσή της είναι συχνή απαίτηση. Σε αυτό το tutorial θα περάσουμε από μια σύντομη, έτοιμη για παραγωγή λύση που όχι μόνο δείχνει **how to delete AutoFilter**, αλλά εξηγεί επίσης **turn off AutoFilter Excel** φίλτρα στυλ, και πώς να **clear Excel table filter** εντελώς. + +> **Τι θα αποκτήσετε:** ένα έτοιμο‑για‑εκτέλεση πρόγραμμα C# που φορτώνει ένα υπάρχον βιβλίο εργασίας, αφαιρεί το φίλτρο από τον πρώτο πίνακα και αποθηκεύει ένα νέο αντίγραφο χωρίς κανένα εναπομείναν στοιχείο UI. + +## Προαπαιτούμενα + +- .NET 6+ (ή .NET Framework 4.7.2+) +- Το πακέτο NuGet **Aspose.Cells** (το API που χρησιμοποιούμε στον κώδικα) +- Ένα δείγμα βιβλίου εργασίας (`TableWithFilter.xlsx`) που ήδη περιέχει έναν πίνακα με εφαρμοσμένο AutoFilter +- Βασική κατανόηση της σύνταξης C# (χωρίς ανάγκη για βαθιά εσωτερικά του Excel) + +Αν τα έχετε αυτά, ας ξεκινήσουμε. + +--- + +## Βήμα 1 – Εγκατάσταση Aspose.Cells και Ρύθμιση του Έργου + +Πριν τρέξει οποιοσδήποτε κώδικας, χρειάζεστε τη βιβλιοθήκη που μας παρέχει τις κλάσεις `Workbook`, `Worksheet` και `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Συμβουλή:** Χρησιμοποιήστε τη δωρεάν έκδοση αξιολόγησης για δοκιμές· απλώς θυμηθείτε να ορίσετε το κλειδί άδειας πριν το εκδώσετε στην παραγωγή. + +### Γιατί είναι σημαντικό +Το Aspose.Cells αφαιρεί την ανάγκη χειρισμού του χαμηλού επιπέδου OOXML, ώστε να μπορούμε να χειριζόμαστε πίνακες, φίλτρα και στυλ χωρίς να αναλύουμε XML μόνοι μας. Γι' αυτό οι εργασίες **remove autofilter from excel** γίνονται μια γραμμή κώδικα αντί για μια σειρά από χειροκίνητες επεμβάσεις XML. + +--- + +## Βήμα 2 – Φόρτωση του Βιβλίου Εργασίας που Περιέχει τον Πίνακα + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +Το αντικείμενο `Workbook` αντιπροσωπεύει ολόκληρο το αρχείο Excel. Η φόρτωσή του πρώτα εξασφαλίζει ότι έχουμε ένα καθαρό αντίγραφο στη μνήμη για επεξεργασία, κάτι που είναι κρίσιμο όταν αργότερα **clear excel table filter** χωρίς να επηρεάσετε άλλα φύλλα. + +--- + +## Βήμα 3 – Λήψη του Φύλλου Εργασίας και του Στόχου Πίνακα + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +Ένα **ListObject** είναι ο όρος του Aspose για έναν πίνακα Excel. Ακόμη και αν το φύλλο σας έχει πολλούς πίνακες, μπορείτε να κάνετε βρόχο μέσω του `worksheet.ListObjects` και να εφαρμόσετε την ίδια λογική σε καθένα. Αυτή η ευελιξία απαντά στην ερώτηση “τι γίνεται αν έχω πολλούς πίνακες;” που πολλοί προγραμματιστές θέτουν. + +--- + +## Βήμα 4 – Κατάργηση του AutoFilter από τον Πίνακα + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Ορίζοντας το `AutoFilter` σε `null` **αφαιρεί πλήρως το αντικείμενο φίλτρου**, που είναι ο πιο αξιόπιστος τρόπος για **how to delete autofilter**. Η εναλλακτική ιδιότητα `ShowAutoFilter` απλώς κρύβει τη διεπαφή UI αλλά αφήνει τη μηχανή φίλτρου ενεργή—χρήσιμη αν θέλετε μόνο να **turn off autofilter excel** οπτικά ενώ διατηρείτε τα υποκείμενα κριτήρια. + +> **Ακραία περίπτωση:** Αν ο πίνακας δεν έχει εφαρμοσμένο AutoFilter, το `table.AutoFilter` θα είναι ήδη `null`. Η παραπάνω γραμμή είναι ασφαλής· δεν κάνει τίποτα. + +--- + +## Βήμα 5 – Αποθήκευση του Τροποποιημένου Βιβλίου Εργασίας + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Η αποθήκευση σε νέο αρχείο διατηρεί το αρχικό ανέπαφο—μια βέλτιστη πρακτική όταν αυτοματοποιείτε μετασχηματισμούς Excel. Μετά την εκτέλεση του προγράμματος, ανοίξτε το `NoAutoFilter.xlsx`; θα δείτε τον πίνακα χωρίς κανένα αναπτυσσόμενο φίλτρο, επιβεβαιώνοντας ότι η λειτουργία **remove excel table filter** ολοκληρώθηκε επιτυχώς. + +--- + +## Επαλήθευση του Αποτελέσματος – Τι να Περιμένετε + +1. **Ανοίξτε το `NoAutoFilter.xlsx`** στο Excel. +2. **Επιλέξτε τον πίνακα** – τα μικρά εικονίδια χωνιού δίπλα στις κεφαλίδες των στηλών πρέπει να έχουν εξαφανιστεί. +3. **Ελέγξτε τα άλλα φύλλα** – παραμένουν αμετάβλητα, αποδεικνύοντας ότι αφαιρέσαμε μόνο το **clear excel table filter** στο επιθυμητό φύλλο. + +Αν τα εικονίδια παραμένουν, ελέγξτε ξανά ότι στοχεύσατε το σωστό δείκτη `ListObject`. Θυμηθείτε, οι πίνακες Excel είναι μηδενικής βάσης στο Aspose, έτσι το `ListObjects[0]` είναι ο πρώτος πίνακας στο φύλλο. + +--- + +## Διαχείριση Πολλαπλών Πινάκων ή Φύλλων Εργασίας + +Μερικές φορές χρειάζεται να **remove autofilter from excel** βιβλία εργασίας που περιέχουν πολλούς πίνακες σε διαφορετικά φύλλα. Εδώ είναι μια γρήγορη επέκταση: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Αυτός ο βρόχος εγγυάται ότι **turn off autofilter excel** παντού, εξαλείφοντας τυχόν κρυφά φίλτρα που θα μπορούσαν να εμποδίσουν τις εισαγωγές δεδομένων. + +--- + +## Συνηθισμένα Πιθανά Σφάλματα & Πώς να τα Αποφύγετε + +| Πρόβλημα | Γιατί συμβαίνει | Διόρθωση | +|----------|----------------|----------| +| **Το φίλτρο παραμένει μετά την αποθήκευση** | Η χρήση του `ShowAutoFilter = false` κρύβει μόνο το UI. | Χρησιμοποιήστε `table.AutoFilter = null` για πραγματική διαγραφή. | +| **Λάθος δείκτης πίνακα** | Υποθέτετε ότι ο πρώτος πίνακας είναι αυτός που χρειάζεστε. | Εξετάστε το `worksheet.ListObjects.Count` και χρησιμοποιήστε περιγραφικά ονόματα (`tbl.Name`). | +| **Λείπει άδεια** | Η έκδοση αξιολόγησης μπορεί να προσθέσει υδατογραφήματα. | Καταχωρίστε την άδειά σας νωρίς: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Αρχείο κλειδωμένο** | Το Excel έχει ακόμα ανοικτό το αρχικό αρχείο. | Βεβαιωθείτε ότι το βιβλίο εργασίας είναι κλειστό στο Excel πριν τρέξετε το script. | + +--- + +## Bonus: Προσθήκη AutoFilter Πίσω (Αν Αλλάξετε Άποψη) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Έχοντας τη αντίστροφη λειτουργία διαθέσιμη, το tutorial γίνεται ολοκληρωμένο για σενάρια **remove autofilter from excel** και **how to delete autofilter**. + +--- + +## Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Αντιγραφή‑Επικόλληση) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Η εκτέλεση του παραπάνω κώδικα θα **remove autofilter from excel** για κάθε πίνακα στο βιβλίο εργασίας, παρέχοντάς σας ένα καθαρό ξεκίνημα για περαιτέρω επεξεργασία. + +--- + +## Συμπέρασμα + +Μόλις καλύψαμε όλα όσα χρειάζεστε για να **remove autofilter from excel** χρησιμοποιώντας C#. Από την εγκατάσταση του Aspose.Cells, τη φόρτωση του βιβλίου εργασίας, την εύρεση του πίνακα, τη διαγραφή του φίλτρου, μέχρι την αποθήκευση του καθαρού αρχείου—κάθε βήμα εξηγήθηκε με το «γιατί» πίσω από αυτό. Τώρα ξέρετε πώς να **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel**, και **clear excel table filter** σε ένα ενιαίο, επαναχρησιμοποιήσιμο απόσπασμα. + +Έτοιμοι για την επόμενη πρόκληση; Δοκιμάστε να αυτοματοποιήσετε την προσθήκη μορφοποίησης υπό συνθήκες, ή εξερευνήστε πώς να **add an AutoFilter back** προγραμματιστικά. Και τα δύο θέματα βασίζονται άμεσα στις έννοιες που μόλις καλύψαμε και θα κάνουν το εργαλειοθήκη αυτοματοποίησης Excel ακόμη πιο πλούσια. + +Έχετε ερωτήσεις ή εντοπίσατε σενάριο που δεν καλύψαμε; Αφήστε ένα σχόλιο παρακάτω—καλή προγραμματιστική! + +--- + +![Στιγμιότυπο οθόνης που δείχνει ένα φύλλο Excel χωρίς αναπτυσσόμενα φίλτρα – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/greek/net/excel-comment-annotation/_index.md index 9a7275262e..5b2f0724c4 100644 --- a/cells/greek/net/excel-comment-annotation/_index.md +++ b/cells/greek/net/excel-comment-annotation/_index.md @@ -17,7 +17,7 @@ ## Εισαγωγή -Θέλατε ποτέ να κάνετε τα υπολογιστικά φύλλα του Excel σας λίγο πιο εκφραστικά; Ίσως θα θέλατε να μπορούσατε να προσθέσετε σχόλια που ξεχωρίζουν ή να συμπεριλάβετε εικόνες για το περιεχόμενο. Λοιπόν, επιτρέψτε μου να σας παρουσιάσω το Aspose.Cells για .NET! Αυτή η ισχυρή βιβλιοθήκη μπορεί να μετατρέψει τα απλά αρχεία Excel σας σε συναρπαστικά, σχολιασμένα αριστουργήματα. Ακολουθεί μια γρήγορη επισκόπηση του πώς μπορείτε να βελτιώσετε την εμπειρία σας στο Excel με μερικά έξυπνα tutorials. +Θέλατε ποτέ να κάνετε τα υπολογιστικά φύλλα του Excel σας λίγο πιο εκφραστικά; Ίσως θα θέλατε να μπορείτε να προσθέσετε σχόλια που ξεχωρίζουν ή να συμπεριλάβετε εικόνες για το περιεχόμενο. Λοιπόν, επιτρέψτε μου να σας παρουσιάσω το Aspose.Cells για .NET! Αυτή η ισχυρή βιβλιοθήκη μπορεί να μετατρέψει τα απλά αρχεία Excel σας σε συναρπαστικά, σχολιασμένα αριστουργήματα. Ακολουθεί μια γρήγορη επισκόπηση του πώς μπορείτε να βελτιώσετε την εμπειρία σας στο Excel με μερικά έξυπνα tutorials. ## Προσθήκη σχολίου με εικόνα στο Excel @@ -38,6 +38,8 @@ Μάθετε πώς να προσθέτετε σχόλια σε κελιά στο Excel χρησιμοποιώντας το Aspose.Cells για .NET. Οδηγός βήμα προς βήμα για αρχάριους για τη βελτίωση της λειτουργικότητας του Excel. ### [Μορφοποίηση σχολίων - Γραμματοσειρά, Χρώμα, Στοίχιση](./format-comments-font-color-alignment/) Ανακαλύψτε πώς να μορφοποιείτε σχόλια στο Excel χωρίς κόπο χρησιμοποιώντας το Aspose.Cells για .NET. Προσαρμόστε τη γραμματοσειρά, το μέγεθος και τη στοίχιση για να βελτιώσετε τα υπολογιστικά σας φύλλα. +### [Δημιουργία βιβλίου εργασίας Excel C# – Προσθήκη και Συμπλήρωση σχολίων με Έξυπνα Σήματα](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Μάθετε πώς να δημιουργήσετε ένα βιβλίο εργασίας Excel σε C# και να προσθέσετε ή να γεμίσετε σχόλια με έξυπνα σήματα. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/greek/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..7fc1ddfec0 --- /dev/null +++ b/cells/greek/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-21 +description: Δημιουργήστε βιβλίο εργασίας Excel με C# και μάθετε πώς να προσθέσετε + σχόλιο στο Excel, να το συμπληρώσετε αυτόματα χρησιμοποιώντας Smart Markers. Οδηγός + βήμα‑βήμα για προγραμματιστές. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: el +og_description: Δημιουργήστε βιβλίο εργασίας Excel με C# και προσθέστε γρήγορα σχόλιο + στο Excel, στη συνέχεια γεμίστε το σχόλιο χρησιμοποιώντας Smart Markers. Πλήρης + οδηγός με κώδικα. +og_title: Δημιουργία βιβλίου εργασίας Excel C# – Προσθήκη και Συμπλήρωση σχολίων +tags: +- C# +- Excel automation +- Aspose.Cells +title: Δημιουργία βιβλίου εργασίας Excel C# – Προσθήκη και συμπλήρωση σχολίων με έξυπνους + δείκτες +url: /el/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία βιβλίου εργασίας Excel C# – Προσθήκη και Συμπλήρωση Σχολίων με Smart Markers + +Έχετε ποτέ χρειαστεί να **δημιουργήσετε βιβλίο εργασίας Excel C#** και αναρωτηθήκατε πώς να ενσωματώσετε ένα σχόλιο που ενημερώνεται αυτόματα; Δεν είστε ο μόνος. Σε πολλές περιπτώσεις αναφορών θέλετε ένα σχόλιο κελιού που να λέει *«Δημιουργήθηκε από την Alice στις 2024‑07‑15»* χωρίς να κωδικοποιείτε σκληρά το όνομα ή την ημερομηνία κάθε φορά. + +Σε αυτό το tutorial θα σας δείξουμε ακριβώς **πώς να προσθέσετε σχόλιο σε Excel**, μετά **πώς να συμπληρώσετε το σχόλιο** χρησιμοποιώντας τα Smart Markers του Aspose.Cells. Στο τέλος θα έχετε ένα έτοιμο πρόγραμμα που δημιουργεί ένα βιβλίο εργασίας, ενσωματώνει ένα δυναμικό σχόλιο και αποθηκεύει το αρχείο—όλα σε λίγα καθαρά βήματα. + +> **Τι θα πάρετε:** ένα πλήρες, μεταγλωττιζόμενο C# console app, εξήγηση κάθε γραμμής, συμβουλές για κοινά προβλήματα και ιδέες για επέκταση της λύσης. + +## Προαπαιτούμενα + +- .NET 6.0 SDK ή νεότερο (ο κώδικας λειτουργεί επίσης με .NET Core και .NET Framework) +- Visual Studio 2022 ή οποιοδήποτε IDE προτιμάτε +- **Aspose.Cells for .NET** πακέτο NuGet (`Install-Package Aspose.Cells`) – αυτή η βιβλιοθήκη τροφοδοτεί τις κλάσεις `Workbook`, `Worksheet` και `SmartMarkerProcessor` που χρησιμοποιούνται παρακάτω. +- Βασική εξοικείωση με τη σύνταξη C# – αν έχετε γράψει ένα `Console.WriteLine`, είστε έτοιμοι. + +Τώρα που τα θεμέλια είναι έτοιμα, ας βουτήξουμε. + +![Στιγμιότυπο παραδείγματος δημιουργίας βιβλίου εργασίας Excel C#](excel-workbook.png "Δημιουργία βιβλίου εργασίας Excel C# παράδειγμα") + +## Βήμα 1: Αρχικοποίηση νέου βιβλίου εργασίας – Βασικά δημιουργίας βιβλίου εργασίας Excel C# + +Πρώτα χρειάζεται ένα καθαρό αντικείμενο workbook. Σκεφτείτε το `Workbook` ως το κενό καμβά· χωρίς αυτό δεν μπορείτε να τοποθετήσετε κελιά, γραμμές ή σχόλια. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Γιατί είναι σημαντικό:** Το `Workbook` δημιουργεί αυτόματα ένα προεπιλεγμένο φύλλο εργασίας, έτσι δεν χρειάζεται να καλέσετε `Add` εκτός αν χρειάζεστε επιπλέον καρτέλες. Η πρόσβαση στο `Worksheets[0]` είναι ο γρηγορότερος τρόπος να αρχίσετε να γεμίζετε δεδομένα. + +## Βήμα 2: Εισαγωγή σχολίου Smart Marker – Πώς να προσθέσετε σχόλιο με tokens + +Στη συνέχεια τοποθετούμε ένα σχόλιο στο κελί **B2** που περιέχει tokens Smart Marker (`«UserName»` και `«CreatedDate»`). Αυτά τα tokens θα αντικατασταθούν αργότερα με τις πραγματικές τιμές. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Εξήγηση:** +- `CreateComment()` δημιουργεί το αντικείμενο σχολίου αν δεν υπάρχει· διαφορετικά επιστρέφει το υπάρχον. +- Η ιδιότητα `Note` περιέχει το ορατό κείμενο. Τυλίγοντας τα placeholders σε `« »` λέμε στο Aspose.Cells ότι είναι **Smart Markers** – placeholders που μπορούν να αντικατασταθούν με μία ενέργεια. + +> **Pro tip:** Αν χρειάζεστε σχόλιο πολλών γραμμών, χρησιμοποιήστε `\n` μέσα στη συμβολοσειρά, π.χ., `"Line1\nLine2"`. + +## Βήμα 3: Προετοιμασία του αντικειμένου δεδομένων – Πώς να γεμίσετε το σχόλιο δυναμικά + +Τα Smart Markers χρειάζονται πηγή δεδομένων. Στο C# ο πιο εύκολος τρόπος είναι ένας ανώνυμος τύπος που ταιριάζει στα ονόματα των placeholders. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Γιατί ανώνυμος τύπος;** +Είναι ελαφρύς, δεν απαιτεί επιπλέον αρχείο κλάσης και ταιριάζει ακριβώς στα ονόματα ιδιοτήτων (`UserName`, `CreatedDate`) με τα ονόματα των tokens. Αν προτιμάτε ένα ισχυρά τυποποιημένο μοντέλο, απλώς δημιουργήστε μια κλάση με τις ίδιες ιδιότητες. + +## Βήμα 4: Επεξεργασία Smart Markers – Πώς να γεμίσετε το σχόλιο χρησιμοποιώντας το αντικείμενο δεδομένων + +Τώρα συμβαίνει η μαγεία. Ο `SmartMarkerProcessor` σαρώει το βιβλίο εργασίας για οποιαδήποτε tokens `«…»` και τα αντικαθιστά με τιμές από το `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Τι συμβαίνει στο παρασκήνιο;** +Ο `SmartMarkerProcessor` περνάει από κάθε κελί, σχόλιο, κεφαλίδα κ.λπ., ψάχνοντας το μοτίβο `«Token»`. Όταν το βρίσκει, χρησιμοποιεί reflection για να διαβάσει την αντίστοιχη ιδιότητα από το `markerData` και γράφει την τιμή πίσω. Δεν απαιτούνται χειροκίνητοι βρόχοι. + +## Βήμα 5: Αποθήκευση του βιβλίου εργασίας – Συμπλήρωση σχολίου Excel και αποθήκευση του αρχείου + +Τέλος, γράφουμε το βιβλίο εργασίας στο δίσκο. Το σχόλιο τώρα εμφανίζει κάτι όπως *«Created by Alice on 03/21/2026 10:15 AM»*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Επαλήθευση αποτελέσματος:** Ανοίξτε το `CommentFilled.xlsx` στο Excel, περάστε το ποντίκι πάνω από το κελί **B2** και θα δείτε το σχόλιο με το πραγματικό όνομα χρήστη και την χρονική σήμανση. Δεν χρειάζονται περαιτέρω αλλαγές κώδικα για μελλοντικές εκτελέσεις—απλώς αλλάξτε τις τιμές του `markerData`. + +--- + +## Κοινές Παραλλαγές & Ακραίες Περιπτώσεις + +### Χρήση προσαρμοσμένης μορφής ημερομηνίας + +Αν θέλετε την ημερομηνία σε μορφή `yyyy‑MM‑dd`, προσαρμόστε το αντικείμενο δεδομένων: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Προσθήκη πολλαπλών σχολίων + +Μπορείτε να επαναλάβετε **Βήμα 2** για άλλα κελιά. Κάθε σχόλιο μπορεί να έχει το δικό του σύνολο tokens ή να μοιράζεται τα ίδια αν οι πληροφορίες είναι καθολικές. + +### Εργασία με υπάρχοντα βιβλία εργασίας + +Αντί για `new Workbook()`, φορτώστε ένα υπάρχον αρχείο: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Το υπόλοιπο των βημάτων παραμένει αμετάβλητο—τα Smart Markers λειτουργούν τόσο σε νέα όσο και σε προ‑υπάρχοντα αρχεία. + +### Διαχείριση Null Τιμών + +Αν ένα token μπορεί να λείπει, τυλίξτε την ιδιότητα σε nullable τύπο ή παρέχετε εναλλακτική τιμή: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +Ο επεξεργαστής θα εισάγει *«Unknown»* όταν η πηγή είναι `null`. + +--- + +## Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Αντιγραφή‑Επικόλληση) + +Παρακάτω βρίσκεται το **ολόκληρο πρόγραμμα** που μπορείτε να ενσωματώσετε σε ένα console app project και να τρέξετε αμέσως (απλώς αντικαταστήστε το `YOUR_DIRECTORY` με πραγματικό μονοπάτι φακέλου). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Τρέξτε το πρόγραμμα, ανοίξτε το παραγόμενο αρχείο και θα δείτε το δυναμικό σχόλιο στο κελί **B2**. Εύκολο, έτσι δεν είναι; + +--- + +## Συχνές Ερωτήσεις (FAQ) + +**Q: Λειτουργεί αυτό με .NET Framework 4.7;** +A: Απόλυτα. Το Aspose.Cells υποστηρίζει .NET Framework 4.0+ και .NET Core/5/6/7. Απλώς αναφέρετε το κατάλληλο DLL ή το πακέτο NuGet. + +**Q: Μπορώ να χρησιμοποιήσω αυτήν την προσέγγιση για επικύρωση δεδομένων ή conditional formatting;** +A: Τα Smart Markers προορίζονται κυρίως για εισαγωγή τιμών σε κελιά, σχόλια, κεφαλίδες και υποσέλιδα. Για conditional formatting θα πρέπει να χρησιμοποιήσετε τα κανονικά API `Style`. + +**Q: Τι γίνεται αν χρειαστεί να προσθέσω σχόλιο σε **διαφορετικό** φύλλο εργασίας;** +A: Ανακτήστε το στοχευόμενο φύλλο (`workbook.Worksheets["MySheet"]`) και επαναλάβετε **Βήμα 2** στα κελιά εκείνου του φύλλου. + +--- + +## Επόμενα Βήματα & Σχετικά Θέματα + +- **How to add comment to Excel** προγραμματιστικά για πολλαπλά κελιά (βρόχος μέσω περιοχής). +- **Fill Excel comment** με δεδομένα από βάση (χρησιμοποιήστε `DataTable` ως πηγή δεδομένων για Smart Markers). +- Εξερευνήστε **Smart Marker arrays** για αυτόματη δημιουργία πινάκων. +- Μάθετε για **Aspose.Cells styling** ώστε να μορφοποιήσετε τη γραμματοσειρά, το χρώμα και το μέγεθος του σχολίου. + +Πειραματιστείτε με τα αποσπάσματα, αλλάξτε την πηγή δεδομένων και θα κυριαρχήσετε γρήγορα στο **how to fill comment** σε οποιοδήποτε σενάριο αυτοματοποίησης Excel. + +--- + +### Συμπέρασμα + +Μόλις περάσαμε όλη τη διαδικασία του **create excel workbook c#**, **add comment to excel**, και **fill excel comment** χρησιμοποιώντας Smart Markers. Η λύση είναι συμπαγής, επαναχρησιμοποιήσιμη και έτοιμη για παραγωγή. + +Δοκιμάστε την, προσαρμόστε τα placeholders και αφήστε τη βιβλιοθήκη να κάνει το δύσκολο μέρος. Αν αντιμετωπίσετε προβλήματα, αφήστε ένα σχόλιο παρακάτω—καλή κωδικοποίηση! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..d9f3fceea3 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,8 @@ Μάθετε πώς να ελέγχετε τις τιμές κελιών του Excel σε σχέση με τις προσαρμοσμένες μορφές αριθμών χρησιμοποιώντας το Aspose.Cells για .NET με αυτό το βήμα προς βήμα σεμινάριο. ### [Καθορισμός πεδίων τύπου κατά την εισαγωγή δεδομένων σε φύλλο Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Μάθετε πώς να εισάγετε δεδομένα σε φύλλα Excel με καθορισμένα πεδία τύπων χρησιμοποιώντας το Aspose.Cells για .NET σε αυτό το λεπτομερές σεμινάριο. +### [Ορισμός προσαρμοσμένης μορφής κελιού σε C# – Πλήρης οδηγός για εγγραφή & ανάγνωση ημερομηνιών στο Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Μάθετε πώς να ορίζετε προσαρμοσμένες μορφές κελιών και να διαχειρίζεστε ημερομηνίες στο Excel με Aspose.Cells για .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/greek/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..231d198aee --- /dev/null +++ b/cells/greek/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,209 @@ +--- +category: general +date: 2026-03-21 +description: Ορίστε προσαρμοσμένη μορφή κελιού σε C# και μάθετε πώς να γράφετε ημερομηνία + στο Excel, να εφαρμόζετε προσαρμοσμένη μορφή ημερομηνίας, να διαβάζετε DateTime + από το Excel και να δημιουργείτε γρήγορα φύλλο εργασίας βιβλίου. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: el +og_description: Ορίστε προσαρμοσμένη μορφή κελιού σε C# για να γράψετε ημερομηνία + στο Excel, εφαρμόστε προσαρμοσμένη μορφή ημερομηνίας, διαβάστε DateTime από το Excel + και δημιουργήστε φύλλο εργασίας σε βιβλίο εργασίας με ευκολία. +og_title: Ορισμός προσαρμοσμένης μορφής κελιού σε C# – Εγγραφή & Ανάγνωση ημερομηνιών + στο Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Ορισμός προσαρμοσμένης μορφής κελιού σε C# – Πλήρης οδηγός για την εγγραφή + & ανάγνωση ημερομηνιών στο Excel +url: /el/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ορισμός Προσαρμοσμένης Μορφής Κελιού – Εγγραφή & Ανάγνωση Ημερομηνιών στο Excel με C# + +Κάποτε χρειάστηκε να **ορίσετε προσαρμοσμένη μορφή κελιού** σε ένα αρχείο Excel από C# αλλά δεν ήξερες από πού να ξεκινήσεις; Δεν είσαι μόνος/η. Σε πολλά εργαλεία αναφοράς ή βοηθητικά προγράμματα εξαγωγής δεδομένων η ημερομηνία πρέπει να εμφανίζεται σε συγκεκριμένη τοπική ρύθμιση — σκεφτείτε ημερομηνίες εποχής Ιαπωνίας, φορολογικά ημερολόγια ή συμβολοσειρές ISO‑8601. + +Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από ένα **πλήρες, εκτελέσιμο παράδειγμα** που δείχνει πώς να **γράψετε ημερομηνία στο Excel**, **εφαρμόσετε προσαρμοσμένη μορφή ημερομηνίας**, **διαβάσετε DateTime από το Excel**, και **δημιουργήσετε φύλλο εργασίας βιβλίου** με το Aspose.Cells. Στο τέλος θα έχετε ένα ενιαίο, αυτόνομο πρόγραμμα που μπορείτε να ενσωματώσετε σε οποιοδήποτε έργο .NET. + +## Τι Θα Μάθετε + +- Πώς να **δημιουργήσετε φύλλο εργασίας βιβλίου** προγραμματιστικά. +- Τα ακριβή βήματα για **εγγραφή ημερομηνίας στο Excel** χρησιμοποιώντας συμβολοσειρά συγκεκριμένης τοπικής ρύθμισης. +- Πώς να **εφαρμόσετε προσαρμοσμένη μορφή ημερομηνίας** (συμπεριλαμβανομένης της σημειογραφίας εποχής Ιαπωνίας). +- Τον τρόπο **ανάγνωσης DateTime από το Excel** πίσω σε ένα αντικείμενο `DateTime`. +- Συμβουλές, παγίδες και παραλλαγές που μπορεί να συναντήσετε όταν δουλεύετε με ημερομηνίες στο Excel. + +Δεν απαιτείται εξωτερική τεκμηρίωση — όλα όσα χρειάζεστε είναι εδώ. + +## Προαπαιτούμενα + +- .NET 6.0 ή νεότερο (ο κώδικας λειτουργεί επίσης σε .NET Framework 4.7+). +- Aspose.Cells for .NET εγκατεστημένο μέσω NuGet (`Install-Package Aspose.Cells`). +- Βασική κατανόηση της σύνταξης C# — τίποτα περίπλοκο. + +> **Pro tip:** Αν χρησιμοποιείτε το Visual Studio, ενεργοποιήστε *nullable reference types* για να εντοπίζετε λεπτές ατέλειες νωρίς. + +## Βήμα 1: Δημιουργία Workbook και Worksheet + +Πρώτα απ’ όλα: χρειάζεστε ένα αντικείμενο workbook που αντιπροσωπεύει το αρχείο Excel, και ένα worksheet όπου θα ζήσουν τα δεδομένα. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Γιατί είναι σημαντικό:* Η κλάση `Workbook` είναι το σημείο εισόδου για όλες τις λειτουργίες Excel. Η δημιουργία της στη μνήμη σημαίνει ότι δεν αγγίζετε το σύστημα αρχείων μέχρι να αποθηκεύσετε ρητά, κάτι που κρατά τη διαδικασία γρήγορη και φιλική προς τις δοκιμές. + +## Βήμα 2: Εγγραφή Ημερομηνίας στο Excel + +Στη συνέχεια, θα τοποθετήσουμε μια συμβολοσειρά ημερομηνίας εποχής Ιαπωνίας (`"R02-04-01"`) στο κελί **A1**. Η συμβολοσειρά μιμείται την εποχή Reiwa (έτος 2, Απρίλιος 1). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Τι συμβαίνει:* Η `PutValue` αποθηκεύει τη ακατέργαστη συμβολοσειρά. Το Aspose.Cells θα προσπαθήσει αργότερα να την αναλύσει βάσει του στυλ του κελιού. Αν παραλείψετε αυτό το βήμα και γράψετε απευθείας ένα `DateTime`, θα χάσετε τις πληροφορίες εποχής που θέλετε να εμφανίσετε. + +## Βήμα 3: Εφαρμογή της Ενσωματωμένης Μορφής Αριθμού Ημερομηνίας (ID 14) + +Το Excel διαθέτει ενσωματωμένη μορφή ημερομηνίας με ID 14 (`mm-dd-yy`). Η εφαρμογή της λέει στη μηχανή ότι το κελί **περιέχει ημερομηνία**, όχι απλό κείμενο. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Γιατί χρησιμοποιούμε το ID 14;* Είναι η καθολική μορφή “σύντομης ημερομηνίας” που εξασφαλίζει ότι το Excel αντιμετωπίζει το περιεχόμενο ως τιμή ημερομηνίας, κάτι που είναι προαπαιτούμενο για να λειτουργήσει σωστά οποιαδήποτε προσαρμοσμένη μορφή. + +## Βήμα 4: Ορισμός Προσαρμοσμένης Μορφής για Εμφάνιση Εποχής Ιαπωνίας + +Τώρα το πιο διασκεδαστικό: λέμε στο Excel να αποδώσει την ημερομηνία χρησιμοποιώντας τη μορφή εποχής Ιαπωνίας. Η προσαρμοσμένη συμβολοσειρά `[$-ja-JP]ggge年m月d日` κάνει ακριβώς αυτό. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Επεξήγηση:* +- `[$-ja-JP]` επιβάλλει την τοπική ρύθμιση στα Ιαπωνικά. +- `ggg` είναι το όνομα της εποχής (π.χ., “R” για Reiwa). +- `e` είναι το έτος της εποχής. +- `年`, `月`, `日` είναι κυριολεκτικοί Ιαπωνικοί χαρακτήρες για έτος, μήνα, ημέρα. + +Αν χρειάζεστε διαφορετική τοπική ρύθμιση, αντικαταστήστε απλώς το `ja-JP` με τον κατάλληλο κωδικό πολιτισμού (π.χ., `en-US`). + +## Βήμα 5: Ανάκτηση της Αναλυμένης Τιμής DateTime + +Τέλος, ας διαβάσουμε το **πραγματικό `DateTime`** που το Excel έχει αναλύσει από το κελί. Αυτό αποδεικνύει ότι η συμβολοσειρά ερμηνεύτηκε σωστά. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Αποτέλεσμα:* Η κονσόλα εκτυπώνει `Parsed DateTime: 2020-04-01`. Παρόλο που εισάγαμε μια συμβολοσειρά εποχής Ιαπωνίας, το Excel αποθηκεύει εσωτερικά τη Γρηγοριανή ημερομηνία, την οποία μπορείτε να χρησιμοποιήσετε για υπολογισμούς, συγκρίσεις ή περαιτέρω εξαγωγή. + +## Βήμα 6: Αποθήκευση του Workbook (Προαιρετικό) + +Αν θέλετε να δείτε το μορφοποιημένο workbook στο Excel, απλώς αποθηκεύστε το στο δίσκο. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Ανοίξτε το παραγόμενο **JapaneseEraDate.xlsx** και θα δείτε το κελί **A1** να εμφανίζει `R02年4月1日` (ακριβώς η μορφή εποχής Ιαπωνίας που ορίσαμε). + +![παράδειγμα ορισμού προσαρμοσμένης μορφής κελιού](image-placeholder.png "Κελί Excel που εμφανίζει ημερομηνία εποχής Ιαπωνίας – ορισμός προσαρμοσμένης μορφής") + +*Το κείμενο alt παραπάνω περιέχει τη βασική λέξη‑κλειδί, ικανοποιώντας την απαίτηση SEO για την εικόνα.* + +## Συνηθισμένες Παραλλαγές & Ακραίες Περιπτώσεις + +### Εγγραφή Διαφορετικής Μορφής Ημερομηνίας + +Αν προτιμάτε ISO‑8601 (`2020-04-01`) αντί για συμβολοσειρά εποχής, απλώς αλλάξτε την κλήση `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Διαχείριση Κελιών με Null ή Κενό + +Κατά την ανάγνωση μιας ημερομηνίας, πάντα ελέγχετε για κενά κελιά ώστε να αποφύγετε `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Υποστήριξη Πολλαπλών Τοπικών Ρυθμίσεων + +Μπορείτε να κάνετε βρόχο σε μια λίστα κωδικών πολιτισμού και να τα εφαρμόζετε δυναμικά: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Pro Tips & Gotchas + +- **Πάντα ορίζετε πρώτα μια ενσωματωμένη μορφή αριθμού** (`Style.Number`). Χωρίς αυτήν, το Excel θεωρεί το κελί απλό κείμενο και η προσαρμοσμένη μορφή αγνοείται. +- **Οι κωδικοί τοπικής ρύθμισης δεν διακρίνουν πεζά‑κεφαλαία**, αλλά η χρήση της κανονικής μορφής (`ja-JP`) αποφεύγει σύγχυση. +- **Η αποθήκευση είναι προαιρετική** για επεξεργασία στη μνήμη· μπορείτε να μεταφέρετε το workbook απευθείας σε απόκριση web (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Άδειες Aspose.Cells**: Η δωρεάν έκδοση αξιολόγησης προσθέτει υδατογράφημα. Για παραγωγική χρήση, βεβαιωθείτε ότι έχετε έγκυρη άδεια ώστε να αποφύγετε ποινές απόδοσης. + +## Ανακεφαλαίωση + +Σας δείξαμε πώς να **ορίσετε προσαρμοσμένη μορφή κελιού** σε C# για εμφάνιση ημερομηνιών εποχής Ιαπωνίας, πώς να **γράψετε ημερομηνία στο Excel**, **εφαρμόσετε προσαρμοσμένη μορφή ημερομηνίας**, **διαβάσετε DateTime από το Excel**, και **δημιουργήσετε φύλλο εργασίας βιβλίου** — όλα σε ένα ενιαίο, αυτόνομο πρόγραμμα. Η κύρια λέξη‑κλειδί εμφανίζεται φυσικά σε όλο το κείμενο, ενώ δευτερεύουσες λέξεις‑κλειδιά είναι ενσωματωμένες σε τίτλους και σώμα, ικανοποιώντας τόσο τις απαιτήσεις SEO όσο και τα πρότυπα AI‑citation. + +## Τι Ακολουθεί; + +- Εξερευνήστε **συνθήκες μορφοποίησης** για να επισημαίνετε καθυστερημένες ημερομηνίες. +- Συνδυάστε αυτήν την προσέγγιση με **PivotTables** για δυναμική αναφορά. +- Δοκιμάστε **ανάγνωση μεγάλων αρχείων CSV** και μετατροπή τους σε 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/greek/net/excel-data-export-retrieval/_index.md b/cells/greek/net/excel-data-export-retrieval/_index.md index aacb7d2896..beaa24aea9 100644 --- a/cells/greek/net/excel-data-export-retrieval/_index.md +++ b/cells/greek/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ ### [Ανάκτηση δεδομένων από κελιά στο Excel](./retrieve-data-from-cells-in-excel/) Μάθετε πώς να ανακτάτε δεδομένα από κελιά του Excel χρησιμοποιώντας το Aspose.Cells για .NET σε αυτό το βήμα προς βήμα σεμινάριο, ιδανικό τόσο για αρχάριους όσο και για έμπειρους προγραμματιστές. +### [Εξαγωγή Πίνακα Δεδομένων Excel σε C# – Πλήρης Οδηγός](./export-excel-data-table-in-c-complete-guide/) +Μάθετε πώς να εξάγετε έναν πίνακα δεδομένων Excel χρησιμοποιώντας C# και Aspose.Cells σε αυτόν τον πλήρη οδηγό. + +### [Πώς να Εξάγετε Δεδομένα Excel σε C# – Οδηγός Βήμα‑Βήμα](./how-to-export-excel-data-in-c-step-by-step-guide/) +Μάθετε πώς να εξάγετε δεδομένα Excel σε C# χρησιμοποιώντας Aspose.Cells σε αυτόν τον βήμα‑βήμα οδηγό. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/greek/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/greek/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..211b738c52 --- /dev/null +++ b/cells/greek/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-03-21 +description: Εξαγωγή πίνακα δεδομένων Excel σε DataTable με κεφαλίδες, περιορισμός + των δεκαδικών ψηφίων και εξαγωγή των πρώτων 100 γραμμών χρησιμοποιώντας το Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: el +og_description: Μάθετε πώς να εξάγετε έναν πίνακα δεδομένων Excel σε DataTable, να + διατηρήσετε τις κεφαλίδες, να περιορίσετε τα δεκαδικά ψηφία και να πάρετε τις πρώτες + 100 γραμμές σε C#. +og_title: Εξαγωγή Πίνακα Δεδομένων Excel σε C# – Οδηγός Βήμα‑προς‑Βήμα +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Εξαγωγή Πίνακα Δεδομένων Excel σε C# – Πλήρης Οδηγός +url: /el/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Εξαγωγή Πίνακα Δεδομένων Excel – Πλήρης Οδηγός C# + +Χρειάζεστε **εξαγωγή πίνακα δεδομένων excel** από ένα βιβλίο εργασίας σε ένα .NET `DataTable`; Βρίσκεστε στο σωστό σημείο — αυτός ο οδηγός σας δείχνει ακριβώς πώς να το κάνετε, να διατηρήσετε τις επικεφαλίδες των στηλών, να περιορίσετε τα δεκαδικά ψηφία και να λάβετε μόνο τις πρώτες 100 γραμμές. + +Αν έχετε ποτέ κοίταξει ένα υπολογιστικό φύλλο και σκεφτείτε, «Πώς θα το βάλω στην εφαρμογή μου χωρίς να χάσω τη μορφοποίηση;», δεν είστε μόνοι. Στα επόμενα λεπτά θα μετατρέψουμε αυτό το «τι θα γίνει αν» σε μια συγκεκριμένη, αντιγραφή‑και‑επικόλληση λύση που λειτουργεί με το Aspose.Cells, μια δημοφιλής βιβλιοθήκη για χειρισμό Excel. + +## Τι Θα Μάθετε + +- Πώς να **εξάγετε excel σε datatable** χρησιμοποιώντας τη μέθοδο `ExportDataTable`. +- Πώς να διατηρήσετε τα αρχικά ονόματα στηλών (`export excel with headers`). +- Πώς να **περιορίσετε τα δεκαδικά ψηφία excel** ρυθμίζοντας το `ExportTableOptions`. +- Πώς να ανακτήσετε με ασφάλεια μόνο τις πρώτες 100 γραμμές (`export first 100 rows`). + +Χωρίς εξωτερικά σενάρια, χωρίς μαγικές συμβολοσειρές — μόνο απλό C# που μπορείτε να ενσωματώσετε σε οποιοδήποτε .NET project. + +## Προαπαιτούμενα + +| Απαίτηση | Γιατί είναι σημαντικό | +|----------|-----------------------| +| .NET 6 ή νεότερο (ή .NET Framework 4.7+) | Το Aspose.Cells υποστηρίζει και τα δύο, αλλά τα πιο πρόσφατα runtime παρέχουν async‑ready APIs. | +| Πακέτο NuGet Aspose.Cells για .NET | Παρέχει `Workbook`, `ExportTableOptions` και το βοηθητικό `ExportDataTable`. | +| Ένα δείγμα αρχείου Excel (π.χ. `Numbers.xlsx`) | Η πηγή των δεδομένων που θα εξάγετε. | +| Βασικές γνώσεις C# | Θα ακολουθήσετε τα αποσπάσματα κώδικα, αλλά δεν απαιτείται τίποτα περίπλοκο. | + +Αν κάτι από αυτά σας φαίνεται άγνωστο, κατεβάστε το πακέτο NuGet με `dotnet add package Aspose.Cells` και δημιουργήστε ένα μικρό αρχείο Excel με μερικούς αριθμούς — τα δεδομένα δοκιμής σας. + +![παράδειγμα εξαγωγής πίνακα δεδομένων excel](excel-data-table.png "Στιγμιότυπο οθόνης ενός φύλλου Excel που θα εξαχθεί σε DataTable") + +## Βήμα 1: Φόρτωση του Workbook (export excel data table) + +Το πρώτο πράγμα που χρειάζεστε είναι μια παρουσία `Workbook` που δείχνει στο αρχείο Excel σας. Σκεφτείτε το σαν το άνοιγμα ενός βιβλίου πριν διαβάσετε τα κεφάλαιά του. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Γιατί είναι σημαντικό:** Η φόρτωση του workbook σας δίνει πρόσβαση στα φύλλα εργασίας, τα κελιά και τα στυλ του. Αν η διαδρομή του αρχείου είναι λανθασμένη, το Aspose θα ρίξει `FileNotFoundException`, γι’ αυτό ελέγξτε ξανά τη θέση. + +## Βήμα 2: Διαμόρφωση Επιλογών Εξαγωγής – limit decimal places excel + +Από προεπιλογή το Aspose εξάγει κάθε αριθμητική τιμή με πλήρη ακρίβεια. Συχνά χρειάζεστε μόνο λίγα σημαντικά ψηφία, ειδικά όταν τα δεδομένα πηγαίνουν σε UI grid ή σε API που απαιτεί στρογγυλοποιημένους αριθμούς. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Συμβουλή:** Αν χρειάζεστε διαφορετική στρατηγική στρογγυλοποίησης (π.χ. πάντα προς τα πάνω), μπορείτε να επεξεργαστείτε το `DataTable` μετά την εξαγωγή. Η ρύθμιση `SignificantDigits` είναι ο πιο γρήγορος τρόπος να **περιορίσετε τα δεκαδικά ψηφία excel** χωρίς επιπλέον βρόχους. + +## Βήμα 3: Εξαγωγή του Επιθυμητού Περιοχής (export first 100 rows) + +Τώρα λέμε στο Aspose ποιο μπλοκ κελιών θέλουμε να μεταφέρουμε σε ένα `DataTable`. Σε αυτόν τον οδηγό εξάγουμε τις πρώτες 100 γραμμές και τις πρώτες 10 στήλες, αλλά μπορείτε να προσαρμόσετε τους αριθμούς ώστε να ταιριάζουν στο σενάριό σας. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Ακραία περίπτωση:** Αν το φύλλο περιέχει λιγότερες από 100 γραμμές, το Aspose θα εξάγει απλώς ό,τι υπάρχει χωρίς να ρίξει σφάλμα. Ωστόσο, ίσως θελήσετε να προστατέψετε τον κώδικα σας από απροσδόκητα μικρές περιοχές: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Βήμα 4: Επαλήθευση του Αποτελέσματος – Γρήγορη Εκτύπωση στην Κονσόλα + +Το να βλέπετε τα δεδομένα στον debugger είναι ωραίο, αλλά η εκτύπωση μερικών γραμμών στην κονσόλα επιβεβαιώνει ότι η **εξαγωγή excel σε datatable** λειτούργησε και ότι τα δεκαδικά ψηφία έχουν περικοπεί. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Αναμενόμενη Έξοδος + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Παρατηρήστε πώς οι αριθμητικές στήλες τώρα εμφανίζουν μόνο τέσσερα σημαντικά ψηφία, σύμφωνα με τη ρύθμιση `SignificantDigits = 4` που εφαρμόσαμε νωρίτερα. + +## Βήμα 5: Συνολική Ενσωμάτωση – Πλήρες, Εκτελέσιμο Παράδειγμα + +Παρακάτω βρίσκεται το πλήρες πρόγραμμα που μπορείτε να αντιγράψετε‑και‑επικολλήσετε σε μια εφαρμογή console. Περιλαμβάνει διαχείριση σφαλμάτων, την προαιρετική προστασία αριθμού γραμμών και τη βοηθητική μέθοδο εκτύπωσης. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Τρέξτε το πρόγραμμα και θα δείτε τις πρώτες 100 γραμμές του φύλλου σας, ωραία στρογγυλοποιημένες, με τα ονόματα των στηλών αμετάβλητα. + +## Συχνές Ερωτήσεις & Πιθανά Προβλήματα + +| Ερώτηση | Απάντηση | +|----------|----------| +| **Τι γίνεται αν το φύλλο μου έχει συγχωνευμένα κελιά;** | Το `ExportDataTable` επίπεδωση (flatten) των συγχωνευμένων κελιών παίρνοντας την τιμή του πάνω‑αριστερού κελιού. Αν χρειάζεστε προσαρμοσμένη διαχείριση, αποσυγχωνεύστε πρώτα ή διαβάστε τα ακατέργαστα αντικείμενα `Cell`. | +| **Μπορώ να εξάγω σε `DataSet` αντί για `DataTable`;** | Ναι — χρησιμοποιήστε `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/greek/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..b76c1d3cc4 --- /dev/null +++ b/cells/greek/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,263 @@ +--- +category: general +date: 2026-03-21 +description: Πώς να εξάγετε δεδομένα Excel με ονόματα στηλών, να διατηρήσετε τη μορφή + αριθμών και να διαβάσετε συγκεκριμένες γραμμές χρησιμοποιώντας το Aspose.Cells σε + C#. Μάθετε πώς να διαβάζετε φύλλο εργασίας Excel και να εξάγετε συγκεκριμένες γραμμές + αποδοτικά. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: el +og_description: Πώς να εξάγετε δεδομένα Excel με ονόματα στηλών, να διατηρήσετε τη + μορφή αριθμών και να διαβάσετε συγκεκριμένες γραμμές χρησιμοποιώντας το Aspose.Cells. + Ένα πλήρες, εκτελέσιμο παράδειγμα για προγραμματιστές C#. +og_title: Πώς να εξάγετε δεδομένα Excel σε C# – Πλήρης οδηγός προγραμματισμού +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Πώς να εξάγετε δεδομένα Excel σε C# – Οδηγός βήμα‑προς‑βήμα +url: /el/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Εξάγετε Δεδομένα Excel σε C# – Πλήρης Οδηγός Προγραμματισμού + +Έχετε αναρωτηθεί ποτέ **πώς να εξάγετε excel** δεδομένα χωρίς να χάσετε την αρχική μορφοποίηση; Ίσως έχετε δοκιμάσει μια γρήγορη αντιγραφή‑επικόλληση και να καταλήξατε με ημερομηνίες που φαίνονται σαν “44728” ή χωρίς κεφαλίδες στηλών. Αυτό είναι εκνευριστικό, σωστά; Σε αυτό το tutorial θα δείτε έναν καθαρό, από‑αρχή‑μέχρι‑τέλος τρόπο για να διαβάσετε ένα φύλλο εργασίας Excel, να διατηρήσετε τη μορφή αριθμών, να εξάγετε με ονόματα στηλών, και ακόμη να επιλέξετε μόνο τις γραμμές που χρειάζεστε. + +Θα χρησιμοποιήσουμε τη βιβλιοθήκη Aspose.Cells επειδή παρέχει λεπτομερή έλεγχο των επιλογών εξαγωγής. Στο τέλος αυτού του οδηγού θα έχετε ένα επαναχρησιμοποιήσιμο snippet που μπορεί να ενσωματωθεί σε οποιοδήποτε έργο .NET, και θα καταλάβετε γιατί κάθε επιλογή είναι σημαντική. Δεν απαιτούνται εξωτερικά έγγραφα—όλα όσα χρειάζεστε είναι εδώ. + +--- + +## Τι Θα Μάθετε + +- **Διαβάστε το φύλλο εργασίας Excel** στη μνήμη με Aspose.Cells. +- **Εξάγετε συγκεκριμένες γραμμές** (π.χ., γραμμές 0‑49) διατηρώντας τα ονόματα στηλών. +- **Διατηρήστε τη μορφή αριθμών** ώστε το νόμισμα, οι ημερομηνίες και τα ποσοστά να παραμένουν αμετάβλητα. +- Πώς να **εξάγετε με ονόματα στηλών** και να συμπεριλάβετε σχόλια κελιών αν τα χρειάζεστε. +- Ένα πλήρες, έτοιμο‑για‑εκτέλεση παράδειγμα C# συν συμβουλές για κοινές παγίδες. + +### Προαπαιτούμενα + +- .NET 6.0 ή νεότερο (ο κώδικας λειτουργεί επίσης με .NET Framework 4.6+). +- Aspose.Cells για .NET εγκατεστημένο μέσω NuGet (`Install-Package Aspose.Cells`). +- Ένα αρχείο Excel (`input.xlsx`) τοποθετημένο σε φάκελο που μπορείτε να αναφέρετε. + +> **Συμβουλή Pro:** Αν βρίσκεστε σε CI pipeline, σκεφτείτε να κατεβάζετε το πακέτο NuGet από ιδιωτικό feed για να αποφύγετε εκπλήξεις αδειοδότησης. + +## Βήμα 1 – Εγκατάσταση Aspose.Cells και Προσθήκη Namespaces + +Πρώτα, βεβαιωθείτε ότι το πακέτο Aspose.Cells βρίσκεται στο έργο σας. Ανοίξτε το Package Manager Console και εκτελέστε: + +```powershell +Install-Package Aspose.Cells +``` + +Στη συνέχεια προσθέστε τις απαιτούμενες οδηγίες `using` στην κορυφή του αρχείου C#: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Αυτές οι εισαγωγές σας δίνουν πρόσβαση στα `Workbook`, `Worksheet`, `ExportTableOptions` και `DataTable`—τα βασικά στοιχεία για **reading an Excel worksheet** και εξαγωγή δεδομένων. + +## Βήμα 2 – Φόρτωση του Workbook (Ανάγνωση του Αρχείου Excel) + +Τώρα διαβάζουμε πραγματικά **το φύλλο εργασίας Excel**. Ο κατασκευαστής `Workbook` δέχεται τη διαδρομή του αρχείου, και το Aspose.Cells θα διαχειριστεί τόσο μορφές `.xlsx` όσο και παλαιότερες `.xls`. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Γιατί είναι σημαντικό:** Η φόρτωση του workbook μία φορά και η επαναχρήση του ίδιου αντικειμένου `Worksheet` είναι πολύ πιο αποδοτική από το άνοιγμα του αρχείου επανειλημμένα, ειδικά για μεγάλα φύλλα. + +## Βήμα 3 – Διαμόρφωση Επιλογών Εξαγωγής (Διατήρηση Μορφής Αριθμών & Ονομάτων Στηλών) + +Εδώ λέμε στο Aspose.Cells *πώς* να εξάγει. Η κλάση `ExportTableOptions` μας επιτρέπει να ρυθμίσουμε λεπτομερώς την έξοδο. Θα ενεργοποιήσουμε τρία flags: + +1. `ExportAsString = true` – αναγκάζει κάθε κελί να γίνει συμβολοσειρά, εξασφαλίζοντας ότι οι αριθμοί διατηρούν την οπτική τους αναπαράσταση. +2. `IncludeCellComments = true` – αντιγράφει τυχόν σχόλια που είναι συνδεδεμένα στα κελιά (χρήσιμο για τεκμηρίωση). +3. `PreserveNumberFormat = true` – διατηρεί την αρχική μορφή αριθμού (σύμβολα νομίσματος, μοτίβα ημερομηνίας κλπ). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Ακραία περίπτωση:** Αν ορίσετε `ExportAsString` σε `false` αλλά θέλετε να κρατήσετε τις μορφές αριθμών, μπορεί να καταλήξετε με ακατέργαστες αριθμητικές τιμές (π.χ., 44728 για ημερομηνία). Η ενεργοποίηση και των δύο flags αποτρέπει αυτή την έκπληξη. + +## Βήμα 4 – Λήψη του Πρώτου Worksheet (Ανάγνωση Excel Worksheet) + +Τα περισσότερα απλά αρχεία έχουν τα δεδομένα που χρειάζεστε στο πρώτο φύλλο, οπότε θα το πάρουμε με βάση το δείκτη. Αν χρειάζεστε διαφορετικό φύλλο, απλώς αντικαταστήστε το `0` με τον κατάλληλο μηδενικό δείκτη ή χρησιμοποιήστε `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Γιατί είναι χρήσιμο:** Η άμεση πρόσβαση στο αντικείμενο worksheet σας δίνει πλήρη έλεγχο στη συλλογή `Cells`, κάτι που είναι ουσιώδες για **export specific rows** αργότερα. + +## Βήμα 5 – Εξαγωγή Περιοχής Κελιών (Εξαγωγή Συγκεκριμένων Γραμμών) + +Τώρα η καρδιά του tutorial: εξαγωγή γραμμών 0‑49 και στηλών 0‑4 (δηλαδή τις πρώτες 50 γραμμές και τις πρώτες πέντε στήλες) σε ένα `DataTable`. Θα ζητήσουμε επίσης από το Aspose.Cells να συμπεριλάβει τα ονόματα στηλών ως την πρώτη γραμμή του `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Τι Κάνει Αυτό + +- **`startRow: 0`** – αρχίζει στην κορυφή του φύλλου. +- **`totalRows: 50`** – παίρνει τις πρώτες 50 γραμμές (δηλαδή **export specific rows**). +- **`totalColumns: 5`** – περιορίζει την εξαγωγή στις πρώτες πέντε στήλες. +- **`includeColumnNames: true`** – εξασφαλίζει ότι οι κεφαλίδες στήλης του `DataTable` ταιριάζουν με τη γραμμή κεφαλίδας του Excel, ικανοποιώντας την απαίτηση **export with column names**. +- **`exportOptions`** – εφαρμόζει τις ρυθμίσεις από το Βήμα 3, ώστε οι αριθμητικές τιμές σας να παραμένουν όπως “$1,234.56” αντί για “1234.56”. + +## Βήμα 6 – Επαλήθευση της Εξαγωγής (Πώς Φαίνεται το Αποτέλεσμα) + +Ας εκτυπώσουμε τις πρώτες λίγες γραμμές στην κονσόλα ώστε να δείτε ότι η μορφοποίηση διατήρησε. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Αναμενόμενη έξοδος (παράδειγμα):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Παρατηρήστε πώς οι ημερομηνίες εμφανίζονται σε μορφή `MM/dd/yyyy` και το νόμισμα διατηρεί το σύμβολο `$`—ευχαριστώντας τη **preserve number format**. + +## Συνηθισμένα Προβλήματα & Πώς να τα Αποφύγετε + +| Πρόβλημα | Γιατί συμβαίνει | Διόρθωση | +|----------|----------------|----------| +| Οι ημερομηνίες μετατρέπονται σε μεγάλα νούμερα | `ExportAsString` άφησε `false` | Κρατήστε `ExportAsString = true` ή μετατρέψτε τα κελιά χειροκίνητα | +| Λείπουν οι κεφαλίδες στηλών | `includeColumnNames` ορίστηκε σε `false` | Ορίστε το σε `true` όταν χρειάζεστε **export with column names** | +| Τα σχόλια εξαφανίζονται | `IncludeCellComments` δεν ενεργοποιήθηκε | Ενεργοποιήστε `IncludeCellComments` στο `ExportTableOptions` | +| Εξάγετε το λάθος φύλλο | Χρήση `Worksheets[0]` σε αρχείο πολλαπλών φύλλων | Καθορίστε το όνομα του φύλλου: `workbook.Worksheets["Data"]` | +| Εξαίρεση εκτός εύρους | `totalRows` υπερβαίνει τις πραγματικές γραμμές | Χρησιμοποιήστε `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +## Μπόνους: Εξαγωγή Ολόκληρου Φύλλου Διατηρώντας τις Μορφές + +Αν αργότερα αποφασίσετε ότι χρειάζεστε ολόκληρο το φύλλο, απλώς αντικαταστήστε τα `totalRows` και `totalColumns` με τις μέγιστες διαστάσεις του φύλλου: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Τώρα έχετε μια ρουτίνα **read excel worksheet** που λειτουργεί για οποιοδήποτε μέγεθος, ενώ εξακολουθεί να **preserving number format** και **exporting with column names**. + +## Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Αντιγραφή‑Επικόλληση) + +Παρακάτω είναι το πλήρες πρόγραμμα που μπορείτε να ενσωματώσετε σε μια εφαρμογή console. Περιλαμβάνει όλα τα βήματα, τις εισαγωγές και μια απλή εκτύπωση επαλήθευσης. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Αποθηκεύστε το ως `Program.cs`, τρέξτε `dotnet run`, και θα δείτε την μορφοποιημένη προεπισκόπηση στο τερματικό σας. + +## Συμπέρασμα + +Μόλις περάσαμε από **how to export excel** δεδομένα χρησιμοποιώντας το Aspose.Cells, καλύπτοντας όλα από τη φόρτωση του workbook μέχρι τη διατήρηση της μορφής αριθμών, την εξαγωγή με ονόματα στηλών, και τον περιορισμό της εξαγωγής σε συγκεκριμένες γραμμές. Ο κώδικας είναι αυτόνομος, πλήρως εκτελέσιμος, και περιλαμβάνει πρακτικά μέτρα ασφαλείας για τις πιο συνηθισμένες ακραίες περιπτώσεις. + +Έτοιμοι για την επόμενη πρόκληση; Δοκιμάστε να εξάγετε απευθείας σε CSV διατηρώντας τη μορφοποίηση αριθμών, ή σπρώξτε το `DataTable` σε ένα Entity Framework Core context για μαζικές εισαγωγές στη βάση δεδομένων. Και τα δύο σενάρια βασίζονται στα ίδια θεμέλια που καλύψαμε εδώ. + +Αν βρήκατε αυτόν τον οδηγό χρήσιμο + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..529fec7df5 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 με αυτόν τον απλό οδηγό βήμα προς βήμα. Ιδανικό για την ενίσχυση της συνεργασίας της ομάδας. | +| [Δημιουργία βιβλίου εργασίας Excel με μορφοποιημένο πίνακα – Οδηγός βήμα προς βήμα](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Μάθετε πώς να δημιουργήσετε ένα βιβλίο εργασίας Excel με μορφοποιημένο πίνακα, ακολουθώντας βήμα‑προς‑βήμα οδηγίες. | | [Εντοπισμός τύπων συνδέσμων](./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-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/greek/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..5b88308355 --- /dev/null +++ b/cells/greek/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-21 +description: Δημιουργήστε βιβλίο εργασίας Excel και εισάγετε πίνακα δεδομένων στο + Excel ορίζοντας το στυλ της στήλης, εξάγετε τα δεδομένα στο Excel και μορφοποιήστε + την ημερομηνία των κελιών του Excel σε λεπτά. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: el +og_description: Δημιουργήστε γρήγορα ένα βιβλίο εργασίας Excel. Μάθετε να εισάγετε + πίνακα δεδομένων στο Excel, να ορίσετε το στυλ στήλης, να εξάγετε δεδομένα στο Excel + και να μορφοποιήσετε τις ημερομηνίες των κελιών του Excel σε έναν οδηγό. +og_title: Δημιουργία βιβλίου εργασίας Excel – Πλήρης οδηγός για το στυλ και την εξαγωγή +tags: +- C# +- Aspose.Cells +- Excel automation +title: Δημιουργία βιβλίου εργασίας Excel με μορφοποιημένο πίνακα – Οδηγός βήμα‑βήμα +url: /el/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία Excel Workbook – Πλήρης Προγραμματιστική Εκπαίδευση + +Κάποτε χρειάστηκε να **δημιουργήσετε excel workbook** που να φαίνεται επαγγελματικό κατευθείαν από τον κώδικα; Ίσως αντλείτε δεδομένα από μια βάση και θέλετε οι ημερομηνίες να εμφανίζονται στη σωστή μορφή χωρίς να παίζετε με το Excel αργότερα. Αυτό είναι ένα συχνό πρόβλημα—ειδικά όταν το αποτέλεσμα φτάνει στο inbox ενός πελάτη και αυτός αναμένει ότι όλα είναι έτοιμα προς χρήση. + +Σε αυτόν τον οδηγό θα περάσουμε βήμα‑βήμα από μια αυτόνομη λύση που **εισάγει datatable σε excel**, εφαρμόζει **ρυθμίζει στυλ στήλης**, και τέλος **εξάγει δεδομένα σε excel** ως ένα ωραία μορφοποιημένο αρχείο. Θα δείτε ακριβώς πώς να **μορφοποιήσετε excel cells date** ώστε το φύλλο να διαβάζεται σαν επαγγελματική αναφορά, και θα λάβετε ένα πλήρες, εκτελέσιμο παράδειγμα στο τέλος. Χωρίς ελλείψεις, χωρίς “δείτε την τεκμηρίωση” συντομεύσεις—απλώς καθαρός κώδικας που μπορείτε να ενσωματώσετε στο πρότζεκτ σας σήμερα. + +--- + +## Τι Θα Μάθετε + +- Πώς να **δημιουργήσετε excel workbook** χρησιμοποιώντας τη βιβλιοθήκη Aspose.Cells (ή οποιοδήποτε συμβατό API). +- Τον πιο γρήγορο τρόπο για **εισαγωγή datatable σε excel** χωρίς χειροκίνητους βρόχους κελιού‑κατά‑κελί. +- Τεχνικές για **ρύθμιση στυλ στήλης**, συμπεριλαμβανομένης της εφαρμογής μορφής ημερομηνίας σε συγκεκριμένη στήλη. +- Πώς να **εξάγετε δεδομένα σε excel** με μία κλήση `Save`. +- Συνηθισμένα λάθη όταν προσπαθείτε να **μορφοποιήσετε excel cells date** και πώς να τα αποφύγετε. + +### Προαπαιτούμενα + +- .NET 6+ (ή .NET Framework 4.6+). +- Aspose.Cells for .NET εγκατεστημένο (`Install-Package Aspose.Cells`). +- Ένα `DataTable` έτοιμο για εξαγωγή—η πηγή δεδομένων σας μπορεί να είναι SQL, CSV ή οτιδήποτε μπορεί να μετατραπεί σε `DataTable`. + +Αν είστε ήδη άνετοι με τη C# και έχετε αυτά τα στοιχεία στη θέση τους, είστε έτοιμοι. Διαφορετικά, η ενότητα “Προαπαιτούμενα” παραπάνω σας δίνει μια γρήγορη λίστα ελέγχου. + +--- + +## Βήμα 1 – Δημιουργία του Αντικειμένου Excel Workbook + +Το πρώτο πράγμα που κάνετε όταν θέλετε να **δημιουργήσετε excel workbook** προγραμματιστικά είναι να δημιουργήσετε το αντικείμενο workbook. Σκεφτείτε το σαν το άνοιγμα ενός κεντρικού σημειωματάριου όπου θα γράψετε τα δεδομένα σας. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Γιατί είναι σημαντικό:** +> Η κλάση `Workbook` είναι το σημείο εισόδου για κάθε λειτουργία στο Aspose.Cells. Η δημιουργία της από την αρχή σας δίνει έναν καθαρό καμβά, και μπορείτε αργότερα να φορτώσετε ένα υπάρχον αρχείο αν χρειαστεί να προσθέσετε δεδομένα αντί να ξεκινήσετε από το μηδέν. + +--- + +## Βήμα 2 – Προετοιμασία του DataTable για Εισαγωγή + +Πριν μπορέσουμε να **εισάγουμε datatable σε excel**, χρειαζόμαστε ένα `DataTable`. Σε πραγματικά έργα αυτό συχνά προέρχεται από `SqlDataAdapter.Fill` ή `DataTable.Load`. Για λόγους σαφήνειας θα δημιουργήσουμε μια μέθοδο που επιστρέφει έναν έτοιμο πίνακα. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Συμβουλή:** Αν οι ημερομηνίες σας είναι αποθηκευμένες ως συμβολοσειρές, μετατρέψτε τις σε `DateTime` πρώτα—διαφορετικά το βήμα **μορφοποίησης excel cells date** δεν θα λειτουργήσει όπως αναμένεται. + +--- + +## Βήμα 3 – Ορισμός Στυλ για Κάθε Στήλη (Set Column Style) + +Τώρα ήρθε η στιγμή να **ρυθμίσουμε στυλ στήλης**. Θα δημιουργήσουμε έναν πίνακα αντικειμένων `Style`—ένα για κάθε στήλη. Η πρώτη στήλη παίρνει μια ενσωματωμένη μορφή ημερομηνίας (κώδικας 14), ενώ οι άλλες παραμένουν στη γενική μορφή (κώδικας 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Γιατί να χρησιμοποιήσετε αντικείμενα στυλ;** +> Η εφαρμογή ενός στυλ μία φορά και η επαναχρησιμοποίησή του είναι πολύ πιο αποδοτική από το να ορίζετε τη μορφή σε κάθε κελί ξεχωριστά. Επίσης εγγυάται ότι ολόκληρη η στήλη τηρεί τον ίδιο κανόνα **μορφοποίησης excel cells date**, κάτι που είναι κρίσιμο για συνέπεια όταν το αρχείο ανοίγει σε διαφορετικές τοπικές ρυθμίσεις. + +--- + +## Βήμα 4 – Εισαγωγή του DataTable με Στυλ στο Worksheet + +Με το workbook έτοιμο και τα στυλ ορισμένα, τώρα **εισάγουμε datatable σε excel**. Η μέθοδος `ImportDataTable` κάνει το βαριά δουλειά: γράφει τις επικεφαλίδες των στηλών, τις γραμμές, και εφαρμόζει τα στυλ που περάσαμε. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Τι συμβαίνει στο παρασκήνιο;** +> - `true` λέει στο Aspose.Cells να συμπεριλάβει τα ονόματα των στηλών ως πρώτη γραμμή. +> - `0, 0` είναι οι δείκτες εκκίνησης γραμμής και στήλης (πάνω‑αριστερή γωνία). +> - `columnStyles` ευθυγραμμίζει κάθε στήλη με το στυλ που προετοιμάσαμε, εξασφαλίζοντας ότι ο κανόνας **μορφοποίησης excel cells date** εφαρμόζεται στη στήλη ημερομηνίας. + +--- + +## Βήμα 5 – Αποθήκευση (Εξαγωγή) του Workbook σε Φυσικό Αρχείο + +Τέλος, **εξάγουμε δεδομένα σε excel** αποθηκεύοντας το workbook στο δίσκο. Μπορείτε να αλλάξετε τη διαδρομή σε οποιονδήποτε φάκελο θέλετε, ή ακόμη και να στείλετε το αρχείο απευθείας ως απόκριση HTTP για ένα web API. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** Χρησιμοποιήστε `workbook.Save(Stream, SaveFormat.Xlsx)` όταν χρειάζεται να στείλετε το αρχείο μέσω δικτύου χωρίς να το γράψετε στο δίσκο. + +--- + +## Πλήρες Παράδειγμα Εργασίας (Όλα τα Βήματα Συνδυασμένα) + +Παρακάτω είναι το πλήρες, έτοιμο‑για‑εκτέλεση πρόγραμμα. Αντιγράψτε‑και‑επικολλήστε το σε μια εφαρμογή console, προσαρμόστε τη διαδρομή εξόδου, και θα έχετε ένα ωραία μορφοποιημένο αρχείο Excel σε δευτερόλεπτα. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Αναμενόμενη έξοδος:** +Όταν ανοίξετε το `StyledTable.xlsx`, η στήλη A δείχνει ημερομηνίες όπως `03/19/2026` (ανάλογα με την τοπική ρύθμιση), ενώ οι στήλες B και C εμφανίζουν τα ονόματα προϊόντων και τις ποσότητες ως απλό κείμενο/αριθμούς. Δεν απαιτούνται επιπλέον βήματα μορφοποίησης—η διαδικασία **δημιουργίας excel workbook** ολοκληρώθηκε. + +--- + +## Συχνές Ερωτήσεις & Ακραίες Περιπτώσεις + +### 1️⃣ Τι γίνεται αν το DataTable μου έχει περισσότερες από τρεις στήλες; +Προσθέστε περισσότερα αντικείμενα `Style` στον πίνακα `columnStyles` και προσαρμόστε την ιδιότητα `Number` για κάθε στήλη που χρειάζεται ειδική μορφή (π.χ. νόμισμα, ποσοστά). Η μέθοδος `ImportDataTable` θα ταιριάξει κάθε στυλ με τη θέση του. + +### 2️⃣ Μπορώ να εφαρμόσω προσαρμοσμένη μορφή ημερομηνίας αντί του ενσωματωμένου 14; +Απολύτως. Αντικαταστήστε το `columnStyles[i].Number = 14;` με: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Πώς **εξάγω δεδομένα σε excel** σε ένα web API χωρίς να γράψω στο δίσκο; +Χρησιμοποιήστε ένα `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Τι γίνεται αν η τοπική ρύθμιση του χρήστη απαιτεί διαφορετικό διαχωριστικό ημερομηνίας; +Η ενσωματωμένη μορφή ημερομηνίας (ID 14) σέβεται τις ρυθμίσεις τοπικότητας του workbook. Αν χρειάζεστε σταθερή μορφή ανεξάρτητα από την τοπική ρύθμιση, χρησιμοποιήστε την ιδιότητα `Custom` όπως φαίνεται παραπάνω. + +### 5️⃣ Λειτουργεί αυτό με .NET Core; +Ναι—το Aspose.Cells υποστηρίζει .NET Standard 2.0 και νεότερα, οπότε ο ίδιος κώδικας τρέχει σε .NET 6, .NET 7 ή οποιοδήποτε συμβατό runtime. + +--- + +## Συμβουλές Καλών Πρακτικών (Pro Tips) + +- **Επαναχρησιμοποίηση στυλ**: Η δημιουργία ενός στυλ ανά στήλη είναι φθηνή, αλλά η χρήση του ίδιου αντικειμένου στυλ για παρόμοιες στήλες εξοικονομεί μνήμη. +- **Αποφύγετε βρόχους κελιού‑κατά‑κελί**: Η `ImportDataTable` είναι εξαιρετικά βελτιστοποιημένη· οι χειροκίνητοι βρόχοι είναι πιο αργοί και επιρρεπείς σε σφάλματα. +- **Ορίστε την πολιτισμική ρύθμιση του workbook νωρίς** αν χρειάζεστε συνεπείς διαχωριστές αριθμών/ημερομηνιών σε όλα τα περιβάλλοντα: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Επικυρώστε το DataTable** πριν την εισαγωγή—μηδενικές ημερομηνίες θα προκαλέσουν εξαίρεση όταν εφαρμόζεται το στυλ ημερομηνίας. +- **Ενεργοποιήστε τον υπολογισμό** αν προσθέσετε τύπους μετά την εισαγωγή: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Συμπέρασμα + +Τώρα έχετε μια πλήρη, άκρη‑σε‑άκρη συνταγή για **δημιουργία excel workbook**, **εισαγωγή datatable σε excel**, **ρύθμιση στυλ στήλης**, **εξαγωγή δεδομένων σε excel**, και **μορφοποίηση excel cells date**—όλα σε λιγότερο από μια δέκα γραμμές κώδικα C#. Η προσέγγιση είναι γρήγορη, αξιόπιστη και κρατά τις ανησυχίες μορφοποίησης μέσα στον κώδικα, ώστε το τελικό φύλλο να είναι έτοιμο για τους επιχειρηματικούς χρήστες τη στιγμή που το ανοίγουν. + +Έτοιμοι για την επόμενη πρόκληση; Δοκιμάστε να προσθέσετε conditional formatting, να ενσωματώσετε γραφήματα, ή να μετατρέψετε το + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/greek/net/row-and-column-management/_index.md index a67cb196c3..b950bfbad7 100644 --- a/cells/greek/net/row-and-column-management/_index.md +++ b/cells/greek/net/row-and-column-management/_index.md @@ -76,6 +76,8 @@ Μάθετε να εισάγετε μια γραμμή με μορφοποίηση στο Excel χρησιμοποιώντας το Aspose.Cells για .NET. Ακολουθήστε τον αναλυτικό οδηγό μας για εύκολη εφαρμογή. ### [Εισαγωγή πολλαπλών γραμμών στο Aspose.Cells .NET](./insert-multiple-rows-aspose-cells/) Μάθετε να εισάγετε πολλές γραμμές στο Excel χρησιμοποιώντας το Aspose.Cells για .NET. Ακολουθήστε το λεπτομερές εκπαιδευτικό μας βοήθημα για απρόσκοπτη διαχείριση δεδομένων. +### [Φόρτωση αρχείου Excel C# – Πώς να διαγράψετε γραμμές και να αφαιρέσετε συγκεκριμένες γραμμές](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Μάθετε πώς να φορτώσετε ένα αρχείο Excel σε C# και να διαγράψετε ή να αφαιρέσετε συγκεκριμένες γραμμές με Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/greek/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..21f9a7182a --- /dev/null +++ b/cells/greek/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-03-21 +description: Φορτώστε αρχείο Excel με C# και αφαιρέστε γραμμές δεδομένων με το Aspose.Cells. + Μάθετε πώς να διαγράφετε γραμμές, να αφαιρείτε συγκεκριμένες γραμμές και να κυριαρχήσετε + στη διαγραφή γραμμών Excel με C# σε λίγα λεπτά. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: el +og_description: Φορτώστε αρχείο Excel C# και διαγράψτε γρήγορα γραμμές, αφαιρέστε + συγκεκριμένες γραμμές και διαχειριστείτε τη διαγραφή γραμμών Excel σε C# χρησιμοποιώντας + το Aspose.Cells. Πλήρης οδηγός βήμα‑βήμα. +og_title: Φόρτωση αρχείου Excel C# – Διαγραφή γραμμών & Αφαίρεση συγκεκριμένων γραμμών +tags: +- C# +- Excel +- Aspose.Cells +title: Φόρτωση αρχείου Excel C# – Πώς να διαγράψετε γραμμές και να αφαιρέσετε συγκεκριμένες + γραμμές +url: /el/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Φόρτωση αρχείου Excel C# – Πώς να διαγράψετε γραμμές και να αφαιρέσετε συγκεκριμένες γραμμές + +Κάποτε χρειάστηκε να **φορτώσετε αρχείο Excel C#** και στη συνέχεια να αφαιρέσετε γραμμές που δεν χρειάζεστε; Ίσως καθαρίζετε ένα αρχείο δεδομένων ή έχετε ένα πρότυπο όπου ορισμένες γραμμές πρέπει να εξαφανιστούν πριν στείλετε το βιβλίο εργασίας σε πελάτη. Σε κάθε περίπτωση, το πρόβλημα είναι το ίδιο: έχετε ένα `.xlsx` στο δίσκο, θέλετε να το ανοίξετε στο .NET και χρειάζεται να **διαγράψετε γραμμές** χωρίς να καταστρέψετε κρυφούς πίνακες ή αντικείμενα λίστας. + +Το θέμα είναι ότι το Aspose.Cells το κάνει παιχνιδάκι. Σε αυτό το tutorial θα δείτε ένα πλήρες, έτοιμο‑για‑εκτέλεση παράδειγμα που δείχνει ακριβώς **πώς να διαγράψετε γραμμές**, πώς να **αφαιρέσετε συγκεκριμένες γραμμές**, και γιατί μπορεί να σας ενδιαφέρει η **c# excel row deletion** από την αρχή. Στο τέλος θα έχετε ένα καθαρό `output.xlsx` που περιέχει μόνο τις γραμμές που θέλετε. + +## Τι καλύπτει αυτός ο οδηγός + +- Φόρτωση βιβλίου εργασίας Excel από το δίσκο χρησιμοποιώντας Aspose.Cells. +- Διαγραφή εύρους γραμμών (π.χ. γραμμές 5‑10) ενώ διατηρούνται τυχόν κεφαλίδες ListObject. +- Αποθήκευση του τροποποιημένου βιβλίου εργασίας στο σύστημα αρχείων. +- Συνηθισμένα προβλήματα, όπως η τυχαία διαγραφή γραμμών μέσα σε πίνακα, και συμβουλές για την αντιμετώπισή τους. +- Ένα πλήρες, εκτελέσιμο δείγμα κώδικα που μπορείτε να ενσωματώσετε σε μια εφαρμογή console σήμερα. + +> **Prerequisites** +> • .NET 6+ (ή .NET Framework 4.6+). +> • Aspose.Cells for .NET εγκατεστημένο μέσω NuGet (`Install-Package Aspose.Cells`). +> • Βασική εξοικείωση με C# και έννοιες του Excel ( φύλλα εργασίας, κελιά, πίνακες). + +Αν αναρωτιέστε **γιατί να χρησιμοποιήσετε Aspose.Cells** αντί για, π.χ., `Microsoft.Office.Interop.Excel`, η απάντηση είναι η ταχύτητα, η μη‑ανάγκη COM, και η δυνατότητα εκτέλεσης σε διακομιστές χωρίς εγκατεστημένο Office. Επιπλέον, το API είναι απλό για εργασίες διαγραφής γραμμών. + +--- + +## Βήμα 1: Φόρτωση του βιβλίου εργασίας Excel σε C# + +Πριν μπορέσετε να διαγράψετε οτιδήποτε, πρέπει να φορτώσετε το βιβλίο εργασίας στη μνήμη. Η κλάση `Workbook` αντιπροσωπεύει ολόκληρο το αρχείο Excel. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Γιατί είναι σημαντικό:** +Η φόρτωση του αρχείου δημιουργεί ένα γράφημα αντικειμένων που αντικατοπτρίζει τη δομή του Excel — φύλλα εργασίας, κελιά, πίνακες κ.λπ. Κρατώντας μια αναφορά στο `ws`, μπορείτε να χειριστείτε τις γραμμές άμεσα χωρίς να ανησυχείτε για κλειδώματα αρχείων ή ιδιαιτερότητες COM interop. + +--- + +## Βήμα 2: Διαγραφή γραμμών που περιέχουν μόνο δεδομένα + +Τώρα που το βιβλίο εργασίας είναι στη μνήμη, μπορείτε να διαγράψετε γραμμές. Η μέθοδος `Cells.DeleteRows(startRow, totalRows)` αφαιρεί ένα συνεχόμενο μπλοκ. Στο παράδειγμά μας θα αφαιρέσουμε τις γραμμές 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Πώς λειτουργεί:** +- Το `startRow` είναι μηδενικής βάσης, έτσι το `5` αναφέρεται στην πραγματική γραμμή 6 του Excel. Προσαρμόστε ανάλογα. +- Αν το φύλλο εργασίας περιέχει **ListObject** (πίνακα Excel) του οποίου η κεφαλίδα βρίσκεται στη γραμμή 4, το Aspose.Cells θα προστατεύσει την κεφαλίδα και θα διαγράψει μόνο τις γραμμές δεδομένων κάτω από αυτήν. Αυτός ο ενσωματωμένος μηχανισμός αποτρέπει τη διαφθορά δομημένων πινάκων — ένα συχνό edge case όταν **αφαιρείτε γραμμές δεδομένων**. + +> **Pro tip:** Αν χρειάζεται να διαγράψετε μη‑συνεχόμενες γραμμές (π.χ. γραμμές 3, 7, 12), κάντε βρόχο πάνω σε μια αντίστροφη συλλογή δεικτών γραμμών και καλέστε `DeleteRows(rowIndex, 1)` για κάθε μία. Η διαγραφή από το κάτω μέρος διατηρεί τους αρχικούς δείκτες για τις υπόλοιπες γραμμές. + +--- + +## Βήμα 3: Αποθήκευση του τροποποιημένου βιβλίου εργασίας + +Μόλις εξαφανιστούν οι ανεπιθύμητες γραμμές, απλώς γράφετε το βιβλίο εργασίας πίσω στο δίσκο. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +Η μέθοδος `Save` καθορίζει αυτόματα τη μορφή αρχείου από την επέκταση (`.xlsx` σε αυτήν την περίπτωση). Αν χρειάζεστε διαφορετική μορφή — CSV, PDF, κ.λπ. — απλώς αλλάξτε την επέκταση ή περάστε ένα enum `SaveFormat`. + +### Αναμενόμενο αποτέλεσμα + +Ανοίξτε το `output.xlsx` στο Excel και θα δείτε ότι οι γραμμές 5‑14 (οι αρχικές γραμμές 5‑10) έχουν εξαφανιστεί. Όλα τα υπόλοιπα δεδομένα μετακινούνται προς τα πάνω, και τυχόν τύποι που αναφέρονταν στις διαγραμμένες γραμμές προσαρμόζονται αυτόματα από το Aspose.Cells. + +--- + +## Συχνές Ερωτήσεις (FAQ) + +### Πώς διαγράφω γραμμές βάσει συνθήκης (π.χ. όλες οι γραμμές όπου η στήλη A είναι κενή); + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +Ο βρόχος εκτελείται προς τα πίσω για να αποφευχθεί η μετατόπιση δεικτών. Αυτό το μοτίβο απαντά στην ευρύτερη ερώτηση **c# excel row deletion** όταν χρειάζεται λογική υπό συνθήκη. + +### Τι γίνεται αν το φύλλο εργασίας μου περιέχει πολλαπλά ListObjects; + +Το Aspose.Cells αντιμετωπίζει κάθε ListObject ανεξάρτητα. Αν η κεφαλίδα οποιουδήποτε πίνακα θα επηρεαστεί από το εύρος διαγραφής, το API ρίχνει `InvalidOperationException`. Για να το παρακάμψετε, είτε προσαρμόστε το εύρος είτε προσωρινά απενεργοποιήστε την ιδιότητα `ShowTableStyleFirstColumn` του ListObject, εκτελέστε τη διαγραφή και, στη συνέχεια, επαναφέρετε την. + +### Μπορώ να διαγράψω γραμμές χωρίς να φορτώσω ολόκληρο το βιβλίο εργασίας στη μνήμη; + +Ναι — το Aspose.Cells προσφέρει **streaming API** (`Workbook.LoadOptions`) που διαβάζει δεδομένα σε τμήματα. Ωστόσο, η διαγραφή γραμμών απαιτεί τη δομή του φύλλου, οπότε θα πρέπει να φορτώσετε το συγκεκριμένο φύλλο στη μνήμη. Για τεράστια αρχεία (>500 MB), σκεφτείτε επεξεργασία σε παρτίδες ή χρήση του **cell‑by‑cell** API. + +--- + +## Πλήρες, Εκτελέσιμο Παράδειγμα + +Παρακάτω βρίσκεται το πλήρες πρόγραμμα που μπορείτε να μεταγλωττίσετε και να τρέξετε ως console app. Αντικαταστήστε το `YOUR_DIRECTORY` με πραγματικό μονοπάτι φακέλου στο σύστημά σας. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Εκτέλεση του κώδικα:** +1. Ανοίξτε ένα τερματικό ή το Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Αντικαταστήστε το `Program.cs` με το παραπάνω απόσπασμα. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Θα πρέπει να δείτε έξοδο στην κονσόλα που επιβεβαιώνει τη διαγραφή και τη θέση του αποθηκευμένου αρχείου. + +--- + +## Συνηθισμένα Πιθανά Σφάλματα & Πώς να τα Αποφύγετε + +| Πιθανό Σφάλμα | Γιατί Συμβαίνει | Διόρθωση | +|---------------|----------------|----------| +| **Τυχαία διαγραφή κεφαλίδας ListObject** | Το `DeleteRows` δεν ελέγχει κρυφές κεφαλίδες πινάκων όταν το εύρος τις αγγίζει. | Βεβαιωθείτε ότι η αρχική γραμμή είναι **μετά** από οποιαδήποτε κεφαλίδα πίνακα, ή χρησιμοποιήστε το API `ListObject` για διαγραφή γραμμών εντός του πίνακα (`ListObject.DeleteRows`). | +| **Δείκτες γραμμών εκτός ευθυγράμμισης** | Το Aspose.Cells χρησιμοποιεί μηδενική βάση, ενώ οι χρήστες του Excel σκέφτονται 1‑βασική. | Αφαιρέστε 1 από τον αριθμό γραμμής του Excel όταν γράφετε κώδικα. | +| **Σπασμένοι τύποι μετά τη διαγραφή** | Η διαγραφή γραμμών μπορεί να προκαλέσει σφάλματα `#REF!` αν οι τύποι αναφέρονται στις αφαιρεθείσες γραμμές. | Το Aspose.Cells ενημερώνει αυτόματα τους περισσότερους τύπους, αλλά ελέγξτε τυχόν εξωτερικές αναφορές ή ονομαστικές περιοχές. | +| **Μείωση απόδοσης σε τεράστια αρχεία** | Η διαγραφή πολλών γραμμών προκαλεί εσωτερική επαναδείκτωση. | Κάντε μαζικές διαγραφές (διαγράψτε ένα μεγάλο εύρος μία φορά) αντί για πολλές μεμονωμένες διαγραφές. Χρησιμοποιήστε `DeleteRows(start, count)` όπου είναι δυνατόν. | + +--- + +## Επόμενα Βήματα & Σχετικά Θέματα + +- **Αφαίρεση συγκεκριμένων γραμμών βάσει τιμών κελιών:** Συνδυάστε τον βρόχο υπό συνθήκη που φαίνεται στο FAQ με `DeleteRows`. +- **Μαζική εισαγωγή γραμμών:** Χρησιμοποιήστε `InsertRows` για να προσθέσετε γραμμές placeholder πριν γεμίσετε τα δεδομένα. +- **Εργασία με πίνακες (ListObjects):** Εξερευνήστε τις μεθόδους `ListObject` για λειτουργίες σε επίπεδο γραμμής μέσα σε δομημένους πίνακες. +- **Εξαγωγή σε CSV μετά τη διαγραφή γραμμών:** Κλήση `workbook.Save("output.csv", SaveFormat.Csv)` για καθαρό CSV χωρίς τις αφαιρεθείσες γραμμές. + +Κάθε ένα από αυτά βασίζεται στη βασική ροή **load excel file c#** που μόλις μάθατε, επιτρέποντάς σας να βελτιώσετε προγραμματιστικά τα αρχεία Excel. + +--- + +## Συμπέρασμα + +Διασχίσαμε ένα πρακτικό σενάριο **load excel file c#**, δείξαμε **πώς να διαγράψετε γραμμές**, και καλύψαμε τις λεπτομέρειες του **remove specific rows** και **remove data rows** χρησιμοποιώντας Aspose.Cells. Φορτώνοντας το βιβλίο εργασίας, καλώντας `DeleteRows` και αποθηκεύοντας το αποτέλεσμα, επιτυγχάνετε αξιόπιστη **c# excel row deletion** χωρίς το βάρος του COM interop. + +Δοκιμάστε το σε πραγματικό σύνολο δεδομένων — ίσως καθαρίσετε μια αναφορά πωλήσεων ή αφαιρέσετε δοκιμαστικές γραμμές από ένα πρότυπο. Μόλις εξοικειωθείτε, πειραματιστείτε με διαγραφές υπό συνθήκη και λειτουργίες εντός πινάκων. Το API είναι αρκετά ισχυρό για απλά σενάρια αλλά και για επεξεργαστές παρτίδας επιχειρησιακού επιπέδου. + +Καλός κώδικας, και μη διστάσετε να αφήσετε σχόλιο αν αντιμετωπίσετε δυσκολίες! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/greek/net/worksheet-operations/_index.md index d42035cbf1..c63bede8a7 100644 --- a/cells/greek/net/worksheet-operations/_index.md +++ b/cells/greek/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Μάθετε να ενημερώνετε το ιστορικό καταγραφής αναθεωρήσεων σε κοινόχρηστα βιβλία εργασίας χρησιμοποιώντας το Aspose.Cells για .NET. Απλοποιήστε τη συνεργασία και διατηρήστε σαφή αρχεία εγγράφων. ### [Χρήση της ιδιότητας Sheet_SheetId του OpenXml στο φύλλο εργασίας](./utilize-sheet-sheetid-property/) Ξεκλειδώστε τη δύναμη του Excel με το Aspose.Cells για .NET. Μάθετε να χειρίζεστε αποτελεσματικά τα αναγνωριστικά φύλλων με τον αναλυτικό οδηγό μας. +### [Πώς να δημιουργήσετε φύλλα εργασίας – Οδηγός βήμα‑βήμα για δυναμική δημιουργία Excel](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Μάθετε πώς να δημιουργείτε δυναμικά φύλλα εργασίας Excel με βήμα‑βήμα οδηγίες και παραδείγματα κώδικα. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/greek/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..db00654abf --- /dev/null +++ b/cells/greek/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-21 +description: Μάθετε πώς να δημιουργείτε φύλλα εργασίας, να δημιουργείτε φύλλα Excel + με δυναμικά ονόματα φύλλων εργασίας και να αποθηκεύετε το βιβλίο εργασίας ως XLSX + χρησιμοποιώντας το Aspose.Cells σε C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: el +og_description: Πώς να δημιουργήσετε φύλλα εργασίας στο Excel χρησιμοποιώντας το Aspose.Cells, + να δημιουργήσετε φύλλα Excel με δυναμικά ονόματα φύλλων εργασίας και να αποθηκεύσετε + το βιβλίο εργασίας ως XLSX. +og_title: Πώς να δημιουργήσετε φύλλα εργασίας – Πλήρης οδηγός C# +tags: +- Aspose.Cells +- C# +- Excel automation +title: Πώς να δημιουργήσετε φύλλα εργασίας – Οδηγός βήμα‑προς‑βήμα για δυναμική δημιουργία + Excel +url: /el/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να δημιουργήσετε φύλλα εργασίας – Πλήρης οδηγός C# + +Έχετε αναρωτηθεί ποτέ **πώς να δημιουργήσετε φύλλα εργασίας** άμεσα χωρίς να ανοίγετε χειροκίνητα το Excel κάθε φορά; Δεν είστε μόνοι. Πολλοί προγραμματιστές αντιμετωπίζουν δυσκολίες όταν πρέπει να **δημιουργήσουν Excel φύλλα** από πηγές δεδομένων και θέλουν κάθε φύλλο να έχει ένα σημαντικό, δυναμικό όνομα. Τα καλά νέα; Με το Aspose.Cells μπορείτε να αυτοματοποιήσετε όλη τη διαδικασία, **να επεξεργαστείτε το master sheet**, και τελικά **να αποθηκεύσετε το workbook ως XLSX** με λίγες μόνο γραμμές κώδικα. + +Σε αυτόν τον οδηγό θα περάσουμε από ένα πραγματικό σενάριο: ξεκινώντας από ένα κενό workbook, εισάγοντας ένα smart‑marker token που λέει στο Aspose ποια φύλλα λεπτομερειών να δημιουργήσει, διαμορφώνοντας ένα μοτίβο ονομασίας ώστε κάθε φύλλο να έχει μοναδικό όνομα, και τελικά αποθηκεύοντας το αποτέλεσμα στο δίσκο. Στο τέλος θα έχετε ένα έτοιμο προς εκτέλεση πρόγραμμα C# που δημιουργεί φύλλα εργασίας, παράγει Excel φύλλα με δυναμικά ονόματα φύλλων εργασίας, και αποθηκεύει το workbook ως XLSX—χωρίς να αγγίξετε το UI. + +> **Προαπαιτούμενα** +> • .NET 6+ (ή .NET Framework 4.6+). +> • Aspose.Cells for .NET (η δωρεάν δοκιμή λειτουργεί για αυτήν την επίδειξη). +> • Βασικές γνώσεις C#—δεν απαιτούνται σύνθετες τεχνικές interop του Excel. + +## Επισκόπηση του τι θα δημιουργήσουμε + +- **Master sheet** που περιέχει ένα smart‑marker placeholder (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** που διαβάζει μια πηγή δεδομένων (π.χ., ένα `DataTable`) και δημιουργεί ένα νέο worksheet για κάθε τμήμα. +- **Δυναμικά ονόματα worksheets** ακολουθώντας το μοτίβο `Dept_{0}` όπου το `{0}` αντικαθίσταται με το όνομα του τμήματος. +- **Τελικό αρχείο XLSX** αποθηκευμένο σε φάκελο που καθορίζετε. + +Αυτό είναι όλο. Απλό, αλλά αρκετά ισχυρό για τιμολόγια, αναφορές ή οποιαδήποτε έξοδο Excel με πολλαπλές καρτέλες. + +![Διάγραμμα που δείχνει πώς ένα master sheet επεξεργάζεται για να δημιουργήσει πολλαπλά δυναμικά worksheets](/images/how-to-create-worksheets-diagram.png "Διάγραμμα δημιουργίας φύλλων εργασίας") + +*Κείμενο εναλλακτικό: εικονογράφηση του πώς να δημιουργήσετε φύλλα εργασίας με δυναμικά ονόματα worksheets χρησιμοποιώντας Aspose.Cells.* + +## Βήμα 1: Ρυθμίστε το έργο και προσθέστε το Aspose.Cells + +### Γιατί είναι σημαντικό +Πριν εκτελεστεί οποιοσδήποτε κώδικας, ο μεταγλωττιστής πρέπει να γνωρίζει πού βρίσκονται οι κλάσεις `Workbook`, `Worksheet` και `SmartMarkerProcessor`. Η προσθήκη του πακέτου NuGet εξασφαλίζει ότι έχετε το πιο πρόσφατο, πλήρως εξοπλισμένο API. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Συμβουλή:** Αν χρησιμοποιείτε Visual Studio, κάντε δεξί‑κλικ στο έργο → *Manage NuGet Packages* → αναζητήστε *Aspose.Cells* και εγκαταστήστε την πιο πρόσφατη σταθερή έκδοση. + +## Βήμα 2: Δημιουργήστε ένα νέο Workbook και το Master Sheet + +### Τι κάνουμε +Ξεκινάμε με ένα καθαρό workbook, στη συνέχεια παίρνουμε το πρώτο worksheet (δείκτης 0). Αυτό το φύλλο θα λειτουργήσει ως **master sheet** που περιέχει το smart‑marker token. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +Η κλάση `Workbook` είναι το δοχείο για όλα τα worksheets. Από προεπιλογή δημιουργεί ένα φύλλο με όνομα *Sheet1*· η μετονομασία του σε “Master” κάνει το τελικό αρχείο πιο εύκολο στην περιήγηση. + +## Βήμα 3: Εισάγετε ένα Smart‑Marker Token για τα ονόματα των φύλλων λεπτομερειών + +### Γιατί να χρησιμοποιήσετε smart‑marker; +Τα smart markers επιτρέπουν στο Aspose.Cells να αντικαθιστά placeholders με δεδομένα κατά το χρόνο εκτέλεσης. Το token `«DetailSheetNewName:Dept»` λέει στον επεξεργαστή: *«Όταν το δείτε, δημιουργήστε ένα νέο φύλλο λεπτομερειών για κάθε γραμμή στη στήλη `Dept`.»* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Μπορείτε να τοποθετήσετε το token οπουδήποτε· επιλέξαμε **A1** για σαφήνεια. Όταν ο επεξεργαστής εκτελεστεί, θα αντικαταστήσει το token με το πραγματικό όνομα του τμήματος και θα δημιουργήσει το αντίστοιχο worksheet. + +## Βήμα 4: Προετοιμάστε την πηγή δεδομένων + +### Πώς τα δεδομένα οδηγούν στη δημιουργία φύλλων +Το Aspose.Cells λειτουργεί με οποιαδήποτε πηγή δεδομένων `IEnumerable`. Για αυτήν την επίδειξη θα χρησιμοποιήσουμε ένα `DataTable` με μία στήλη που ονομάζεται `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Τι γίνεται αν έχετε περισσότερες στήλες;** +> Ο επεξεργαστής θα αγνοήσει τις επιπλέον στήλες εκτός εάν τις αναφέρετε σε πρόσθετα smart markers. Αυτό κρατά τη δημιουργία φύλλων ελαφριά. + +## Βήμα 5: Διαμορφώστε το SmartMarkerProcessor και το μοτίβο ονομασίας + +### Δυναμικά ονόματα worksheets σε δράση +Θέλουμε κάθε νέο φύλλο να ονομάζεται `Dept_Finance`, `Dept_HR`, κλπ. Η επιλογή `DetailSheetNewName` μας επιτρέπει να ορίσουμε ένα μοτίβο όπου το `{0}` αντικαθίσταται με το πραγματικό όνομα του τμήματος. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Αν ένα τμήμα εμφανιστεί δύο φορές, το Aspose θα προσθέσει αυτόματα αριθμητικό επίθημα (π.χ., `Dept_Finance_1`) για να αποφύγει διπλότυπα ονόματα φύλλων. + +## Βήμα 6: Επεξεργαστείτε το Master Sheet για να δημιουργήσετε φύλλα λεπτομερειών + +### Ο πυρήνας του **process master sheet** +Καλώντας το `Process` εκτελεί το βαριά έργο: σαρώει το master sheet για smart markers, δημιουργεί νέα worksheets, αντιγράφει τη διάταξη του master και γεμίζει καθένα με τα δεδομένα της γραμμής. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Μετά από αυτήν την κλήση, το workbook περιέχει ένα master sheet συν τέσσερα detail sheets—κάθε ένα ονομασμένο σύμφωνα με το μοτίβο μας και γεμάτο με το όνομα του τμήματος στο κελί A1. + +## Βήμα 7: Αποθηκεύστε το Workbook ως XLSX + +### Τελικό βήμα—**save workbook as XLSX** +Τώρα που τα worksheets υπάρχουν, γράφουμε το αρχείο στο δίσκο. Μπορείτε να επιλέξετε οποιοδήποτε μονοπάτι· απλώς βεβαιωθείτε ότι ο φάκελος υπάρχει. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Ανοίγοντας το `DetailSheets.xlsx` θα δείτε: + +| Όνομα Φύλλου | Κελί A1 (Περιεχόμενο) | +|--------------|----------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Περίπτωση άκρης:** Αν ο φάκελος εξόδου δεν υπάρχει, το `Save` ρίχνει μια `DirectoryNotFoundException`. Τυλίξτε την κλήση σε μπλοκ try‑catch ή δημιουργήστε τον φάκελο εκ των προτέρων. + +## Πλήρες Παράδειγμα Εργασίας + +Συνδυάζοντας όλα, εδώ είναι το πλήρες πρόγραμμα που μπορείτε να αντιγράψετε‑επικολλήσετε σε μια εφαρμογή console: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Εκτελέστε το πρόγραμμα, ανοίξτε το παραγόμενο αρχείο, και θα δείτε ακριβώς τη διάταξη που περιγράφηκε νωρίτερα. Χωρίς χειροκίνητη αντιγραφή‑επικόλληση, χωρίς COM interop—μόνο καθαρός κώδικας C# που **δημιουργεί Excel φύλλα** με **δυναμικά ονόματα worksheets**. + +## Συχνές Ερωτήσεις & Προβλήματα + +| Ερώτηση | Απάντηση | +|----------|--------| +| *Μπορώ να χρησιμοποιήσω ένα DataSet με πολλαπλούς πίνακες;* | Ναι. Περνάτε τον κατάλληλο πίνακα στο `Process` ή χρησιμοποιείτε ένα λεξικό πινάκων. | +| *Τι γίνεται αν χρειάζομαι περισσότερα από ένα smart‑marker στο master sheet;* | Τοποθετήστε πρόσθετα tokens όπως `«DetailSheetNewName:Region»` και διαμορφώστε ξεχωριστό μοτίβο ονομασίας αν χρειάζεται. | +| *Παραμένει το master sheet στο τελικό αρχείο;* | Από προεπιλογή, ναι. Αν δεν το χρειάζεστε, καλέστε `workbook.Worksheets.RemoveAt(0)` μετά την επεξεργασία. | +| *Πώς διαχειρίζεται το Aspose πολύ μεγάλα σύνολα δεδομένων;* | Μεταδίδει τα δεδομένα αποδοτικά, αλλά ίσως θελήσετε να αυξήσετε το `MemorySetting` αν φτάσετε τα όρια μνήμης. | +| *Μπορώ να εξάγω σε CSV αντί για XLSX;* | Απολύτως—χρησιμοποιήστε `workbook.Save("file.csv", SaveFormat.Csv)`. Η ίδια λογική δημιουργίας φύλλων ισχύει. | + +## Επόμενα Βήματα + +Τώρα που ξέρετε **πώς να δημιουργήσετε φύλλα εργασίας** δυναμικά, μπορείτε να εξερευνήσετε: + +- **Αποθήκευση workbook ως XLSX** με προστασία κωδικού (`workbook.Protect("pwd")`). +- **Δημιουργία Excel φύλλων** από πηγές JSON ή XML χρησιμοποιώντας `JsonDataSource` ή `XmlDataSource`. +- **Εφαρμογή στυλ** σε κάθε παραγόμενο φύλλο (γραμματοσειρές, χρώματα) μέσω αντικειμένων `Style`. +- **Συγχώνευση κελιών** ή αυτόματη εισαγωγή τύπων για συνοπτικές αναφορές. + +Κάθε μία από αυτές τις επεκτάσεις βασίζεται στην ίδια έννοια **process master sheet**, έτσι η μετάβαση θα είναι απρόσκοπτη. + +## Συμπέρασμα + +Καλύψαμε ολόκληρη τη διαδικασία: από την αρχικοποίηση ενός workbook, την εισαγωγή ενός smart‑marker, τη διαμόρφωση **δυναμικών ονομάτων worksheets**, την επεξεργασία του master sheet για **δημιουργία Excel φύλλων**, και τελικά **την αποθήκευση του workbook ως XLSX**. Το παράδειγμα είναι πλήρες, εκτελέσιμο, και παρουσιάζει βέλτιστες πρακτικές τόσο για απόδοση όσο και για συντηρησιμότητα. + +Δοκιμάστε το, προσαρμόστε το μοτίβο ονομασίας, τροφοδοτήστε το με πραγματικά επιχειρηματικά δεδομένα, και δείτε την αυτοματοποίηση του 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/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/hindi/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..e4c4d8e21d --- /dev/null +++ b/cells/hindi/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: C# में Aspose.Cells के साथ वर्कबुक की गणना कैसे करें – एक्सेल वर्कबुक + बनाना, एक्सेल सेल्स को भरना, एक्सेल फ़ॉर्मूले की गणना करना, और सॉर्ट फ़ंक्शन का + उपयोग करना सीखें। +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: hi +og_description: C# में वर्कबुक को तेज़ी से कैसे गणना करें। यह ट्यूटोरियल दिखाता है + कि एक्सेल वर्कबुक कैसे बनाएं, एक्सेल सेल्स को कैसे भरें, एक्सेल फ़ॉर्मूले कैसे गणना + करें, और सॉर्ट फ़ंक्शन का उपयोग कैसे करें। +og_title: C# में वर्कबुक कैसे गणना करें – पूर्ण सॉर्टिंग गाइड +tags: +- C# +- Aspose.Cells +- Excel Automation +title: C# में वर्कबुक कैसे गणना करें – सॉर्ट और फ़ॉर्मूला गाइड +url: /hi/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में वर्कबुक कैसे कैलकुलेट करें – सॉर्ट और फ़ॉर्मूला गाइड + +क्या आपने कभी **how to calculate workbook** मानों को बिना Excel खोले तुरंत गणना करने के बारे में सोचा है? आप अकेले नहीं हैं। कई ऑटोमेशन परिदृश्यों में आपको एक Excel फ़ाइल बनानी होती है, उसमें कुछ संख्याएँ डालनी होती हैं, उन्हें सॉर्ट करना होता है, और परिणाम को अपने .NET ऐप में वापस लाना होता है—सब प्रोग्रामेटिकली। + +इस गाइड में हम ठीक यही करेंगे: हम **create excel workbook**, **populate excel cells**, एक **SORT** फ़ॉर्मूला जोड़ेंगे, और अंत में **calculate excel formulas** करेंगे ताकि आप सॉर्टेड एरे को सीधे C# से पढ़ सकें। अंत तक आपके पास एक चलने योग्य स्निपेट होगा जिसे आप किसी भी प्रोजेक्ट में डाल सकते हैं जो Aspose.Cells (या समान लाइब्रेरी) को रेफ़रेंस करता है। + +## आवश्यकताएँ + +- .NET 6+ (कोड .NET Framework 4.7.2 पर भी काम करता है) +- Aspose.Cells for .NET (फ़्री ट्रायल NuGet पैकेज `Aspose.Cells`) +- C# सिंटैक्स की बुनियादी समझ +- Microsoft Excel की इंस्टॉल्ड कॉपी की जरूरत नहीं; लाइब्रेरी आपके लिए भारी काम करती है + +यदि आप इन सबके साथ सहज हैं, तो चलिए शुरू करते हैं। + +## वर्कबुक कैसे कैलकुलेट करें – वर्कबुक को इनिशियलाइज़ करना + +सबसे पहला काम एक नया वर्कबुक ऑब्जेक्ट बनाना है। इसे ऐसे सोचें जैसे आप एक बिल्कुल नई, खाली Excel फ़ाइल खोल रहे हों। + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Why this matters:** `Workbook` क्लास हर ऑपरेशन का एंट्री पॉइंट है—इसके बिना आप शीट, सेल या फ़ॉर्मूला नहीं जोड़ सकते। इसे सही तरीके से इनिशियलाइज़ करने से आप एक साफ़ स्लेट पर काम कर रहे होते हैं। + +## Excel वर्कबुक बनाएं और वर्कशीट तक पहुंचें + +अब वर्कबुक मौजूद है, हमें यह सुनिश्चित करना है कि हम सही वर्कशीट की ओर इशारा कर रहे हैं। अधिकांश लाइब्रेरीज़ डिफ़ॉल्ट रूप से एक ही शीट बनाती हैं जिसका नाम “Sheet1” होता है, लेकिन आप इसे रीनेम कर सकते हैं या जरूरत पड़ने पर और जोड़ सकते हैं। + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Pro tip:** शीट्स को पहले नाम देना मददगार होता है जब आप बाद में फ़ॉर्मूले में उनका रेफ़रेंस देते हैं (`'Data'!A1:A10`)। यह डिबगिंग को भी आसान बनाता है। + +## Excel कोशिकाओं में डेटा भरें + +अब हम **populate excel cells** करेंगे उन संख्याओं से जिन्हें हम सॉर्ट करना चाहते हैं। इस उदाहरण में केवल दो सेल इस्तेमाल किए गए हैं, लेकिन आप रेंज को दर्जनों पंक्तियों तक बढ़ा सकते हैं। + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Why we use `PutValue`** – यह स्वचालित रूप से डेटा टाइप (int, double, string, आदि) पहचान लेता है और उसे उचित रूप से स्टोर करता है, जिससे आपको मैन्युअल टाइप कास्टिंग से बचना पड़ता है। + +## फ़ॉर्मूला के माध्यम से SORT फ़ंक्शन लागू करें + +Excel का `SORT` फ़ंक्शन बिल्कुल वही करता है जैसा उसका नाम बताता है: यह मूल डेटा को बदले बिना एक सॉर्टेड एरे रिटर्न करता है। हम इस फ़ॉर्मूले को सेल `B1` में डालेंगे। + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Edge case note:** `SORT` एक **array** परिणाम लौटाता है। पुराने Excel संस्करणों (pre‑Office 365) में इसके लिए Ctrl+Shift+Enter की आवश्यकता होती थी। Aspose.Cells के साथ आप वर्कबुक कैलकुलेट करने पर एरे स्वचालित रूप से प्राप्त कर लेते हैं। + +## परिणाम प्राप्त करने के लिए Excel फ़ॉर्मूले कैलकुलेट करें + +इस चरण पर वर्कबुक केवल यह जानता है *क्या* कैलकुलेट करना है, लेकिन *कि* इसे करना चाहिए, यह नहीं। `CalculateFormula` को कॉल करने से इंजन हर फ़ॉर्मूला, जिसमें हमारा `SORT` भी शामिल है, को इवैल्यूएट करता है। + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**अपेक्षित कंसोल आउटपुट** + +``` +Sorted array: {2, 5} +``` + +> **What just happened?** +> 1. वर्कबुक ने एक इंटरनल कैलकुलेशन इंजन बनाया। +> 2. `SORT` फ़ॉर्मूले ने रेंज `A1:A2` को जांचा। +> 3. इंजन ने एक नया एरे जेनरेट किया, जिसे हमने `B1` से प्राप्त किया। + +यदि आप `A1` और `A2` में मान बदलते हैं (या रेंज बढ़ाते हैं) और `CalculateFormula` को फिर से चलाते हैं, तो आउटपुट स्वचालित रूप से अपडेट हो जाएगा—कोई अतिरिक्त कोड नहीं चाहिए। + +## बड़े डेटा सेट पर Sort फ़ंक्शन का उपयोग करें (वैकल्पिक) + +अधिकांश वास्तविक‑दुनिया के परिदृश्य दो से अधिक पंक्तियों को शामिल करते हैं। यहाँ एक त्वरित बदलाव है जो किसी भी संख्या में एंट्रीज़ के लिए काम करता है: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Why you might need this:** बड़े रेंज को सॉर्ट करने से आप लीडरबोर्ड बना सकते हैं, फाइनेंशियल डेटा को रैंक‑ऑर्डर कर सकते हैं, या आगे की प्रोसेसिंग से पहले इम्पोर्टेड CSV को साफ़ कर सकते हैं। + +## सामान्य समस्याएँ और उन्हें कैसे टालें + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **`#VALUE!` in B1** | `SORT` फ़ॉर्मूला एक खाली या गैर‑संख्यात्मक रेंज को रेफ़रेंस कर रहा है। | सुनिश्चित करें कि स्रोत रेंज की हर सेल में एक संख्या या ऐसा टेक्स्ट हो जिसे सॉर्ट किया जा सके। | +| **Array truncation** | बिना कास्ट किए एक ही सेल से एरे पढ़ने की कोशिश। | `worksheet.Cells["B1"].Value` को `object[]` (या उपयुक्त टाइप) में कास्ट करें। | +| **Performance slowdown** | हर छोटे बदलाव के बाद बड़े वर्कबुक को पुनः‑कैल्कुलेट करना। | शीट में बदलाव समाप्त करने के बाद ही `CalculateFormula` कॉल करें, या स्कोप सीमित करने के लिए `CalculateFormulaOptions` का उपयोग करें। | + +## पूरा कार्यशील उदाहरण (कॉपी‑पेस्ट तैयार) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Result screenshot** +> ![Excel में वर्कबुक परिणाम कैसे कैलकुलेट करें](https://example.com/images/sorted-result.png "Excel में वर्कबुक परिणाम कैसे कैलकुलेट करें") + +ऊपर की तस्वीर में कैलकुलेशन के बाद वर्कबुक दिखाया गया है—सेल **B1** में सॉर्टेड एरे `{2, 5}` मौजूद है। + +## निष्कर्ष + +हमने अभी-अभी **how to calculate workbook** मानों को प्रोग्रामेटिकली कवर किया: एक Excel वर्कबुक बनाना, Excel कोशिकाओं को भरना, एक `SORT` फ़ॉर्मूला एम्बेड करना, और अंत में **calculate Excel formulas** करके सॉर्टेड डेटा निकालना। यह तरीका छोटे दो‑सेल उदाहरणों के लिए काम करता है और बड़े डेटा सेट्स के लिए भी सहजता से स्केल करता है। + +अब आगे क्या? इसे `FILTER`, `UNIQUE` जैसे अन्य फ़ंक्शन्स या `WorksheetFunction` के माध्यम से कस्टम VBA‑स्टाइल लॉजिक के साथ मिलाकर देखें। आप वर्कबुक को डिस्क पर भी लिख सकते हैं (`workbook.Save("Sorted.xlsx")`) और विज़ुअल वेरिफिकेशन के लिए 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-and-rendering/_index.md b/cells/hindi/net/conversion-and-rendering/_index.md index 1231d189f2..74f73145a2 100644 --- a/cells/hindi/net/conversion-and-rendering/_index.md +++ b/cells/hindi/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ इस चरण-दर-चरण मार्गदर्शिका के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel वर्कशीट को SVG में परिवर्तित करना सीखें। Excel को SVG में रेंडर करने की चाहत रखने वाले .NET डेवलपर्स के लिए यह बिल्कुल सही है। ### [.NET में Excel को MHTML में परिवर्तित करना](./converting-excel-to-mhtml/) जानें कि Aspose.Cells के साथ .NET में Excel फ़ाइलों को MHTML प्रारूप में कुशलतापूर्वक कैसे परिवर्तित किया जाए, जिससे आपकी रिपोर्टिंग और डेटा-साझाकरण क्षमताएं बढ़ेंगी। +### [Excel से इमेज बनाएं – C# में पिवट को PNG में निर्यात करें](./create-image-from-excel-export-pivot-to-png-in-c/) +Aspose.Cells का उपयोग करके Excel पिवट टेबल को PNG इमेज में बदलना सीखें। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/hindi/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..06c33990d2 --- /dev/null +++ b/cells/hindi/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells का उपयोग करके C# में Excel से इमेज बनाएं। जानें कि Excel + को इमेज में कैसे बदलें, पिवट को एक्सपोर्ट करें, और पूर्ण, चलाने योग्य उदाहरण के + साथ इमेज को PNG के रूप में कैसे सहेजें। +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: hi +og_description: C# में Excel से जल्दी इमेज बनाएं। यह गाइड दिखाता है कि Excel को इमेज + में कैसे बदलें, पिवट निर्यात करें, और स्पष्ट कोड के साथ इमेज को PNG के रूप में सहेजें। +og_title: Excel से इमेज बनाएं – C# में पिवट को PNG में निर्यात करें +tags: +- C# +- Aspose.Cells +- Excel automation +title: Excel से छवि बनाएं – C# में पिवट को PNG में निर्यात करें +url: /hi/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel से इमेज बनाएं – Pivot को PNG में एक्सपोर्ट करें C# में + +क्या आपको कभी **Excel से इमेज बनानी** पड़ी है लेकिन आप नहीं जानते थे कि कौन सा API उपयोग करें? आप अकेले नहीं हैं—कई डेवलपर्स को वही समस्या आती है जब वे लाइव Pivot टेबल को शेयर करने योग्य PNG में बदलने की कोशिश करते हैं। + +इस ट्यूटोरियल में हम एक पूर्ण, तैयार‑चलाने‑योग्य समाधान के माध्यम से चलेंगे जो **Excel को इमेज में बदलता** है, **Pivot को एक्सपोर्ट करने का तरीका** दिखाता है, और **इमेज को PNG फ़ाइल के रूप में सेव करने** की व्याख्या करता है। अंत तक आपके पास एक ही मेथड होगा जो पूरा काम कर देगा, साथ ही उन एज केसों के लिए टिप्स भी मिलेंगे जिनका आप सामना कर सकते हैं। + +## आपको क्या चाहिए + +- **Aspose.Cells for .NET** (NuGet पैकेज `Aspose.Cells`)। यह एक कमर्शियल लाइब्रेरी है लेकिन फ्री इवैल्यूएशन मोड प्रदान करती है—टेस्टिंग के लिए एकदम सही। +- .NET 6+ (या .NET Framework 4.6+). +- एक साधारण Excel वर्कबुक (`Pivot.xlsx`) जिसमें कम से कम एक Pivot टेबल हो। +- आपका पसंदीदा IDE—Visual Studio, Rider, या यहाँ तक कि VS Code भी काम करेगा। + +बस इतना ही। कोई अतिरिक्त DLLs नहीं, कोई COM इंटरऑप नहीं, और कोई गंदे Excel‑ऑटोमेशन ट्रिक्स नहीं। + +अब, कोड में डुबकी लगाते हैं। + +## चरण 1: वर्कबुक लोड करें – Excel से इमेज बनाएं + +सबसे पहले हम वह Excel फ़ाइल खोलते हैं जिसमें Pivot टेबल है। यह चरण महत्वपूर्ण है क्योंकि रेंडरर एक इन‑मेमोरी `Workbook` ऑब्जेक्ट के खिलाफ काम करता है। + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*क्यों यह महत्वपूर्ण है:* वर्कबुक लोड करने से हमें **Pivot** और सभी फ़ॉर्मेटिंग तक पहुँच मिलती है, जिसे बाद में **Excel को इमेज में बदलते** समय सम्मानित किया जाएगा। यदि आप इसे स्किप करेंगे, तो रेंडरर के पास काम करने के लिए कुछ नहीं रहेगा। + +## चरण 2: एक्सपोर्ट विकल्प कॉन्फ़िगर करें – Excel को इमेज में बदलें + +अब हम Aspose को बताते हैं कि अंतिम चित्र कैसा दिखना चाहिए। `ImageOrPrintOptions` क्लास हमें PNG चुनने, DPI सेट करने, और बैकग्राउंड कलर को नियंत्रित करने की सुविधा देती है। + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*क्यों यह महत्वपूर्ण है:* उच्च DPI सेट करने से **Excel को PNG में एक्सपोर्ट** करने पर इमेज स्पष्ट रहती है, भले ही Pivot में कई पंक्तियाँ हों। यदि फ़ाइल आकार की चिंता है तो आप DPI कम कर सकते हैं। + +## चरण 3: वर्कशीट रेंडर करें – Pivot को कैसे एक्सपोर्ट करें + +अब प्रक्रिया का मुख्य भाग आता है: वर्कशीट (जिसमें Pivot है) को इमेज में बदलना। `WorksheetRender` क्लास इस भारी काम को संभालती है। + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*क्यों यह महत्वपूर्ण है:* यही वह जगह है जहाँ हम **Pivot को एक्सपोर्ट** करके विज़ुअल फॉर्मेट में बदलते हैं। रेंडरर सभी Pivot फ़ॉर्मेटिंग, स्लाइसर, और कंडीशनल स्टाइल्स को सम्मानित करता है, इसलिए PNG बिल्कुल वही दिखेगा जैसा आप Excel में देखते हैं। + +## चरण 4: सब कुछ एक साथ रखें – इमेज को कैसे सेव करें + +अंत में, हम एक सिंगल पब्लिक मेथड एक्सपोज़ करते हैं जो हर हिस्से को जोड़ता है। यही मेथड आप अपने ऐप, सर्विस, या कंसोल टूल से कॉल करेंगे। + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### पूर्ण कार्यशील उदाहरण + +एक नया कंसोल प्रोजेक्ट बनाएं, NuGet पैकेज `Aspose.Cells` जोड़ें, फिर नीचे दिया गया `Program.cs` फ़ाइल डालें: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**अपेक्षित परिणाम:** प्रोग्राम चलाने के बाद, `PivotImage.png` उस फ़ोल्डर में दिखाई देगा जिसे आपने निर्दिष्ट किया था, और Pivot टेबल का पिक्सेल‑परफेक्ट स्नैपशॉट दिखाएगा। + +![Excel से इमेज बनाने का उदाहरण](https://example.com/placeholder.png "Excel से इमेज बनाने का उदाहरण") + +*Alt text:* Excel से इमेज बनाने का उदाहरण जिसमें एक्सपोर्ट किया गया Pivot टेबल PNG के रूप में दिखाया गया है। + +## सामान्य प्रश्न एवं एज केस + +### यदि मेरी वर्कबुक में कई वर्कशीट्स हों तो क्या करें? + +हेल्पर वर्तमान में `Worksheets[0]` को लेता है। किसी विशिष्ट शीट को टार्गेट करने के लिए, शीट का नाम पास करें: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG धुंधला है—इसे कैसे ठीक करें? + +`GetImageOptions` में `HorizontalResolution` और `VerticalResolution` बढ़ाएँ। 300–600 DPI के मान आमतौर पर स्पष्ट परिणाम देते हैं। याद रखें, उच्च DPI का मतलब फ़ाइल आकार बड़ा होना है। + +### मेरा Pivot एक से अधिक पेज में फैला है—क्या मैं सभी पेज एक्सपोर्ट कर सकता हूँ? + +हां। `renderer.PageCount` पर लूप करें और प्रत्येक पेज के लिए `ToImage(pageIndex, ...)` कॉल करें, या `OnePagePerSheet = false` सेट करके प्रत्येक पेज के लिए अलग इमेज प्राप्त करें। + +### मुझे शीट का केवल एक हिस्सा चाहिए (जैसे, एक विशिष्ट रेंज)? + +`ImageOrPrintOptions` में `PrintArea` सेट करें: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +इस तरह आप केवल उस एरिया को **Excel को इमेज में बदलते** हुए एक्सपोर्ट कर सकते हैं जिसमें आपकी रुचि है। + +### क्या यह .xls (Excel 97‑2003) फ़ाइलों के साथ काम करता है? + +बिल्कुल। Aspose.Cells फ़ाइल फॉर्मेट को एब्स्ट्रैक्ट करता है, इसलिए आप `.xls`, `.xlsx`, `.xlsm`, या यहाँ तक कि `.ods` फ़ाइलें दे सकते हैं और फिर भी **Excel को PNG में एक्सपोर्ट** कर सकते हैं। + +## प्रो टिप्स एवं सावधानियां + +- **लाइसेंस का महत्व**: इवैल्यूएशन मोड में Aspose वॉटरमार्क जोड़ता है। प्रोडक्शन के लिए उचित लाइसेंस डिप्लॉय करें। +- **मेमोरी उपयोग**: बड़े वर्कबुक को रेंडर करना मेमोरी‑इंटेन्सिव हो सकता है। `Workbook` ऑब्जेक्ट को तुरंत डिस्पोज़ करें या `using` ब्लॉक में रैप करें। +- **थ्रेड सेफ़्टी**: `Workbook` थ्रेड‑सेफ़ नहीं है। यदि आप वेब सर्विस में हैं तो प्रत्येक रिक्वेस्ट के लिए नया इंस्टेंस बनाएं। +- **इमेज फॉर्मेट लचीलापन**: यदि आपको JPEG या BMP चाहिए, तो बस `GetImageOptions` में `ImageFormat` को बदल दें। + +## निष्कर्ष + +अब आपके पास एक ठोस, एंड‑टू‑एंड रेसिपी है **Excel से इमेज बनाने** की, विशेष रूप से **Pivot डेटा को हाई‑क्वालिटी PNG** में एक्सपोर्ट करने की। ऊपर दिया गया स्निपेट पूर्ण, रन‑एबल कोड दिखाता है, **इमेज को कैसे सेव करें** को समझाता है, और मल्टी‑शीट या कस्टम प्रिंट एरिया जैसे वैरिएशन को कवर करता है। + +अगला कदम? इस एक्सपोर्टर को ईमेल सर्विस के साथ चेन करें ताकि PNG ऑटोमैटिकली भेजा जा सके, या `ImageOrPrintOptions` के साथ प्रयोग करके PNG की बजाय PDF जनरेट करें। वही पैटर्न कई फॉर्मेट्स में **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/converting-excel-files-to-other-formats/_index.md b/cells/hindi/net/converting-excel-files-to-other-formats/_index.md index cfb004f8c0..451e2e86c7 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 @@ -46,6 +46,8 @@ Aspose.Cells का उपयोग करके .NET में CSV को JSON में बदलने का तरीका जानें। आसानी से समझ में आने वाले कोड उदाहरणों के साथ डेटा रूपांतरण के लिए चरण-दर-चरण मार्गदर्शिका। ### [.NET में प्रोग्रामेटिक रूप से Excel फ़ाइल को DOCX में परिवर्तित करना](./converting-excel-file-to-docx/) इस चरण-दर-चरण मार्गदर्शिका में Aspose.Cells for .NET का उपयोग करके Excel फ़ाइलों को DOCX में प्रोग्रामेटिक रूप से परिवर्तित करना सीखें। रिपोर्ट निर्माण और डेटा साझा करने के लिए बिल्कुल सही। +### [C# के साथ Excel को Docx के रूप में सहेजें – पूर्ण चरण‑दर‑चरण गाइड](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Aspose.Cells का उपयोग करके .NET में Excel को Docx फ़ॉर्मेट में बदलने का तरीका जानें। चरण‑दर‑चरण कोड उदाहरणों के साथ पूर्ण गाइड। ### [.NET में टूलटिप के साथ Excel फ़ाइल को HTML में परिवर्तित करना](./converting-excel-file-to-html-with-tooltip/) कुछ सरल चरणों में .NET के लिए Aspose.Cells का उपयोग करके टूलटिप्स के साथ Excel को HTML में बदलें। इंटरैक्टिव Excel डेटा के साथ अपने वेब ऐप्स को सहजता से बेहतर बनाएँ। ### [.NET में प्रोग्रामेटिक रूप से Excel फ़ाइल को Markdown में परिवर्तित करना](./converting-excel-file-to-markdown/) diff --git a/cells/hindi/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/hindi/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..04ff118b6b --- /dev/null +++ b/cells/hindi/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-21 +description: C# में Excel को Docx के रूप में सहेजें — सीखें कैसे Excel को Word में + बदलें, चार्ट एम्बेड करें, और Aspose.Cells का उपयोग करके C# में Excel वर्कबुक लोड + करें। +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: hi +og_description: पहले वाक्य में C# में Excel को Docx के रूप में सहेजना समझाया गया है। + इस ट्यूटोरियल का अनुसरण करें ताकि Excel को Word में बदल सकें, चार्ट एम्बेड कर सकें, + और C# में Excel वर्कबुक लोड कर सकें। +og_title: C# के साथ Excel को Docx के रूप में सहेजें – पूर्ण गाइड +tags: +- C# +- Aspose.Cells +- Document Conversion +title: C# के साथ Excel को Docx के रूप में सहेजें – पूर्ण चरण‑दर‑चरण मार्गदर्शिका +url: /hi/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# के साथ Excel को Docx के रूप में सहेजें – पूर्ण चरण‑दर‑चरण गाइड + +क्या आपको कभी **Excel को Docx के रूप में सहेजने** की ज़रूरत पड़ी है लेकिन आप नहीं जानते थे कि कहाँ से शुरू करें? आप अकेले नहीं हैं—बहुत से डेवलपर्स को वही समस्या आती है जब वे *Excel को Word में बदलना* चाहते हैं और साथ ही चार्ट्स को बरकरार रखना चाहते हैं। इस ट्यूटोरियल में हम आपको आवश्यक सटीक कोड दिखाएंगे, बताएंगे कि प्रत्येक लाइन क्यों महत्वपूर्ण है, और दिखाएंगे कि Excel चार्ट्स को बिना गुणवत्ता खोए कैसे एम्बेड करें। + +हम **load Excel workbook C#** पर कुछ अतिरिक्त टिप्स भी देंगे, ताकि अंत तक आप किसी भी .NET प्रोजेक्ट में Excel को Docx में बदलने में सहज महसूस करें। कोई अस्पष्ट संदर्भ नहीं, सिर्फ एक ठोस, चलाने योग्य उदाहरण जो आप अभी कॉपी‑पेस्ट कर सकते हैं। + +--- + +## इस गाइड में क्या-क्या शामिल है + +- Aspose.Cells (या कोई भी संगत लाइब्रेरी) के साथ मौजूदा `.xlsx` फ़ाइल लोड करना। +- रूपांतरण से पहले वर्कशीट्स या चार्ट्स में वैकल्पिक परिवर्तन करना। +- एम्बेडेड चार्ट्स को बरकरार रखते हुए वर्कबुक को `.docx` फ़ाइल के रूप में सहेजना। +- आउटपुट की जाँच करना और बड़े वर्कबुक या असमर्थित चार्ट प्रकारों जैसी सामान्य किनारी स्थितियों को संभालना। + +यदि आप सोच रहे हैं **आपको Excel को Docx में बदलने की क्यों ज़रूरत है**, तो उन रिपोर्टों के बारे में सोचें जिन्हें आपको गैर‑तकनीकी हितधारकों को भेजना होता है—Word दस्तावेज़ सार्वभौमिक रूप से स्वीकार्य होते हैं, और वे आपके चार्ट्स की दृश्य सटीकता को बनाए रखते हैं। चलिए शुरू करते हैं। + +--- + +## पूर्वापेक्षाएँ – Load Excel Workbook C# + +कोड लिखने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित हैं: + +| आवश्यकता | कारण | +|-------------|--------| +| **.NET 6.0 या बाद का** | आधुनिक रनटाइम, बेहतर प्रदर्शन, और Aspose.Cells के लिए पूर्ण समर्थन। | +| **Aspose.Cells for .NET** (NuGet पैकेज `Aspose.Cells`) | Excel पढ़ने और DOCX में निर्यात करने के लिए `Workbook` क्लास प्रदान करता है। | +| **Visual Studio 2022** (या आपका पसंदीदा कोई भी IDE) | डिबगिंग और IntelliSense के लिए उपयोगी। | +| **चार्ट्स वाला Excel फ़ाइल** (`AdvancedCharts.xlsx`) | *embed excel charts* फ़ीचर को क्रियान्वित होते देखना। | + +आप पैकेज मैनेजर कंसोल के माध्यम से लाइब्रेरी इंस्टॉल कर सकते हैं: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** यदि आप CI/CD पाइपलाइन पर हैं, तो पैकेज को अपने `*.csproj` में जोड़ें ताकि रिस्टोर्स स्वतः हो जाएँ। + +--- + +## चरण 1 – Excel वर्कबुक लोड करें (Save Excel as Docx यहाँ से शुरू होता है) + +पहला काम हम स्रोत वर्कबुक को लोड करना है। यहीं पर **load excel workbook c#** वाक्यांश का महत्व है। + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Why this matters:** फ़ाइल को लोड करने से आपको प्रत्येक वर्कशीट, चार्ट और स्टाइल तक पहुँच मिलती है। इस चरण के बिना कुछ भी बदलने को नहीं रहता, और API आपके एम्बेडेड ग्राफ़िक्स को संरक्षित नहीं कर पाती। + +--- + +## चरण 2 – (वैकल्पिक) रूपांतरण से पहले वर्कबुक को समायोजित करें + +आप शीट का नाम बदलना, कॉलम छिपाना, या यहाँ तक कि चार्ट का शीर्षक बदलना चाह सकते हैं। यह चरण वैकल्पिक है लेकिन दिखाता है कि रूपांतरण कितना लचीला हो सकता है। + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Edge case:** कुछ पुराने चार्ट प्रकार (जैसे Radar) Word में पूरी तरह से रेंडर नहीं हो सकते। रूपांतरण के बाद अपने विशिष्ट चार्ट्स का परीक्षण करें। + +--- + +## चरण 3 – वर्कबुक को Word दस्तावेज़ के रूप में सहेजें (मुख्य “Save Excel as Docx” क्रिया) + +अब सत्य का क्षण आया: हम वास्तव में **Excel को Docx के रूप में सहेजते** हैं। + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +जब यह चलाया जाता है, Aspose.Cells प्रत्येक वर्कशीट को Word फ़ाइल के भीतर एक तालिका के रूप में लिखता है और प्रत्येक चार्ट को उच्च‑रिज़ॉल्यूशन इमेज के रूप में एम्बेड करता है। परिणामस्वरूप एक पूरी तरह से संपादन योग्य `.docx` बनता है जो मूल Excel दृश्य जैसा ही दिखता है। + +> **Why choose DOCX over PDF?** DOCX प्राप्तकर्ताओं को टेक्स्ट संपादित करने या बाद में चार्ट बदलने की सुविधा देता है, जबकि PDF एक स्थिर स्नैपशॉट होता है। + +--- + +## चरण 4 – आउटपुट सत्यापित करें और सामान्य समस्याओं का निवारण करें + +रूपांतरण समाप्त होने के बाद, `ChartsInWord.docx` को Microsoft Word में खोलें: + +1. **जाँचें कि प्रत्येक वर्कशीट अलग-अलग सेक्शन के रूप में दिखाई देती है** – आपको अपनी Excel डेटा को प्रतिबिंबित करने वाली तालिकाएँ दिखनी चाहिए। +2. **पुष्टि करें कि चार्ट एम्बेडेड हैं** – उन्हें चयन योग्य इमेज होना चाहिए, न कि टूटे हुए प्लेसहोल्डर। +3. **यदि कोई चार्ट गायब है**, तो सुनिश्चित करें कि वह चार्ट प्रकार Aspose.Cells द्वारा समर्थित है (देखें [official compatibility list](https://docs.aspose.com/cells/net/supported-chart-types/))। + +> **Pro tip:** बड़े वर्कबुक के लिए, `OutOfMemoryException` से बचने हेतु Aspose.Cells की `MemorySetting` को बढ़ाने पर विचार करें: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## पूरा कार्यशील उदाहरण (कॉपी‑पेस्ट तैयार) + +नीचे पूरा प्रोग्राम दिया गया है, जिसे आप तुरंत कंपाइल कर सकते हैं। `YOUR_DIRECTORY` को अपने मशीन पर वास्तविक फ़ोल्डर पथ से बदलें। + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Expected result:** एक Word दस्तावेज़ (`ChartsInWord.docx`) जिसमें सभी वर्कशीट्स तालिकाओं के रूप में और प्रत्येक चार्ट एम्बेडेड, उच्च‑रिज़ॉल्यूशन इमेज के रूप में हो। इसे Word में खोलें, और आपको वही दृश्य लेआउट मिलेगा जो Excel में था। + +--- + +## अक्सर पूछे जाने वाले प्रश्न (FAQ) + +**Q: क्या मैं कई Excel फ़ाइलों को लूप में बदल सकता हूँ?** +A: बिल्कुल। रूपांतरण लॉजिक को `foreach (var file in Directory.GetFiles(...))` लूप में रखें और समान `Workbook` इंस्टेंस पैटर्न को पुन: उपयोग करें। + +**Q: क्या यह `.xls` फ़ाइलों के साथ भी काम करता है?** +A: हाँ—Aspose.Cells लेगेसी फ़ॉर्मेट को सपोर्ट करता है। केवल स्रोत एक्सटेंशन बदलें; वही `SaveFormat.Docx` कॉल लागू होता है। + +**Q: यदि मैं रूपांतरण के दौरान फ़ॉर्मूले रखना चाहता हूँ तो क्या होगा?** +A: Word मूल रूप से Excel फ़ॉर्मूले को सपोर्ट नहीं करता। रूपांतरण फ़ॉर्मूलों को उनके गणना किए हुए मानों में बदल देता है। यदि आपको लाइव कैलकुलेशन चाहिए, तो वर्कबुक को OLE ऑब्जेक्ट के रूप में एम्बेड करने पर विचार करें। + +**Q: क्या चार्ट की इमेज रिज़ॉल्यूशन को नियंत्रित करने का कोई तरीका है?** +A: सहेजने से पहले `ImageOrPrintOptions` का उपयोग करें: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## बोनस: Excel चार्ट्स को सीधे Word में एम्बेड करना (Save Excel as Docx से आगे) + +यदि आप चाहते हैं कि चार्ट Word में संपादन योग्य बना रहे, तो आप पूरे Excel शीट को OLE ऑब्जेक्ट के रूप में एम्बेड कर सकते हैं: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +यह तकनीक *embed excel charts* को लाइव ऑब्जेक्ट्स के रूप में एम्बेड करती है, जिससे अंतिम उपयोगकर्ता Word से सीधे डबल‑क्लिक करके Excel में उन्हें संपादित कर सकते हैं। जब आपको इंटरैक्टिविटी चाहिए, तो यह एक उपयोगी विकल्प है। + +--- + +## निष्कर्ष + +अब आपके पास C# का उपयोग करके **Excel को docx के रूप में सहेजने** का एक ठोस, अंत‑से‑अंत समाधान है। ट्यूटोरियल ने वर्कबुक लोड करना, वैकल्पिक समायोजन, वास्तविक सहेजने की प्रक्रिया, सत्यापन चरण, और संपादन योग्य परिदृश्यों के लिए चार्ट एम्बेड करने का त्वरित परिचय शामिल किया। ऊपर दिया गया कोड फॉलो करके आप **Excel को Word में बदल सकते** हैं, प्रत्येक चार्ट को संरक्षित रख सकते हैं, और बड़े फ़ाइलों को सहजता से संभाल सकते हैं। + +अगली चुनौती के लिए तैयार हैं? बैच रूपांतरण को स्वचालित करने, इस लॉजिक को ASP.NET Core API में एकीकृत करने, या **convert Excel to docx** को मल्टी‑शीट डैशबोर्ड के लिए एक्सप्लोर करने की कोशिश करें। आपने अभी जो कौशल हासिल किए हैं, वे किसी भी दस्तावेज़‑ऑटोमेशन प्रोजेक्ट की नींव हैं। + +कोई प्रश्न या ऐसी जटिल वर्कबुक है जो बदलने से इनकार करती है? टिप्पणी छोड़ें, हम साथ मिलकर समस्या हल करेंगे। Happy coding! + +![Excel वर्कबुक से Word DOCX फ़ाइल तक का प्रवाह दर्शाता आरेख – save excel as docx प्रक्रिया चित्रण](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..815b46e10a 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 में दस्तावेज़ गुण जोड़ना सीखें। +### [.NET में XLSB को सहेजना – C# में कस्टम प्रॉपर्टी जोड़ना](./how-to-save-xlsb-add-custom-property-in-c/) +C# में कस्टम प्रॉपर्टी जोड़कर XLSB फ़ाइल को सहेजने की चरण-दर-चरण गाइड। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/hindi/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..3ccb53eca9 --- /dev/null +++ b/cells/hindi/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: C# में xlsb फ़ाइलें कैसे सहेजें और साथ में ProjectId जैसी कस्टम प्रॉपर्टी + जोड़ें, यह सीखें। यह गाइड दिखाता है कि Excel वर्कबुक कैसे बनाएं, कस्टम प्रॉपर्टी + जोड़ें, और उसे सत्यापित करें। +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: hi +og_description: C# का उपयोग करके xlsb फ़ाइलें कैसे सहेजें और ProjectId जैसी कस्टम + प्रॉपर्टी कैसे जोड़ें, जानें। पूर्ण कोड के साथ चरण‑दर‑चरण मार्गदर्शिका। +og_title: XLSB को कैसे सहेजें – C# में कस्टम प्रॉपर्टी जोड़ें +tags: +- C# +- Aspose.Cells +- Excel automation +title: XLSB को कैसे सहेजें – C# में कस्टम प्रॉपर्टी जोड़ें +url: /hi/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# XLSB को कैसे सहेजें – C# में कस्टम प्रॉपर्टी जोड़ें + +क्या आपने कभी सोचा है **how to save xlsb** फ़ाइलों को सहेजते समय साथ में कुछ मेटाडेटा भी छुपा सकते हैं? शायद आप एक रिपोर्टिंग इंजन बना रहे हैं जिसे एक छुपा हुआ ProjectId चाहिए, या आप केवल वर्कशीट्स को डाउनस्ट्रीम प्रोसेसिंग के लिए टैग करना चाहते हैं। **How to save xlsb** कोई जटिल विज्ञान नहीं है, लेकिन इसे कस्टम प्रॉपर्टी के साथ मिलाने से एक छोटा ट्विस्ट जुड़ जाता है जिसे कई डेवलपर्स नजरअंदाज़ कर देते हैं। + +इस ट्यूटोरियल में हम एक Excel वर्कबुक बनाना, एक कस्टम प्रॉपर्टी जोड़ना (हाँ, *add custom property*), फ़ाइल को **XLSB** बाइनरी वर्कबुक के रूप में सहेजना, और अंत में इसे फिर से लोड करके प्रॉपर्टी की मौजूदगी की पुष्टि करना सीखेंगे। साथ ही हम **how to add custom property** जैसे ProjectId के मान जोड़ने पर भी चर्चा करेंगे, ताकि आप भविष्य के प्रोजेक्ट्स के लिए एक पुन: उपयोग योग्य पैटर्न के साथ निकलें। + +> **Pro tip:** यदि आप पहले से ही Aspose.Cells लाइब्रेरी (नीचे दिया गया कोड इसका उपयोग करता है) का उपयोग कर रहे हैं, तो आपको कस्टम प्रॉपर्टीज़ के लिए नेटिव सपोर्ट मिल जाता है, बिना किसी COM इंटरऑप की परेशानी के। + +--- + +## Prerequisites + +- .NET 6+ (या .NET Framework 4.6+)। +- Aspose.Cells for .NET – NuGet के माध्यम से इंस्टॉल करें: `Install-Package Aspose.Cells`। +- बेसिक C# ज्ञान – कुछ भी फैंसी नहीं, बस कुछ `using` स्टेटमेंट्स। + +बस इतना ही। कोई Office इंस्टॉलेशन नहीं, कोई इंटरऑप नहीं, सिर्फ़ शुद्ध मैनेज्ड कोड। + +--- + +## चरण 1: XLSB को कैसे सहेजें – Excel वर्कबुक बनाएं + +सबसे पहला काम है एक नया वर्कबुक ऑब्जेक्ट बनाना। इसे ऐसे समझें जैसे आप एक खाली Excel फ़ाइल खोल रहे हैं जो केवल मेमोरी में रहता है, जब तक आप इसे डिस्क पर लिखने का फैसला नहीं करते। + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +वर्कबुक से शुरू क्यों करें? क्योंकि **create excel workbook** किसी भी आगे की मैनिपुलेशन की नींव है—चाहे आप बाद में फ़ॉर्मूले, चार्ट या कस्टम प्रॉपर्टीज़ जोड़ें। `Workbook` क्लास पूरी फ़ाइल को एब्स्ट्रैक्ट करता है, जबकि `Worksheets` आपको व्यक्तिगत टैब्स तक पहुँच देता है। + +--- + +## चरण 2: वर्कशीट में कस्टम प्रॉपर्टी जोड़ें + +अब आता है मज़ेदार हिस्सा—**add custom property**। Aspose.Cells में आप सीधे वर्कशीट (या वर्कबुक) पर एक प्रॉपर्टी अटैच कर सकते हैं। यहाँ हम एक न्यूमेरिक ProjectId स्टोर करेंगे जिसे डाउनस्ट्रीम सर्विसेज़ बिना दिखाई देने वाली सेल्स को छुए पढ़ सकें। + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? बस `CustomProperties.Add(name, value)` कॉल करें। API स्वचालित रूप से नीचे के XML को संभाल लेता है, इसलिए आपको लो‑लेवल डिटेल्स की चिंता नहीं करनी पड़ती। यह वह सबसे सुरक्षित तरीका है जिससे आप मेटाडेटा एम्बेड कर सकते हैं जो एंड‑यूज़र को दिखाई नहीं देता। + +--- + +## चरण 3: वर्कबुक को XLSB के रूप में सहेजें + +वर्कबुक तैयार है और कस्टम प्रॉपर्टी जुड़ गई है, अब समय है **how to save xlsb** का। XLSB फॉर्मेट डेटा को बाइनरी रूप में स्टोर करता है, जो आमतौर पर क्लासिक XLSX की तुलना में छोटा और तेज़ खोलने योग्य होता है। + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +XLSB के रूप में सहेजना इतना ही आसान है जितना `Save` मेथड में `SaveFormat.Xlsb` पास करना। यदि आप सोच रहे हैं कि क्या यह कस्टम प्रॉपर्टी को हटा देगा—निश्चिंत रहें, Aspose.Cells बाइनरी फ़ाइल में वर्कबुक‑लेवल और वर्कशीट‑लेवल दोनों प्रॉपर्टीज़ को संरक्षित रखता है। + +--- + +## चरण 4: कस्टम प्रॉपर्टी को सत्यापित करें + +एक अच्छी आदत है फ़ाइल को फिर से लोड करना और यह पुष्टि करना कि प्रॉपर्टी राउंड‑ट्रिप में बनी रही। यह यह भी दिखाता है कि **how to add custom property** बाद में अपडेट करने की आवश्यकता होने पर कैसे किया जा सकता है। + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +यदि कंसोल `12345` प्रिंट करता है, तो आपने सफलतापूर्वक **how to save xlsb** *और* **add project id** एक ही बार में कर लिया है। प्रॉपर्टी फ़ाइल के आंतरिक मेटाडेटा में रहती है, UI में दिखाई नहीं देती लेकिन कोड द्वारा पूरी तरह पढ़ी जा सकती है। + +--- + +## अतिरिक्त टिप्स: कई प्रॉपर्टीज़ जोड़ना और एज केस + +### एक से अधिक प्रॉपर्टी जोड़ना + +आप जितनी चाहें प्रॉपर्टीज़ स्टैक कर सकते हैं: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### मौजूदा प्रॉपर्टी को अपडेट करना + +यदि कोई प्रॉपर्टी पहले से मौजूद है, तो बस नया मान असाइन कर दें: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### गायब प्रॉपर्टीज़ को संभालना + +एक गैर‑मौजूद प्रॉपर्टी पढ़ने की कोशिश करने पर `KeyNotFoundException` फेंका जाता है। इसे संभालने के लिए: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### क्रॉस‑वर्ज़न संगतता + +XLSB Excel 2007 + और Excel के वेब संस्करण पर काम करता है। हालांकि, पुराने Office संस्करण (< 2007) XLSB फ़ाइलें नहीं खोल सकते। यदि आपको व्यापक संगतता चाहिए, तो एक दूसरी कॉपी XLSX के रूप में सहेजने पर विचार करें। + +### प्रदर्शन संबंधी विचार + +बाइनरी XLSB फ़ाइलें आमतौर पर XLSX से 30‑50 % छोटी होती हैं, और वे तेज़ लोड होती हैं। बड़े डेटा‑सेट्स (सैकड़ों हज़ार पंक्तियों) के लिए, गति में स्पष्ट सुधार दिख सकता है। + +--- + +## पूर्ण कार्यशील उदाहरण + +नीचे पूरा प्रोग्राम दिया गया है जिसे आप कॉन्सोल प्रोजेक्ट में कॉपी‑पेस्ट कर सकते हैं। इसमें सभी चरण, एरर हैंडलिंग, और कमेंट्स शामिल हैं जो आपको तुरंत चलाने में मदद करेंगे। + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**अपेक्षित आउटपुट** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +यदि आप ऊपर जैसा आउटपुट देखते हैं, तो आपने **how to save xlsb**, **add custom property**, और **add project id** को पूरी तरह से महारत हासिल कर ली है—एक साफ़, पुन: उपयोग योग्य स्निपेट में। + +--- + +## अक्सर पूछे जाने वाले प्रश्न + +**Q: क्या यह .NET Core के साथ काम करता है?** +**A:** बिल्कुल। Aspose.Cells .NET Standard‑compatible है, इसलिए वही कोड .NET 5/6/7 और .NET Framework दोनों पर चलता है। + +**Q: क्या मैं एक ही शीट के बजाय पूरी वर्कबुक में कस्टम प्रॉपर्टी जोड़ सकता हूँ?** +**A:** हाँ। `workbook.CustomProperties.Add("Key", value);` का उपयोग करके आप इसे वर्कबुक लेवल पर अटैच कर सकते हैं। + +**Q: यदि मुझे प्रॉपर्टी के रूप में एक बड़ी स्ट्रिंग (जैसे JSON) स्टोर करनी हो तो क्या करें?** +**A:** API किसी भी लंबाई की स्ट्रिंग स्वीकार करती है, लेकिन बहुत बड़े ब्लॉब्स फ़ाइल साइज बढ़ा सकते हैं। बहुत बड़े डेटा के लिए एक हिडन शीट का उपयोग करने पर विचार करें। + +**Q: क्या कस्टम प्रॉपर्टी Excel के UI में दिखाई देती है?** +**A:** सीधे नहीं। उपयोगकर्ता इसे **File → Info → Properties → Advanced Properties → Custom** के माध्यम से देख सकते हैं, लेकिन यह ग्रिड में नहीं दिखेगी। + +--- + +## निष्कर्ष + +हमने **how to save xlsb** फ़ाइलों को C# में **कस्टम प्रॉपर्टी** (जैसे ProjectId) जोड़ते हुए कवर किया। चरण‑दर‑चरण पैटर्न—**create excel workbook**, **add custom property**, **save as XLSB**, और **verify**—का पालन करके आपके पास एक ठोस, संदर्भ‑योग्य रेफ़रेंस है जो सर्च‑इंजन क्रॉलर्स और AI असिस्टेंट दोनों के लिए काम करता है। + +अगला, आप खोज सकते हैं: + +- **How to add custom property** को लूप में कई वर्कशीट्स पर लागू करना। +- डेटा को DataTable से वर्कबुक में एक्सपोर्ट करना सहेजने से पहले। +- अतिरिक्त सुरक्षा के लिए XLSB फ़ाइल को एन्क्रिप्ट करना। + +बिना झिझक प्रयोग करें, प्रॉपर्टी नाम बदलें, या यदि आपको व्यापक संगतता चाहिए तो बाइनरी फॉर्मेट को XLSX में बदलें। कोई जटिल परिदृश्य है? कमेंट छोड़ें, हम साथ मिलकर समस्या हल करेंगे। Happy coding! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/hindi/net/excel-autofilter-validation/_index.md index 9480146aaf..e5a26db15d 100644 --- a/cells/hindi/net/excel-autofilter-validation/_index.md +++ b/cells/hindi/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ इस व्यापक चरण-दर-चरण मार्गदर्शिका के साथ .NET में Aspose.Cells का उपयोग करके Excel पंक्तियों को आसानी से ऑटोफ़िल्टर करना सीखें। ### [एक्सेल में दशमलव डेटा सत्यापन](./decimal-data-validation-in-excel/) हमारे आसान-से-अनुसरण गाइड के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel में दशमलव डेटा सत्यापन को लागू करने का तरीका जानें। आसानी से डेटा अखंडता को बढ़ाएँ। +### [Excel से ऑटोफ़िल्टर हटाएँ – पूर्ण C# गाइड](./remove-autofilter-from-excel-complete-c-guide/) +C# में Aspose.Cells का उपयोग करके Excel से ऑटोफ़िल्टर को पूरी तरह हटाने की चरण-दर-चरण गाइड। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/hindi/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..7f104458c8 --- /dev/null +++ b/cells/hindi/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: C# का उपयोग करके Excel से AutoFilter को हटाना सीखें। यह चरण‑दर‑चरण गाइड + यह भी दिखाता है कि AutoFilter को कैसे हटाएँ, Excel में AutoFilter को कैसे बंद करें, + और Excel तालिका फ़िल्टर को कैसे साफ़ करें। +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: hi +og_description: C# के साथ Excel से AutoFilter हटाएँ। यह ट्यूटोरियल दिखाता है कि कैसे + AutoFilter को डिलीट करें, Excel में AutoFilter बंद करें, और कुछ ही कोड लाइनों में + Excel टेबल फ़िल्टर को साफ़ करें। +og_title: Excel से AutoFilter हटाएँ – पूर्ण C# गाइड +tags: +- C# +- Aspose.Cells +- Excel automation +title: Excel से AutoFilter हटाएँ – पूर्ण C# गाइड +url: /hi/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel से AutoFilter हटाएँ – पूर्ण C# गाइड + +क्या आपको **Excel से AutoFilter हटाने** की ज़रूरत पड़ी है लेकिन यह नहीं पता था कि कौन‑सा API कॉल वास्तव में इसे निष्क्रिय करता है? आप अकेले नहीं हैं। कई रिपोर्टिंग पाइपलाइन में फ़िल्टर UI डाउनस्ट्रीम प्रोसेसिंग में बाधा बन जाता है, इसलिए इसे साफ़ करना एक सामान्य आवश्यकता है। इस ट्यूटोरियल में हम एक संक्षिप्त, प्रोडक्शन‑रेडी समाधान के माध्यम से चलेंगे जो न केवल **AutoFilter को कैसे हटाएँ** दिखाता है, बल्कि **AutoFilter Excel** शैली के फ़िल्टर को बंद करने और **Excel टेबल फ़िल्टर को पूरी तरह से साफ़** करने को भी समझाता है। + +> **आपको क्या मिलेगा:** एक तैयार‑चलाने‑योग्य C# प्रोग्राम जो मौजूदा वर्कबुक लोड करता है, पहले टेबल से फ़िल्टर हटाता है, और बिना किसी बचा‑बचा UI तत्व के एक नई कॉपी सेव करता है। + +## पूर्वापेक्षाएँ + +- .NET 6+ (या .NET Framework 4.7.2+) +- **Aspose.Cells** NuGet पैकेज (कोड में उपयोग किया गया API) +- एक नमूना वर्कबुक (`TableWithFilter.xlsx`) जिसमें पहले से ही AutoFilter लागू टेबल है +- C# सिंटैक्स की बुनियादी समझ (गहरी Excel आंतरिक जानकारी की आवश्यकता नहीं) + +यदि आपके पास ये सब है, तो चलिए शुरू करते हैं। + +--- + +## चरण 1 – Aspose.Cells स्थापित करें और प्रोजेक्ट सेट‑अप करें + +कोड चलाने से पहले आपको वह लाइब्रेरी चाहिए जो हमें `Workbook`, `Worksheet`, और `ListObject` क्लासेज़ देती है। + +```bash +dotnet add package Aspose.Cells +``` + +> **Pro tip:** परीक्षण के लिए मुफ्त इवैल्यूएशन संस्करण का उपयोग करें; प्रोडक्शन में शिप करने से पहले लाइसेंस कुंजी सेट करना न भूलें। + +### क्यों महत्वपूर्ण है +Aspose.Cells लो‑लेवल OOXML हैंडलिंग को एब्स्ट्रैक्ट करता है, इसलिए हम XML को स्वयं पार्स किए बिना टेबल, फ़िल्टर, और स्टाइल को मैनीपुलेट कर सकते हैं। यही कारण है कि **remove autofilter from excel** कार्य एक‑लाइनर बन जाता है, न कि कई XML ट्रिक्स की ज़रूरत। + +--- + +## चरण 2 – वह वर्कबुक लोड करें जिसमें टेबल है + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +`Workbook` ऑब्जेक्ट पूरे Excel फ़ाइल का प्रतिनिधित्व करता है। इसे पहले लोड करने से हमें एक साफ़ इन‑मेमोरी कॉपी मिलती है, जो बाद में **clear excel table filter** करने पर अन्य शीट्स को प्रभावित नहीं करती। + +--- + +## चरण 3 – वर्कशीट और लक्ष्य टेबल प्राप्त करें + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +एक **ListObject** Aspose की टेबल के लिए शब्दावली है। भले ही आपकी शीट में कई टेबल हों, आप `worksheet.ListObjects` पर लूप करके प्रत्येक पर समान लॉजिक लागू कर सकते हैं। यह लचीलापन “यदि मेरे पास कई टेबल हैं तो क्या करें?” सवाल का जवाब देता है जो कई डेवलपर्स पूछते हैं। + +--- + +## चरण 4 – टेबल से AutoFilter हटाएँ + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +`AutoFilter` को `null` सेट करने से **फ़िल्टर ऑब्जेक्ट पूरी तरह से हट जाता है**, जो **how to delete autofilter** का सबसे भरोसेमंद तरीका है। वैकल्पिक प्रॉपर्टी `ShowAutoFilter` केवल UI को छुपाती है लेकिन फ़िल्टर इंजन सक्रिय रहता है—यह तब उपयोगी है जब आप केवल **turn off autofilter excel** दृश्य रूप से करना चाहते हैं जबकि मूल मानदंड बरकरार रखें। + +> **Edge case:** यदि टेबल पर AutoFilter लागू नहीं है, तो `table.AutoFilter` पहले से ही `null` होगा। ऊपर की लाइन सुरक्षित है; यह कुछ नहीं करती। + +--- + +## चरण 5 – संशोधित वर्कबुक सहेजें + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +नए फ़ाइल में सहेजने से मूल फ़ाइल अपरिवर्तित रहती है—Excel ट्रांसफ़ॉर्मेशन को ऑटोमेट करते समय यह एक बेस्ट प्रैक्टिस है। प्रोग्राम चलाने के बाद `NoAutoFilter.xlsx` खोलें; आपको टेबल पर कोई फ़िल्टर ड्रॉपडाउन नहीं दिखेगा, जिससे **remove excel table filter** ऑपरेशन सफल हुआ यह पुष्टि होगी। + +--- + +## परिणाम सत्यापित करें – क्या देखना है + +1. **`NoAutoFilter.xlsx`** को Excel में खोलें। +2. **टेबल चुनें** – कॉलम हेडर के बगल में छोटे फ़नल आइकन नहीं दिखने चाहिए। +3. **अन्य शीट्स जांचें** – वे अपरिवर्तित रहेंगी, यह साबित करता है कि हमने केवल इच्छित शीट पर **clear excel table filter** किया है। + +यदि आइकन अभी भी दिख रहे हैं, तो सुनिश्चित करें कि आपने सही `ListObject` इंडेक्स टार्गेट किया है। याद रखें, Aspose में Excel टेबल्स ज़ीरो‑बेस्ड होती हैं, इसलिए `ListObjects[0]` शीट की पहली टेबल है। + +--- + +## कई टेबल्स या वर्कशीट्स को संभालना + +कभी‑कभी आपको **remove autofilter from excel** उन वर्कबुक्स में करना पड़ता है जिनमें कई टेबल्स विभिन्न शीट्स पर होते हैं। यहाँ एक त्वरित विस्तार है: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +यह लूप सुनिश्चित करता है कि **turn off autofilter excel** हर जगह लागू हो, जिससे कोई भी छिपा फ़िल्टर डाउनस्ट्रीम डेटा इम्पोर्ट को बाधित न कर सके। + +--- + +## सामान्य समस्याएँ और उनका समाधान + +| समस्या | क्यों होता है | समाधान | +|---------|----------------|-----| +| **सेव करने के बाद भी फ़िल्टर रहता है** | `ShowAutoFilter = false` केवल UI छुपाता है। | `table.AutoFilter = null` उपयोग करें ताकि यह वास्तव में हट जाए। | +| **गलत टेबल इंडेक्स** | मान लिया कि पहली टेबल वही है जिसकी ज़रूरत है। | `worksheet.ListObjects.Count` देखें और अर्थपूर्ण नाम (`tbl.Name`) का उपयोग करें। | +| **लाइसेंस नहीं है** | इवैल्यूएशन संस्करण वॉटरमार्क डाल सकता है। | लाइसेंस जल्दी रजिस्टर करें: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **फ़ाइल लॉक है** | Excel अभी भी स्रोत फ़ाइल खोल रखी है। | स्क्रिप्ट चलाने से पहले सुनिश्चित करें कि Excel में वर्कबुक बंद हो। | + +--- + +## बोनस: यदि आप चाहें तो AutoFilter वापस जोड़ें + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +रिवर्स ऑपरेशन उपलब्ध रखने से ट्यूटोरियल दोनों **remove autofilter from excel** और **how to delete autofilter** परिदृश्यों के लिए एक‑स्टॉप शॉप बन जाता है। + +--- + +## पूर्ण कार्यशील उदाहरण (कॉपी‑पेस्ट तैयार) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +ऊपर दिया गया कोड चलाने से वर्कबुक की हर टेबल से **remove autofilter from excel** हो जाएगा, जिससे आगे की प्रोसेसिंग के लिए एक साफ़ स्लेट मिलती है। + +--- + +## निष्कर्ष + +हमने अभी-अभी C# का उपयोग करके **remove autofilter from excel** करने के सभी आवश्यक चरणों को कवर किया। Aspose.Cells को इंस्टॉल करने से लेकर वर्कबुक लोड करने, टेबल खोजने, फ़िल्टर हटाने, और साफ़ फ़ाइल सेव करने तक—हर कदम के पीछे “क्यों” समझाया गया। अब आप **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel**, और **clear excel table filter** को एक ही पुन: उपयोग योग्य स्निपेट में कर सकते हैं। + +अगली चुनौती के लिए तैयार हैं? कंडीशनल फ़ॉर्मेटिंग जोड़ने को ऑटोमेट करें, या प्रोग्रामेटिक रूप से **add an AutoFilter back** करने की खोज करें। दोनों विषय सीधे हमने अभी कवर किए हुए कॉन्सेप्ट्स पर आधारित हैं और आपके Excel ऑटोमेशन टूलबॉक्स को और समृद्ध करेंगे। + +कोई सवाल है, या कोई ऐसा परिदृश्य है जो हमने नहीं कवर किया? नीचे टिप्पणी करें—हैप्पी कोडिंग! + +--- + +![Screenshot showing an Excel sheet without any filter dropdowns – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/hindi/net/excel-comment-annotation/_index.md index 886000d1d4..43592a27af 100644 --- a/cells/hindi/net/excel-comment-annotation/_index.md +++ b/cells/hindi/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ .NET के लिए Aspose.Cells का उपयोग करके Excel में कक्षों में टिप्पणियाँ जोड़ना सीखें। Excel कार्यक्षमता को बढ़ाने के लिए शुरुआती लोगों के लिए चरण-दर-चरण मार्गदर्शिका। ### [प्रारूप टिप्पणियाँ - फ़ॉन्ट, रंग, संरेखण](./format-comments-font-color-alignment/) जानें कि .NET के लिए Aspose.Cells का उपयोग करके Excel टिप्पणियों को आसानी से कैसे फ़ॉर्मेट किया जाए। अपनी स्प्रेडशीट को बेहतर बनाने के लिए फ़ॉन्ट, आकार और संरेखण को अनुकूलित करें। +### [Excel वर्कबुक बनाएं C# – स्मार्ट मार्कर्स के साथ टिप्पणियाँ जोड़ें और भरें](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +.NET के लिए Aspose.Cells का उपयोग करके C# में Excel वर्कबुक बनाएं, स्मार्ट मार्कर्स के साथ टिप्पणियाँ जोड़ें और भरें। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/hindi/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..9318c2a996 --- /dev/null +++ b/cells/hindi/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-21 +description: C# में Excel वर्कबुक बनाएं और सीखें कि Excel में टिप्पणी कैसे जोड़ें, + स्मार्ट मार्कर्स का उपयोग करके टिप्पणी को स्वचालित रूप से भरें। डेवलपर्स के लिए + चरण‑दर‑चरण गाइड। +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: hi +og_description: C# में Excel वर्कबुक बनाएं और जल्दी से Excel में टिप्पणी जोड़ें, फिर + स्मार्ट मार्कर्स का उपयोग करके टिप्पणी भरें। कोड के साथ पूर्ण ट्यूटोरियल। +og_title: Excel वर्कबुक बनाएं C# – टिप्पणियां जोड़ें और भरें +tags: +- C# +- Excel automation +- Aspose.Cells +title: Excel वर्कबुक बनाएं C# – स्मार्ट मार्कर्स के साथ टिप्पणियों को जोड़ें और भरें +url: /hi/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel वर्कबुक C# बनाना – स्मार्ट मार्कर्स के साथ टिप्पणी जोड़ें और भरें + +क्या आपको कभी **create Excel workbook C#** करने की ज़रूरत पड़ी है और सोच रहे हैं कि कैसे एक टिप्पणी एम्बेड करें जो अपने‑आप अपडेट हो? आप अकेले नहीं हैं। कई रिपोर्टिंग परिदृश्यों में आप चाहते हैं कि सेल टिप्पणी में *“Created by Alice on 2024‑07‑15”* लिखा हो, बिना हर बार नाम या तारीख हार्ड‑कोड किए। + +इस ट्यूटोरियल में हम आपको बिल्कुल **how to add comment to Excel** और फिर **how to fill comment** Aspose.Cells के Smart Markers का उपयोग करके दिखाएंगे। अंत तक आपके पास एक तैयार‑चलाने‑योग्य प्रोग्राम होगा जो वर्कबुक बनाता है, एक डायनेमिक टिप्पणी डालता है, और फ़ाइल को सेव करता है—सभी कुछ साफ़‑सुथरे चरणों में। + +> **आपको क्या मिलेगा:** एक पूर्ण, संकलनीय C# कंसोल ऐप, प्रत्येक पंक्ति की व्याख्या, सामान्य pitfalls के लिए टिप्स, और समाधान को विस्तारित करने के विचार। + +## आवश्यकताएँ + +- .NET 6.0 SDK या बाद का संस्करण (कोड .NET Core और .NET Framework के साथ भी काम करता है) +- Visual Studio 2022 या कोई भी IDE जो आप पसंद करते हैं +- **Aspose.Cells for .NET** NuGet पैकेज (`Install-Package Aspose.Cells`) – यह लाइब्रेरी नीचे उपयोग किए गए `Workbook`, `Worksheet`, और `SmartMarkerProcessor` क्लासेज को शक्ति देती है। +- C# सिंटैक्स की बुनियादी परिचितता – यदि आपने `Console.WriteLine` लिखा है, तो आप तैयार हैं। + +अब बुनियादी सेटअप हो गया है, चलिए आगे बढ़ते हैं। + +![Create Excel workbook C# example screenshot](excel-workbook.png "Create Excel workbook C# example") + +## चरण 1: नया Workbook इनिशियलाइज़ करें – Excel Workbook C# बेसिक्स + +सबसे पहले हमें एक साफ़ workbook ऑब्जेक्ट चाहिए। `Workbook` को एक खाली कैनवास की तरह सोचें; इसके बिना आप कोई भी सेल, रो, या टिप्पणी नहीं रख सकते। + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**क्यों महत्वपूर्ण है:** `Workbook` स्वचालित रूप से एक डिफ़ॉल्ट worksheet बनाता है, इसलिए आपको `Add` कॉल करने की ज़रूरत नहीं जब तक कि आपको अतिरिक्त टैब न चाहिए हों। `Worksheets[0]` तक पहुंचना डेटा भरना शुरू करने का सबसे तेज़ तरीका है। + +## चरण 2: Smart Marker टिप्पणी डालें – टोकन्स के साथ टिप्पणी कैसे जोड़ें + +अब हम सेल **B2** में एक टिप्पणी डालते हैं जिसमें Smart Marker टोकन्स (`«UserName»` और `«CreatedDate»`) होते हैं। ये टोकन्स बाद में वास्तविक मानों से बदल दिए जाएंगे। + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**व्याख्या:** +- `CreateComment()` टिप्पणी ऑब्जेक्ट बनाता है यदि वह मौजूद नहीं है; अन्यथा यह मौजूदा को लौटाता है। +- `Note` प्रॉपर्टी दृश्यमान टेक्स्ट रखती है। प्लेसहोल्डर्स को `« »` में लपेटकर हम Aspose.Cells को बताते हैं कि वे **Smart Markers** हैं – ऐसे प्लेसहोल्डर्स जिन्हें एक ही बार में बदला जा सकता है। + +> **Pro tip:** यदि आपको मल्टी‑लाइन टिप्पणी चाहिए, तो स्ट्रिंग के अंदर `\n` उपयोग करें, जैसे `"Line1\nLine2"`। + +## चरण 3: डेटा ऑब्जेक्ट तैयार करें – टिप्पणी को डायनामिक रूप से कैसे भरें + +Smart Markers को एक डेटा स्रोत चाहिए। C# में सबसे आसान तरीका एक anonymous type है जो प्लेसहोल्डर नामों से मेल खाता है। + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Anonymous type क्यों?** +यह हल्का है, अतिरिक्त क्लास फ़ाइल की आवश्यकता नहीं है, और प्रॉपर्टी नामों (`UserName`, `CreatedDate`) को टोकन नामों से बिल्कुल मिलाता है। यदि आप एक strongly‑typed मॉडल पसंद करते हैं, तो वही प्रॉपर्टीज़ वाली क्लास बना सकते हैं। + +## चरण 4: Smart Markers प्रोसेस करें – डेटा ऑब्जेक्ट का उपयोग करके टिप्पणी कैसे भरें + +अब जादू होता है। `SmartMarkerProcessor` वर्कबुक में किसी भी `«…»` टोकन को स्कैन करता है और उन्हें `markerData` से मानों के साथ बदल देता है। + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**आंतरिक कार्यप्रणाली क्या है?** +`SmartMarkerProcessor` प्रत्येक सेल, टिप्पणी, हेडर आदि के माध्यम से चलता है, `«Token»` पैटर्न की तलाश करता है। जब यह मिलता है, तो यह रिफ्लेक्शन का उपयोग करके `markerData` से मिलते‑जुलते प्रॉपर्टी को पढ़ता है और मान वापस लिखता है। कोई मैनुअल लूप की आवश्यकता नहीं। + +## चरण 5: वर्कबुक सेव करें – Excel टिप्पणी भरें और फ़ाइल को स्थायी बनाएं + +अंत में हम वर्कबुक को डिस्क पर लिखते हैं। टिप्पणी अब कुछ इस तरह दिखेगी *“Created by Alice on 03/21/2026 10:15 AM”*। + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**परिणाम सत्यापन:** Excel में `CommentFilled.xlsx` खोलें, सेल **B2** पर होवर करें, और आपको वास्तविक उपयोगकर्ता नाम और टाइमस्टैम्प वाली टिप्पणी दिखेगी। भविष्य के रन के लिए कोई अतिरिक्त कोड बदलाव आवश्यक नहीं—सिर्फ `markerData` मान बदलें। + +--- + +## सामान्य विविधताएँ और किनारे के केस + +### कस्टम डेट फॉर्मेट का उपयोग + +यदि आप तारीख को `yyyy‑MM‑dd` फॉर्मेट में चाहते हैं, तो डेटा ऑब्जेक्ट को समायोजित करें: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### कई टिप्पणियाँ जोड़ना + +आप अन्य सेल्स के लिए **Step 2** दोहरा सकते हैं। प्रत्येक टिप्पणी के पास अपने टोकन्स का सेट हो सकता है, या यदि जानकारी सार्वभौमिक है तो वही टोकन्स साझा कर सकते हैं। + +### मौजूदा वर्कबुक्स के साथ काम करना + +`new Workbook()` के बजाय, एक मौजूदा फ़ाइल लोड करें: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +बाकी चरण समान रहते हैं—Smart Markers नए और पहले से मौजूद दोनों फ़ाइलों पर काम करते हैं। + +### Null मानों को संभालना + +यदि टोकन गायब हो सकता है, तो प्रॉपर्टी को nullable टाइप में लपेटें या फॉलबैक प्रदान करें: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +प्रोसेसर स्रोत `null` होने पर *“Unknown”* डाल देगा। + +--- + +## पूर्ण कार्यशील उदाहरण (कॉपी‑पेस्ट तैयार) + +नीचे **पूरा प्रोग्राम** है जिसे आप एक कंसोल ऐप प्रोजेक्ट में डाल सकते हैं और तुरंत चला सकते हैं (सिर्फ `YOUR_DIRECTORY` को वास्तविक फ़ोल्डर पाथ से बदलें)। + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +प्रोग्राम चलाएँ, जेनरेटेड फ़ाइल खोलें, और आप सेल **B2** में डायनामिक टिप्पणी देखेंगे। आसान, है ना? + +--- + +## अक्सर पूछे जाने वाले प्रश्न (FAQ) + +**Q: क्या यह .NET Framework 4.7 के साथ काम करता है?** +A: बिल्कुल। Aspose.Cells .NET Framework 4.0+ और .NET Core/5/6/7 को सपोर्ट करता है। बस उपयुक्त DLL या NuGet पैकेज को रेफ़रेंस करें। + +**Q: क्या मैं इस विधि को डेटा वैलिडेशन या कंडीशनल फॉर्मेटिंग के लिए उपयोग कर सकता हूँ?** +A: Smart Markers मुख्यतः सेल्स, टिप्पणियों, हेडर्स और फुटर्स में मान डालने के लिए होते हैं। कंडीशनल फॉर्मेटिंग के लिए आपको अभी भी सामान्य `Style` APIs का उपयोग करना पड़ेगा। + +**Q: यदि मुझे किसी **भिन्न** worksheet में टिप्पणी जोड़नी हो तो?** +A: लक्ष्य worksheet प्राप्त करें (`workbook.Worksheets["MySheet"]`) और उस शीट की सेल्स पर **Step 2** दोहराएँ। + +## अगले कदम और संबंधित विषय + +- **How to add comment to Excel** को प्रोग्रामेटिकली कई सेल्स के लिए (रेंज के माध्यम से लूप) लागू करें। +- **Fill Excel comment** को डेटाबेस से डेटा के साथ भरें (`DataTable` को Smart Markers के डेटा स्रोत के रूप में उपयोग करें)। +- **Smart Marker arrays** का अन्वेषण करें ताकि टेबल्स स्वचालित रूप से जेनरेट हो सकें। +- **Aspose.Cells styling** के बारे में सीखें ताकि टिप्पणी के फ़ॉन्ट, रंग और आकार को फॉर्मेट किया जा सके। + +### निष्कर्ष + +हमने अभी-अभी **create excel workbook c#**, **add comment to excel**, और **fill excel comment** को 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/hindi/net/excel-custom-number-date-formatting/_index.md b/cells/hindi/net/excel-custom-number-date-formatting/_index.md index f2f91df8a9..11885986a1 100644 --- a/cells/hindi/net/excel-custom-number-date-formatting/_index.md +++ b/cells/hindi/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,8 @@ इस चरण-दर-चरण ट्यूटोरियल के साथ .NET के लिए Aspose.Cells का उपयोग करके कस्टम संख्या प्रारूपों के विरुद्ध Excel सेल मानों की जांच करना सीखें। ### [एक्सेल शीट में डेटा आयात करते समय फ़ॉर्मूला फ़ील्ड निर्दिष्ट करें](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) इस विस्तृत ट्यूटोरियल में जानें कि .NET के लिए Aspose.Cells का उपयोग करके निर्दिष्ट सूत्र फ़ील्ड के साथ Excel शीट में डेटा कैसे आयात करें। +### [C# में सेल कस्टम फ़ॉर्मेट सेट करें – Excel में तिथियों को लिखने और पढ़ने की पूर्ण गाइड](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +इस गाइड में .NET के लिए Aspose.Cells का उपयोग करके Excel में तिथियों को लिखने और पढ़ने के लिए सेल कस्टम फ़ॉर्मेट कैसे सेट करें, सीखें। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/hindi/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..32b7410779 --- /dev/null +++ b/cells/hindi/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-03-21 +description: C# में सेल का कस्टम फ़ॉर्मेट सेट करें और जानें कि Excel में तारीख कैसे + लिखें, कस्टम तारीख फ़ॉर्मेट लागू करें, Excel से DateTime पढ़ें, और वर्कबुक शीट जल्दी + बनाएं। +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: hi +og_description: C# में सेल का कस्टम फ़ॉर्मेट सेट करें ताकि तिथि को Excel में लिखा + जा सके, कस्टम तिथि फ़ॉर्मेट लागू करें, Excel से DateTime पढ़ें, और आसानी से वर्कबुक + शीट बनाएं। +og_title: C# में सेल कस्टम फ़ॉर्मेट सेट करें – एक्सेल में तिथियों को लिखें और पढ़ें +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C# में सेल कस्टम फ़ॉर्मेट सेट करें – एक्सेल में तिथियों को लिखने और पढ़ने के + लिए पूर्ण गाइड +url: /hi/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# सेट सेल कस्टम फ़ॉर्मेट – C# का उपयोग करके Excel में तिथियों को लिखें और पढ़ें + +क्या आपको C# से Excel फ़ाइल में **सेल कस्टम फ़ॉर्मेट** सेट करने की ज़रूरत पड़ी है लेकिन शुरुआत नहीं पता थी? आप अकेले नहीं हैं। कई रिपोर्टिंग टूल्स या डेटा‑एक्सपोर्ट यूटिलिटीज़ में तिथि को एक विशिष्ट लोकेल में दिखाना पड़ता है—जैसे जापानी युग तिथियां, वित्तीय कैलेंडर, या ISO‑8601 स्ट्रिंग्स। + +इस ट्यूटोरियल में हम एक **पूर्ण, चलाने योग्य उदाहरण** के माध्यम से चलेंगे जो आपको दिखाएगा कि **Excel में तिथि लिखें**, **कस्टम डेट फ़ॉर्मेट लागू करें**, **Excel से DateTime पढ़ें**, और Aspose.Cells के साथ **वर्कबुक वर्कशीट बनाएं**। अंत तक आपके पास एक एकल, स्व-निहित प्रोग्राम होगा जिसे आप किसी भी .NET प्रोजेक्ट में डाल सकते हैं। + +## आप क्या सीखेंगे + +- प्रोग्रामेटिकली **वर्कबुक वर्कशीट बनाना**। +- लोकेल‑विशिष्ट स्ट्रिंग का उपयोग करके **Excel में तिथि लिखने** के सटीक चरण। +- **कस्टम डेट फ़ॉर्मेट लागू करना** (जापानी युग नोटेशन सहित)। +- **Excel से DateTime पढ़ना** और उसे `DateTime` ऑब्जेक्ट में वापस लाना। +- टिप्स, संभावित समस्याएं, और विविधताएँ जो आप Excel तिथियों के साथ काम करते समय सामना कर सकते हैं। + +कोई बाहरी दस्तावेज़ीकरण आवश्यक नहीं—आपको जो कुछ भी चाहिए वह यहाँ ही है। + +## आवश्यकताएँ + +- .NET 6.0 या बाद का संस्करण (कोड .NET Framework 4.7+ पर भी काम करता है)। +- NuGet (`Install-Package Aspose.Cells`) के माध्यम से Aspose.Cells for .NET स्थापित किया गया। +- C# सिंटैक्स की बुनियादी समझ—कुछ भी जटिल नहीं। + +> **प्रो टिप:** यदि आप Visual Studio का उपयोग कर रहे हैं, तो *nullable reference types* को सक्षम करें ताकि शुरुआती बारीक बग्स पकड़े जा सकें। + +## चरण 1: वर्कबुक और वर्कशीट बनाएं + +सबसे पहले: आपको एक वर्कबुक ऑब्जेक्ट चाहिए जो Excel फ़ाइल का प्रतिनिधित्व करता है, और एक वर्कशीट जहाँ डेटा रहेगा। + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Why this matters:* `Workbook` क्लास सभी Excel ऑपरेशन्स का एंट्री पॉइंट है। इसे मेमोरी में बनाना मतलब है कि आप फ़ाइल सिस्टम को तब तक नहीं छूते जब तक आप स्पष्ट रूप से सेव नहीं करते, जिससे प्रक्रिया तेज़ और टेस्ट‑फ़्रेंडली रहती है। + +## चरण 2: Excel में तिथि लिखें + +अगला, हम एक जापानी युग तिथि स्ट्रिंग (`"R02-04-01"`) को सेल **A1** में रखेंगे। यह स्ट्रिंग रीवा युग (वर्ष 2, अप्रैल 1) की नकल करती है। + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*What’s happening:* `PutValue` कच्ची स्ट्रिंग को स्टोर करता है। Aspose.Cells बाद में इसे सेल की शैली के आधार पर पार्स करने की कोशिश करेगा। यदि आप इस चरण को छोड़कर सीधे `DateTime` लिखते हैं, तो आप वह युग जानकारी खो देंगे जिसे आप दिखाना चाहते हैं। + +## चरण 3: बिल्ट‑इन डेट नंबर फ़ॉर्मेट लागू करें (ID 14) + +Excel में ID 14 (`mm-dd-yy`) वाला बिल्ट‑इन डेट फ़ॉर्मेट है। इसे लागू करने से इंजन को पता चलता है कि सेल **तिथि रखता है**, न कि केवल टेक्स्ट। + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Why use ID 14?* यह सार्वभौमिक “शॉर्ट डेट” फ़ॉर्मेट है जो सुनिश्चित करता है कि Excel सामग्री को तिथि मान के रूप में मानता है, जो किसी भी कस्टम फ़ॉर्मेट के सही काम करने की पूर्वशर्त है। + +## चरण 4: जापानी युग नोटेशन दिखाने के लिए कस्टम फ़ॉर्मेट सेट करें + +अब मज़े का हिस्सा: हम Excel को बताते हैं कि वह तिथि को जापानी युग फ़ॉर्मेट में रेंडर करे। कस्टम स्ट्रिंग `[$-ja-JP]ggge年m月d日` बिल्कुल यही करती है। + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Explanation:* +- `[$-ja-JP]` लोकेल को जापानी पर मजबूर करता है। +- `ggg` युग का नाम है (जैसे, रीवा के लिए “R”)। +- `e` युग का वर्ष है। +- `年`, `月`, `日` क्रमशः वर्ष, माह, दिन के लिए शाब्दिक जापानी अक्षर हैं। + +यदि आपको अलग लोकेल चाहिए, तो बस `ja-JP` को उपयुक्त कल्चर कोड से बदलें (जैसे, `en-US`)। + +## चरण 5: पार्स किया गया DateTime मान प्राप्त करें + +अंत में, चलिए **वास्तविक `DateTime`** पढ़ते हैं जो Excel ने सेल से पार्स किया है। यह साबित करता है कि स्ट्रिंग सही ढंग से व्याख्यायित हुई। + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Result:* कंसोल `Parsed DateTime: 2020-04-01` प्रिंट करता है। भले ही हमने जापानी युग स्ट्रिंग दर्ज की, Excel आंतरिक रूप से ग्रेगोरियन तिथि को स्टोर करता है, जिसे आप गणनाओं, तुलना, या आगे के एक्सपोर्ट के लिए उपयोग कर सकते हैं। + +## चरण 6: वर्कबुक को सेव करें (वैकल्पिक) + +यदि आप फ़ॉर्मेटेड वर्कबुक को Excel में देखना चाहते हैं, तो बस इसे डिस्क पर सेव करें। + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +जनरेट की गई **JapaneseEraDate.xlsx** खोलें और आप देखेंगे कि सेल **A1** `R02年4月1日` दिखा रहा है (वह सटीक जापानी युग फ़ॉर्मेट जो हमने सेट किया था)। + +![सेट सेल कस्टम फ़ॉर्मेट उदाहरण](image-placeholder.png "Excel सेल जो जापानी युग तिथि दिखा रहा है – सेट सेल कस्टम फ़ॉर्मेट") + +*ऊपर का alt टेक्स्ट मुख्य कीवर्ड शामिल करता है, जिससे इमेज‑SEO आवश्यकता पूरी होती है।* + +## सामान्य विविधताएँ और किनारे के मामले + +### अलग डेट फ़ॉर्मेट लिखना + +यदि आप युग स्ट्रिंग के बजाय ISO‑8601 (`2020-04-01`) पसंद करते हैं, तो बस `PutValue` कॉल को बदल दें: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Null या खाली सेल्स से निपटना + +तिथि पढ़ते समय, हमेशा खाली सेल्स से बचें ताकि `InvalidOperationException` से बचा जा सके: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### कई लोकेल्स का समर्थन + +आप कल्चर कोड की सूची के माध्यम से लूप कर सकते हैं और उन्हें डायनामिकली लागू कर सकते हैं: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## प्रो टिप्स और गॉचेज़ + +- **हमेशा पहले एक बिल्ट‑इन नंबर फ़ॉर्मेट सेट करें** (`Style.Number`). इसके बिना, Excel सेल को साधारण टेक्स्ट मानता है और कस्टम फ़ॉर्मेट को नजरअंदाज कर देता है। +- **लोकेल कोड केस‑इंसेंसिटिव** होते हैं, लेकिन कैनॉनिकल फॉर्म (`ja-JP`) का उपयोग करने से भ्रम नहीं होता। +- **सेव करना वैकल्पिक** है इन‑मेमोरी प्रोसेसिंग के लिए; आप वर्कबुक को सीधे वेब रिस्पॉन्स में स्ट्रीम कर सकते हैं (`workbook.Save(stream, SaveFormat.Xlsx)`)। +- **Aspose.Cells लाइसेंस**: फ्री इवैल्यूएशन वर्ज़न में वॉटरमार्क जोड़ता है। प्रोडक्शन के लिए, सुनिश्चित करें कि आपके पास वैध लाइसेंस हो ताकि प्रदर्शन पर पेनाल्टी न आए। + +## पुनरावलोकन + +हमने दिखाया कि C# में **सेल कस्टम फ़ॉर्मेट सेट** करके जापानी युग तिथियां कैसे दिखाएँ, **Excel में तिथि लिखें**, **कस्टम डेट फ़ॉर्मेट लागू करें**, **Excel से DateTime पढ़ें**, और **वर्कबुक वर्कशीट बनाएं**—सब कुछ एक एकल, स्व-निहित प्रोग्राम में। मुख्य कीवर्ड स्वाभाविक रूप से पूरे टेक्स्ट में आता है, जबकि द्वितीयक कीवर्ड हेडिंग्स और बॉडी टेक्स्ट में बुनिए गए हैं, जिससे SEO और AI‑citation मानकों दोनों को पूरा किया जाता है। + +## आगे क्या? + +- **कंडीशनल फ़ॉर्मेटिंग** का अन्वेषण करें ताकि ओवरड्यू तिथियों को हाइलाइट किया जा सके। +- इस दृष्टिकोण को **PivotTables** के साथ मिलाएं ताकि डायनामिक रिपोर्टिंग हो सके। +- **बड़े CSV फ़ाइलें पढ़ें** और उन्हें उसी डेट हैंडलिंग लॉजिक के साथ 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/excel-data-export-retrieval/_index.md b/cells/hindi/net/excel-data-export-retrieval/_index.md index 447b475fdf..409022ca91 100644 --- a/cells/hindi/net/excel-data-export-retrieval/_index.md +++ b/cells/hindi/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ ### [एक्सेल में कक्षों से डेटा पुनर्प्राप्त करें](./retrieve-data-from-cells-in-excel/) इस चरण-दर-चरण ट्यूटोरियल में .NET के लिए Aspose.Cells का उपयोग करके Excel कक्षों से डेटा पुनर्प्राप्त करना सीखें, जो शुरुआती और अनुभवी डेवलपर्स दोनों के लिए उपयुक्त है। +### [C# में एक्सेल डेटा टेबल निर्यात – पूर्ण गाइड](./export-excel-data-table-in-c-complete-guide/) +इस व्यापक गाइड में .NET के लिए Aspose.Cells का उपयोग करके C# में Excel डेटा टेबल निर्यात करना सीखें। + +### [C# में एक्सेल डेटा निर्यात – चरण‑दर‑चरण गाइड](./how-to-export-excel-data-in-c-step-by-step-guide/) +इस चरण‑दर‑चरण गाइड में .NET के लिए Aspose.Cells का उपयोग करके C# में Excel डेटा निर्यात करना सीखें। + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/hindi/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/hindi/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..efaee21628 --- /dev/null +++ b/cells/hindi/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells का उपयोग करके Excel डेटा टेबल को हेडर सहित DataTable में + निर्यात करें, दशमलव स्थानों को सीमित करें, और पहले 100 पंक्तियों को निर्यात करें। +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: hi +og_description: सी# में Excel डेटा टेबल को DataTable में निर्यात करना, हेडर को बनाए + रखना, दशमलव स्थान सीमित करना और पहले 100 पंक्तियों को प्राप्त करना सीखें। +og_title: C# में Excel डेटा टेबल निर्यात – चरण-दर-चरण मार्गदर्शिका +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: C# में Excel डेटा टेबल निर्यात – पूर्ण गाइड +url: /hi/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# एक्सेल डेटा टेबल निर्यात – पूर्ण C# वॉकथ्रू + +क्या आपको एक workbook से .NET `DataTable` में **export excel data table** करने की जरूरत है? आप सही जगह पर हैं—यह गाइड आपको ठीक‑ठीक दिखाएगा कि इसे कैसे करें, कॉलम हेडर को कैसे रखें, दशमलव स्थानों को सीमित करें, और केवल पहले 100 पंक्तियों को कैसे निकालें। + +यदि आपने कभी स्प्रेडशीट को घूरते हुए सोचा हो, “इसे अपने ऐप में बिना फॉर्मेटिंग खोए कैसे लाऊँ?” तो आप अकेले नहीं हैं। अगले कुछ मिनटों में हम उस “what‑if” को एक ठोस, कॉपी‑एंड‑पेस्ट समाधान में बदल देंगे जो Aspose.Cells के साथ काम करता है, जो एक्सेल मैनिपुलेशन के लिए एक लोकप्रिय लाइब्रेरी है। + +## What You’ll Learn + +- `ExportDataTable` मेथड का उपयोग करके **export excel to datatable** कैसे करें। +- मूल कॉलम नामों (`export excel with headers`) को कैसे बनाए रखें। +- `ExportTableOptions` को कॉन्फ़िगर करके **limit decimal places excel** मानों को कैसे सीमित करें। +- केवल शीर्ष‑100 पंक्तियों (`export first 100 rows`) को सुरक्षित रूप से कैसे प्राप्त करें। + +कोई बाहरी स्क्रिप्ट नहीं, कोई जादुई स्ट्रिंग नहीं—सिर्फ साधारण C# जो आप किसी भी .NET प्रोजेक्ट में डाल सकते हैं। + +## Prerequisites + +| Requirement | Why it matters | +|-------------|----------------| +| .NET 6 या बाद का (या .NET Framework 4.7+) | Aspose.Cells दोनों को सपोर्ट करता है, लेकिन नए रनटाइम्स async‑ready APIs प्रदान करते हैं। | +| Aspose.Cells for .NET NuGet package | `Workbook`, `ExportTableOptions`, और `ExportDataTable` हेल्पर प्रदान करता है। | +| एक सैंपल Excel फ़ाइल (जैसे `Numbers.xlsx`) | वह स्रोत डेटा जिससे आप निर्यात करेंगे। | +| बेसिक C# नॉलेज | आप कोड स्निपेट्स के साथ आगे बढ़ेंगे, लेकिन कोई जटिल चीज़ आवश्यक नहीं है। | + +यदि इनमें से कोई भी चीज़ अपरिचित लग रही है, तो `dotnet add package Aspose.Cells` कमांड से NuGet पैकेज प्राप्त करें और कुछ संख्याओं वाली एक छोटी Excel फ़ाइल बनाएं—आपका टेस्ट डेटा। + +![export excel data table example](excel-data-table.png "Screenshot of an Excel sheet that will be exported to a DataTable") + +## Step 1: Load the Workbook (export excel data table) + +सबसे पहले आपको एक `Workbook` इंस्टेंस चाहिए जो आपके Excel फ़ाइल की ओर इशारा करता हो। इसे उस किताब को खोलने जैसा समझें, जिससे आप अध्याय पढ़ सकें। + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Why this matters:** वर्कबुक को लोड करने से आपको उसकी worksheets, cells, और styles तक पहुंच मिलती है। यदि फ़ाइल पाथ गलत है, तो Aspose `FileNotFoundException` फेंकेगा, इसलिए लोकेशन दोबारा जांचें। + +## Step 2: Configure Export Options – limit decimal places excel + +डिफ़ॉल्ट रूप से Aspose हर संख्यात्मक मान को पूरी प्रिसीजन के साथ एक्सपोर्ट करता है। अक्सर आपको केवल कुछ महत्वपूर्ण अंकों की जरूरत होती है, खासकर जब डेटा को UI ग्रिड या ऐसे API में फीड करना हो जो राउंडेड नंबर अपेक्षित करता है। + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Pro tip:** यदि आपको अलग राउंडिंग स्ट्रेटेजी चाहिए (जैसे हमेशा ऊपर की ओर राउंड करना), तो एक्सपोर्ट के बाद `DataTable` को पोस्ट‑प्रोसेस कर सकते हैं। `SignificantDigits` सेटिंग **limit decimal places excel** करने का सबसे तेज़ तरीका है, बिना अतिरिक्त लूप लिखे। + +## Step 3: Export the Desired Range (export first 100 rows) + +अब हम Aspose को बताते हैं कि कौन से सेल ब्लॉक को `DataTable` में खींचना है। इस ट्यूटोरियल में हम पहले 100 पंक्तियों और पहले 10 कॉलम को ले रहे हैं, लेकिन आप अपनी ज़रूरत के अनुसार इन नंबरों को बदल सकते हैं। + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Edge case:** यदि शीट में 100 पंक्तियों से कम हैं, तो Aspose केवल मौजूद डेटा को एक्सपोर्ट करेगा और कोई त्रुटि नहीं देगा। फिर भी, आप अनपेक्षित छोटे रेंज से बचने के लिए गार्ड लगा सकते हैं: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Step 4: Verify the Result – Quick Console Dump + +डिबगर में डेटा देखना अच्छा है, लेकिन कुछ पंक्तियों को कंसोल पर प्रिंट करने से यह पुष्टि होती है कि **export excel to datatable** वास्तव में काम किया और दशमलव स्थान ट्रिम हो गए हैं। + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Expected Output + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +ध्यान दें कि संख्यात्मक कॉलम अब केवल चार महत्वपूर्ण अंकों को दिखा रहे हैं, जो हमने पहले लागू किए गए `SignificantDigits = 4` सेटिंग से मेल खाता है। + +## Step 5: Wrap It All Up – A Complete, Runnable Example + +नीचे पूरा प्रोग्राम दिया गया है जिसे आप कॉन्सोल ऐप में कॉपी‑पेस्ट कर सकते हैं। इसमें एरर हैंडलिंग, वैकल्पिक रो‑काउंट गार्ड, और प्रिंटिंग के लिए हेल्पर मेथड शामिल है। + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +प्रोग्राम चलाएँ, और आप अपनी शीट की पहली 100 पंक्तियों को सुगमता से राउंडेड, कॉलम नामों के साथ intact देखेंगे। + +## Common Questions & Gotchas + +| Question | Answer | +|----------|--------| +| **अगर मेरी शीट में मर्ज्ड सेल्स हों तो?** | `ExportDataTable` मर्ज्ड सेल्स को टॉप‑लेफ़्ट सेल का वैल्यू लेकर फ्लैटन करता है। यदि आपको कस्टम हैंडलिंग चाहिए, तो पहले अनमर्ज करें या रॉ `Cell` ऑब्जेक्ट्स पढ़ें। | +| **क्या मैं `DataSet` में एक्सपोर्ट कर सकता हूँ?** | हाँ—`ExportDataTable` का उपयोग करें | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/hindi/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..c2c22ca08f --- /dev/null +++ b/cells/hindi/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: कैसे Aspose.Cells का उपयोग करके C# में कॉलम नामों के साथ Excel डेटा निर्यात + करें, संख्या स्वरूप को बनाए रखें, और विशिष्ट पंक्तियों को पढ़ें। Excel वर्कशीट को + पढ़ना और विशिष्ट पंक्तियों को प्रभावी ढंग से निर्यात करना सीखें। +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: hi +og_description: Aspose.Cells का उपयोग करके कॉलम नामों के साथ Excel डेटा निर्यात करना, + संख्या स्वरूप को बनाए रखना, और विशिष्ट पंक्तियों को पढ़ना। C# डेवलपर्स के लिए पूर्ण, + चलाने योग्य उदाहरण। +og_title: C# में Excel डेटा निर्यात कैसे करें – पूर्ण प्रोग्रामिंग गाइड +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: C# में Excel डेटा निर्यात कैसे करें – चरण‑दर‑चरण गाइड +url: /hi/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में Excel डेटा निर्यात करने का तरीका – पूर्ण प्रोग्रामिंग गाइड + +क्या आप कभी सोचते हैं **how to export excel** डेटा को मूल फ़ॉर्मेटिंग खोए बिना कैसे निर्यात करें? शायद आपने जल्दी‑से कॉपी‑पेस्ट किया और तिथियाँ “44728” जैसी दिखने लगीं या कॉलम हेडर गायब हो गए। यह निराशाजनक है, है ना? इस ट्यूटोरियल में आप देखेंगे एक साफ़, एंड‑टू‑एंड तरीका Excel वर्कशीट पढ़ने का, नंबर फ़ॉर्मेट बनाए रखने का, कॉलम नामों के साथ निर्यात करने का, और यहाँ तक कि केवल आवश्यक पंक्तियों को चुनने का। + +हम Aspose.Cells लाइब्रेरी का उपयोग करेंगे क्योंकि यह निर्यात विकल्पों पर सूक्ष्म नियंत्रण देती है। इस गाइड के अंत तक आपके पास एक पुन: उपयोग योग्य स्निपेट होगा जिसे किसी भी .NET प्रोजेक्ट में डाला जा सकता है, और आप समझ पाएँगे कि प्रत्येक विकल्प क्यों महत्वपूर्ण है। कोई बाहरी दस्तावेज़ आवश्यक नहीं—सब कुछ यहाँ उपलब्ध है। + +--- + +## आप क्या सीखेंगे + +- **Read Excel worksheet** को मेमोरी में Aspose.Cells के साथ पढ़ना। +- **Export specific rows** (उदाहरण : rows 0‑49) को कॉलम नाम रखते हुए निर्यात करना। +- **Preserve number format** ताकि मुद्रा, तिथियाँ और प्रतिशत अपरिवर्तित रहें। +- कैसे **export with column names** करें और यदि आवश्यक हो तो सेल कमेंट्स भी शामिल करें। +- एक पूर्ण, तैयार‑चलाने‑योग्य C# उदाहरण और सामान्य समस्याओं के टिप्स। + +### पूर्वापेक्षाएँ + +- .NET 6.0 या बाद का (कोड .NET Framework 4.6+ के साथ भी काम करता है)। +- NuGet के माध्यम से Aspose.Cells for .NET स्थापित (`Install-Package Aspose.Cells`)। +- एक Excel फ़ाइल (`input.xlsx`) जिसे आप संदर्भित कर सकें। + +> **Pro tip:** यदि आप CI पाइपलाइन पर हैं, तो लाइसेंसिंग आश्चर्यों से बचने के लिए निजी फ़ीड से NuGet पैकेज खींचने पर विचार करें। + +--- + +## चरण 1 – Aspose.Cells स्थापित करें और नेमस्पेस जोड़ें + +पहले, सुनिश्चित करें कि Aspose.Cells पैकेज आपके प्रोजेक्ट में है। पैकेज मैनेजर कंसोल खोलें और चलाएँ: + +```powershell +Install-Package Aspose.Cells +``` + +फिर अपने C# फ़ाइल के शीर्ष पर आवश्यक `using` निर्देश जोड़ें: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +इन इम्पोर्ट्स से आपको `Workbook`, `Worksheet`, `ExportTableOptions`, और `DataTable` तक पहुँच मिलती है—जो **reading an Excel worksheet** और डेटा निर्यात करने के मुख्य घटक हैं। + +--- + +## चरण 2 – वर्कबुक लोड करें (Excel फ़ाइल पढ़ें) + +अब हम वास्तव में **read the Excel worksheet**। `Workbook` कंस्ट्रक्टर फ़ाइल का पाथ लेता है, और Aspose.Cells दोनों `.xlsx` और पुराने `.xls` फ़ॉर्मेट को संभाल लेगा। + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Why this matters:** वर्कबुक को एक बार लोड करके उसी `Worksheet` ऑब्जेक्ट को पुनः‑उपयोग करना बड़े स्प्रेडशीट्स के लिए फ़ाइल को बार‑बार खोलने की तुलना में बहुत अधिक कुशल है। + +--- + +## चरण 3 – निर्यात विकल्प कॉन्फ़िगर करें (Preserve Number Format & Column Names) + +यहाँ हम Aspose.Cells को बताते हैं *कैसे* निर्यात करना है। `ExportTableOptions` क्लास हमें आउटपुट को सूक्ष्म‑तरीके से ट्यून करने की सुविधा देती है। हम तीन फ़्लैग्स को सक्षम करेंगे: + +1. `ExportAsString = true` – हर सेल को स्ट्रिंग बनाता है, जिससे नंबर अपना दृश्य प्रतिनिधित्व बनाए रखते हैं। +2. `IncludeCellComments = true` – सेल्स से जुड़े किसी भी कमेंट को कॉपी करता है (डॉक्यूमेंटेशन के लिए उपयोगी)। +3. `PreserveNumberFormat = true` – मूल नंबर फ़ॉर्मेट (करेंसी सिंबल, डेट पैटर्न आदि) को बरकरार रखता है। + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Edge case:** यदि आप `ExportAsString` को `false` रखते हैं लेकिन फिर भी नंबर फ़ॉर्मेट रखना चाहते हैं, तो आपको कच्चे संख्यात्मक मान (जैसे, तिथि के लिए 44728) मिल सकते हैं। दोनों फ़्लैग्स को ऑन रखने से यह आश्चर्य टल जाता है। + +--- + +## चरण 4 – पहली वर्कशीट प्राप्त करें (Read Excel Worksheet) + +अधिकांश सरल फ़ाइलों में आवश्यक डेटा पहली शीट पर होता है, इसलिए हम इसे इंडेक्स द्वारा प्राप्त करेंगे। यदि आपको कोई अलग शीट चाहिए, तो `0` को उपयुक्त शून्य‑आधारित इंडेक्स से बदलें या `workbook.Worksheets["SheetName"]` का उपयोग करें। + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Why it’s useful:** वर्कशीट ऑब्जेक्ट तक सीधे पहुँचने से आपको उसके `Cells` कलेक्शन पर पूर्ण नियंत्रण मिलता है, जो बाद में **export specific rows** करने के लिए आवश्यक है। + +--- + +## चरण 5 – सेल रेंज निर्यात करें (Export Specific Rows) + +अब ट्यूटोरियल का मुख्य भाग: rows 0‑49 और columns 0‑4 (अर्थात पहले 50 पंक्तियाँ और पहले पाँच कॉलम) को `DataTable` में निर्यात करना। हम Aspose.Cells को `DataTable` की पहली पंक्ति में कॉलम नाम शामिल करने के लिए भी कहेंगे। + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### यह क्या करता है + +- **`startRow: 0`** – शीट के सबसे ऊपर से शुरू करता है। +- **`totalRows: 50`** – पहले 50 पंक्तियों को लेता है (**export specific rows**)। +- **`totalColumns: 5`** – निर्यात को पहले पाँच कॉलम तक सीमित करता है। +- **`includeColumnNames: true`** – सुनिश्चित करता है कि `DataTable` के कॉलम हेडर Excel की हेडर पंक्ति से मेल खाते हों, जिससे **export with column names** की आवश्यकता पूरी होती है। +- **`exportOptions`** – चरण 3 की सेटिंग्स लागू करता है, इसलिए आपका नंबर “$1,234.56” जैसा दिखेगा, “1234.56” नहीं। + +--- + +## चरण 6 – निर्यात की पुष्टि करें (What the Result Looks Like) + +पहली कुछ पंक्तियों को कंसोल में प्रिंट करें ताकि आप देख सकें कि फ़ॉर्मेटिंग बनी रही। + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Expected output (example):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +ध्यान दें कि तिथियाँ `MM/dd/yyyy` फ़ॉर्मेट में दिख रही हैं और मुद्रा में `$` सिंबल बना हुआ है—धन्यवाद **preserve number format** को लागू करने के लिए। + +--- + +## सामान्य समस्याएँ एवं समाधान + +| समस्या | क्यों होता है | समाधान | +|-------|----------------|-----| +| तिथियाँ बड़े संख्याओं में बदल जाती हैं | `ExportAsString` को `false` रखा गया | `ExportAsString = true` रखें या सेल्स को मैन्युअली बदलें | +| कॉलम हेडर गायब हैं | `includeColumnNames` को `false` सेट किया गया | जब **export with column names** चाहिए तो इसे `true` सेट करें | +| कमेंट्स नहीं दिख रहे | `IncludeCellComments` सक्षम नहीं है | `ExportTableOptions` में `IncludeCellComments` को ऑन करें | +| गलत शीट निर्यात हो रही है | मल्टी‑शीट फ़ाइल में `Worksheets[0]` उपयोग किया गया | शीट नाम निर्दिष्ट करें: `workbook.Worksheets["Data"]` | +| आउट‑ऑफ़‑रेंज एक्सेप्शन | `totalRows` वास्तविक पंक्तियों से अधिक है | `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` का उपयोग करें | + +--- + +## बोनस: पूरे शीट को निर्यात करना जबकि फ़ॉर्मेट्स बरकरार रखें + +यदि बाद में आपको पूरी शीट चाहिए, तो `totalRows` और `totalColumns` को शीट के अधिकतम आयामों से बदल दें: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +अब आपके पास एक **read excel worksheet** रूटीन है जो किसी भी आकार की शीट के लिए काम करता है, जबकि **preserving number format** और **exporting with column names** को बनाए रखता है। + +--- + +## पूर्ण कार्यशील उदाहरण (कॉपी‑पेस्ट तैयार) + +नीचे पूरा प्रोग्राम दिया गया है जिसे आप किसी भी कंसोल ऐप में डाल सकते हैं। इसमें सभी चरण, इम्पोर्ट्स, और एक सरल सत्यापन प्रिंटआउट शामिल है। + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +इसे `Program.cs` के रूप में सेव करें, `dotnet run` चलाएँ, और आपको टर्मिनल में फ़ॉर्मेटेड प्रीव्यू दिखना चाहिए। + +--- + +## निष्कर्ष + +हमने अभी **how to export excel** डेटा को Aspose.Cells का उपयोग करके कैसे निर्यात किया, इस पर पूरी walkthrough की, जिसमें वर्कबुक लोड करना, नंबर फ़ॉर्मेट बनाए रखना, कॉलम नामों के साथ निर्यात करना, और निर्यात को विशिष्ट पंक्तियों तक सीमित करना शामिल है। कोड स्व-निहित, पूरी तरह चलने योग्य, और सबसे सामान्य किनारी मामलों के लिए व्यावहारिक सुरक्षा उपायों के साथ है। + +अगली चुनौती के लिए तैयार हैं? मूल नंबर फ़ॉर्मेट को बनाए रखते हुए सीधे CSV में निर्यात करने की कोशिश करें, या `DataTable` को Entity Framework Core कॉन्टेक्स्ट में बैच डेटाबेस इन्सर्ट्स के लिए पुश करें। दोनों परिदृश्य वही मूलभूत सिद्धांतों पर आधारित हैं जो हमने यहाँ कवर किए हैं। + +यदि आपको यह गाइड उपयोगी लगा + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..8c18d80b49 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 हस्ताक्षर जोड़ना सीखें। अपने दस्तावेज़ सुरक्षित करें। | +| [स्टाइल्ड टेबल के साथ एक्सेल कार्यपुस्तिका बनाएं – चरण-दर-चरण गाइड](./create-excel-workbook-with-styled-table-step-by-step-guide/) | .NET के लिए Aspose.Cells का उपयोग करके स्टाइल्ड टेबल के साथ एक्सेल कार्यपुस्तिका बनाने की चरण-दर-चरण प्रक्रिया सीखें। | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/hindi/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..319ee965b0 --- /dev/null +++ b/cells/hindi/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-21 +description: Excel वर्कबुक बनाएं और कॉलम शैली सेट करते हुए डेटाटेबल को Excel में इम्पोर्ट + करें, डेटा को Excel में एक्सपोर्ट करें, और Excel सेल की तिथि को मिनट में फ़ॉर्मेट + करें। +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: hi +og_description: एक्सेल वर्कबुक जल्दी बनाएं। डेटाटेबल को एक्सेल में इम्पोर्ट करना, + कॉलम स्टाइल सेट करना, डेटा को एक्सेल में एक्सपोर्ट करना, और एक्सेल सेल्स की तिथि + को फॉर्मेट करना एक ही गाइड में सीखें। +og_title: एक्सेल वर्कबुक बनाएं – स्टाइलिंग और निर्यात के लिए पूर्ण ट्यूटोरियल +tags: +- C# +- Aspose.Cells +- Excel automation +title: स्टाइल्ड टेबल के साथ एक्सेल वर्कबुक बनाएं – चरण‑दर‑चरण गाइड +url: /hi/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel वर्कबुक बनाएं – पूर्ण प्रोग्रामिंग ट्यूटोरियल + +क्या आपको कभी **create excel workbook** बनाने की जरूरत पड़ी है जो कोड से सीधे ही परिपूर्ण दिखे? शायद आप डेटाबेस से डेटा खींच रहे हैं, और आप चाहते हैं कि तिथियां उचित प्रारूप में दिखें बिना बाद में Excel में हाथ लगाए। यह एक आम समस्या है—विशेषकर जब आउटपुट क्लाइंट के इनबॉक्स में पहुंचता है और वे उम्मीद करते हैं कि सब कुछ उपयोग के लिए तैयार हो। + +इस गाइड में हम एक ही, स्व-समाहित समाधान के माध्यम से चलेंगे जो **imports datatable to excel** करता है, **set column style** लागू करता है, और अंत में **export data to excel** को एक सुंदर स्वरूपित फ़ाइल के रूप में निर्यात करता है। आप ठीक‑ठीक देखेंगे कि **format excel cells date** कैसे किया जाए ताकि स्प्रेडशीट एक पेशेवर रिपोर्ट की तरह पढ़ी जाए, और अंत में आपको एक पूर्ण, चलाने योग्य उदाहरण मिलेगा। कोई अधूरी चीज़ नहीं, कोई “डॉक्यूमेंट देखें” शॉर्टकट नहीं—सिर्फ शुद्ध कोड जिसे आप आज ही अपने प्रोजेक्ट में डाल सकते हैं। + +--- + +## आप क्या सीखेंगे + +- कैसे **create excel workbook** Aspose.Cells लाइब्रेरी (या किसी भी संगत API) का उपयोग करके बनाएं। +- **import datatable to excel** का सबसे तेज़ तरीका, बिना मैन्युअल सेल‑बाय‑सेल लूप के। +- **set column style** की तकनीकें, जिसमें किसी विशिष्ट कॉलम पर डेट फ़ॉर्मेट लागू करना शामिल है। +- कैसे **export data to excel** एक ही `Save` कॉल से किया जाए। +- जब आप **format excel cells date** करने की कोशिश करते हैं तो आम pitfalls और उन्हें कैसे टालें। + +### पूर्वापेक्षाएँ + +- .NET 6+ (या .NET Framework 4.6+). +- Aspose.Cells for .NET स्थापित (`Install-Package Aspose.Cells`)। +- एक `DataTable` तैयार हो—आपका डेटा स्रोत SQL, CSV, या कोई भी चीज़ हो सकती है जिसे `DataTable` में बदला जा सके। + +यदि आप पहले से ही C# में सहज हैं और ये चीज़ें आपके पास हैं, तो आप तैयार हैं। अन्यथा, ऊपर दिया गया “Prerequisites” सेक्शन आपको एक त्वरित चेकलिस्ट देगा। + +--- + +## चरण 1 – Excel वर्कबुक इंस्टेंस बनाएं + +जब आप प्रोग्रामेटिक रूप से **create excel workbook** करना चाहते हैं, तो सबसे पहला काम वर्कबुक ऑब्जेक्ट को इंस्टैंशिएट करना होता है। इसे एक खाली नोटबुक खोलने के रूप में सोचें जहाँ आप बाद में अपना डेटा लिखेंगे। + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Why this matters:** +> `Workbook` क्लास Aspose.Cells में हर ऑपरेशन का एंट्री पॉइंट है। इसे पहले से बनाकर रखने से आपको एक साफ़ कैनवास मिलता है, और बाद में आप मौजूदा फ़ाइल को लोड कर सकते हैं यदि आपको स्क्रैच से शुरू किए बिना डेटा जोड़ना हो। + +--- + +## चरण 2 – इम्पोर्ट करने के लिए DataTable तैयार करें + +**import datatable to excel** करने से पहले हमें एक `DataTable` चाहिए। वास्तविक प्रोजेक्ट्स में यह अक्सर `SqlDataAdapter.Fill` या `DataTable.Load` से आता है। स्पष्टता के लिए हम एक मेथड स्टब करेंगे जो तैयार टेबल लौटाता है। + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tip:** यदि आपकी तिथियां स्ट्रिंग के रूप में संग्रहीत हैं, तो पहले उन्हें `DateTime` में बदलें—अन्यथा **format excel cells date** चरण अपेक्षित रूप से काम नहीं करेगा। + +--- + +## चरण 3 – प्रत्येक कॉलम के लिए स्टाइल परिभाषित करें (Set Column Style) + +अब वह हिस्सा आता है जहाँ हम **set column style** करेंगे। हम `Style` ऑब्जेक्ट्स की एक एरे बनाएंगे—प्रत्येक कॉलम के लिए एक। पहला कॉलम बिल्ट‑इन डेट फ़ॉर्मेट (कोड 14) प्राप्त करेगा, जबकि बाकी सामान्य फ़ॉर्मेट (कोड 0) पर रहेंगे। + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Why use style objects?** +> एक बार स्टाइल लागू करके उसे पुन: उपयोग करना प्रत्येक सेल पर अलग‑अलग फ़ॉर्मेट सेट करने से बहुत अधिक कुशल है। यह यह भी सुनिश्चित करता है कि पूरा कॉलम समान **format excel cells date** नियम का पालन करे, जो विभिन्न लोकेल में फ़ाइल खोलने पर स्थिरता के लिए आवश्यक है। + +--- + +## चरण 4 – स्टाइल के साथ DataTable को Worksheet में इम्पोर्ट करें + +वर्कबुक तैयार है और स्टाइल परिभाषित हैं, अब हम **import datatable to excel** करेंगे। `ImportDataTable` मेथड भारी काम करता है: यह कॉलम हेडर, रोज़, और पास किए गए स्टाइल को लिखता है। + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **What’s happening under the hood?** +> - `true` Aspose.Cells को बताता है कि कॉलम नामों को पहली पंक्ति में शामिल करें। +> - `0, 0` शुरुआती पंक्ति और कॉलम इंडेक्स हैं (ऊपर‑बाएँ कोना)। +> - `columnStyles` प्रत्येक कॉलम को तैयार स्टाइल से मिलाता है, जिससे डेट कॉलम पर **format excel cells date** नियम लागू हो जाता है। + +--- + +## चरण 5 – वर्कबुक को फिजिकल फ़ाइल में सहेजें (Export) + +अंत में, हम वर्कबुक को डिस्क पर सहेजकर **export data to excel** करेंगे। आप पथ को किसी भी फ़ोल्डर में बदल सकते हैं, या सीधे HTTP रिस्पॉन्स में स्ट्रीम करके वेब API के लिए भेज सकते हैं। + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** जब आपको फ़ाइल को नेटवर्क पर भेजना हो बिना डिस्क पर लिखे, तो `workbook.Save(Stream, SaveFormat.Xlsx)` का उपयोग करें। + +--- + +## पूरा कार्यशील उदाहरण (सभी चरण एक साथ) + +नीचे पूर्ण, तैयार‑चलाने योग्य प्रोग्राम है। इसे कॉन्सोल ऐप में कॉपी‑पेस्ट करें, आउटपुट पथ समायोजित करें, और कुछ सेकंड में आपके पास एक सुंदर स्वरूपित Excel फ़ाइल होगी। + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Expected output:** +जब आप `StyledTable.xlsx` खोलते हैं, तो कॉलम A में `03/19/2026` जैसी तिथियां (आपके लोकेल पर निर्भर) दिखती हैं, जबकि कॉलम B और C प्रोडक्ट नाम और क्वांटिटी को साधारण टेक्स्ट/नंबर के रूप में प्रदर्शित करते हैं। कोई अतिरिक्त फ़ॉर्मेटिंग कदम नहीं—आपकी **create excel workbook** प्रक्रिया पूरी हो गई है। + +--- + +## अक्सर पूछे जाने वाले प्रश्न और किनारे के मामलों + +### 1️⃣ यदि मेरे DataTable में तीन से अधिक कॉलम हों तो क्या करें? +`columnStyles` एरे में अधिक `Style` ऑब्जेक्ट जोड़ें, और किसी भी कॉलम के लिए जो विशेष फ़ॉर्मेट (जैसे मुद्रा, प्रतिशत) चाहिए, उसके `Number` प्रॉपर्टी को समायोजित करें। `ImportDataTable` मेथड प्रत्येक स्टाइल को स्थिति के आधार पर मिलाएगा। + +### 2️⃣ क्या मैं बिल्ट‑इन 14 के बजाय कस्टम डेट फ़ॉर्मेट लागू कर सकता हूँ? +बिल्कुल। `columnStyles[i].Number = 14;` को इस तरह बदलें: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ मैं **export data to excel** वेब API में बिना डिस्क पर लिखे कैसे करूँ? +`MemoryStream` का उपयोग करें: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ यदि उपयोगकर्ता का लोकेल अलग डेट सेपरेटर चाहता है तो क्या होगा? +बिल्ट‑इन डेट फ़ॉर्मेट (ID 14) वर्कबुक के लोकेल सेटिंग्स का सम्मान करता है। यदि आप लोकेल से स्वतंत्र एक निश्चित फ़ॉर्मेट चाहते हैं, तो ऊपर दिखाए गए अनुसार `Custom` प्रॉपर्टी का उपयोग करें। + +### 5️⃣ क्या यह .NET Core के साथ काम करता है? +हां—Aspose.Cells .NET Standard 2.0 और बाद के संस्करणों को सपोर्ट करता है, इसलिए वही कोड .NET 6, .NET 7 या किसी भी संगत रनटाइम पर चलता है। + +--- + +## सर्वोत्तम अभ्यास टिप्स (Pro Tips) + +- **Reuse styles**: प्रत्येक कॉलम के लिए स्टाइल बनाना सस्ता है, लेकिन समान कॉलमों के लिए एक ही स्टाइल ऑब्जेक्ट को पुन: उपयोग करने से मेमोरी बचती है। +- **Avoid cell‑by‑cell loops**: `ImportDataTable` अत्यधिक ऑप्टिमाइज़्ड है; मैन्युअल लूप धीमे और त्रुटिप्रवण होते हैं। +- **Set workbook culture early** यदि आपको विभिन्न वातावरणों में समान नंबर/डेट सेपरेटर चाहिए: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validate DataTable** इम्पोर्ट से पहले—null तिथियां डेट स्टाइल लागू होने पर एक्सेप्शन फेंकेगी। +- **Turn on calculation** यदि आप इम्पोर्ट के बाद फ़ॉर्मूले जोड़ते हैं: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## निष्कर्ष + +अब आपके पास एक पूर्ण, अंत‑से‑अंत रेसिपी है जो **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, और **format excel cells date** को केवल कुछ ही 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/row-and-column-management/_index.md b/cells/hindi/net/row-and-column-management/_index.md index f7e930f6e7..601cb3efef 100644 --- a/cells/hindi/net/row-and-column-management/_index.md +++ b/cells/hindi/net/row-and-column-management/_index.md @@ -61,7 +61,7 @@ ### [Aspose.Cells .NET में पंक्तियाँ और कॉलम छिपाएँ](./hide-rows-columns-aspose-cells/) .NET के लिए Aspose.Cells के साथ Excel फ़ाइलों में पंक्तियों और स्तंभों को छिपाने का तरीका जानें। C# अनुप्रयोगों में डेटा दृश्यता प्रबंधित करने के लिए चरण-दर-चरण मार्गदर्शिका। ### [Aspose.Cells .NET में पंक्तियाँ और कॉलम दिखाएँ](./unhide-rows-columns-aspose-cells/) -हमारे चरण-दर-चरण गाइड के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel में पंक्तियों और स्तंभों को अनहाइड करना सीखें। डेटा हेरफेर के लिए बिल्कुल सही। +हमारे चरण-दर-स्टेप गाइड के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel में पंक्तियों और स्तंभों को अनहाइड करना सीखें। डेटा हेरफेर के लिए बिल्कुल सही। ### [Aspose.Cells .NET में एक कॉलम हटाएँ](./delete-column-aspose-cells/) .NET के लिए Aspose.Cells का उपयोग करके Excel फ़ाइल में कॉलम को हटाने का तरीका जानें। अपने Excel फ़ाइल संशोधनों को सरल बनाने के लिए हमारे विस्तृत, चरण-दर-चरण मार्गदर्शिका का पालन करें। ### [Aspose.Cells .NET में एक पंक्ति हटाएँ](./delete-row-aspose-cells/) @@ -76,6 +76,7 @@ .NET के लिए Aspose.Cells का उपयोग करके Excel में फ़ॉर्मेटिंग के साथ पंक्ति सम्मिलित करना सीखें। आसान कार्यान्वयन के लिए हमारे चरण-दर-चरण मार्गदर्शिका का पालन करें। ### [Aspose.Cells .NET में एकाधिक पंक्तियाँ सम्मिलित करें](./insert-multiple-rows-aspose-cells/) .NET के लिए Aspose.Cells का उपयोग करके Excel में कई पंक्तियाँ सम्मिलित करना सीखें। निर्बाध डेटा हेरफेर के लिए हमारे विस्तृत ट्यूटोरियल का पालन करें। +### [Excel फ़ाइल लोड करें C# – पंक्तियों को हटाएँ और विशिष्ट पंक्तियों को हटाएँ](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/hindi/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..39c4fbf53e --- /dev/null +++ b/cells/hindi/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-21 +description: C# में Aspose.Cells के साथ Excel फ़ाइल लोड करें और डेटा पंक्तियों को + हटाएँ। सीखें कैसे पंक्तियों को डिलीट करें, विशिष्ट पंक्तियों को हटाएँ, और मिनटों + में C# Excel पंक्ति हटाने में महारत हासिल करें। +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: hi +og_description: C# में Excel फ़ाइल लोड करें और तेज़ी से पंक्तियों को हटाएँ, विशिष्ट + पंक्तियों को हटाएँ, और Aspose.Cells का उपयोग करके C# Excel पंक्ति हटाने को संभालें। + पूर्ण चरण‑दर‑चरण गाइड। +og_title: Excel फ़ाइल लोड करें C# – पंक्तियों को हटाएँ और विशिष्ट पंक्तियों को हटाएँ +tags: +- C# +- Excel +- Aspose.Cells +title: Excel फ़ाइल लोड करें C# – पंक्तियों को हटाने और विशिष्ट पंक्तियों को निकालने + का तरीका +url: /hi/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel फ़ाइल C# लोड करना – पंक्तियों को हटाना और विशिष्ट पंक्तियों को हटाना + +क्या आपको कभी **load Excel file C#** करने की ज़रूरत पड़ी है और फिर उन पंक्तियों को हटाना पड़ा है जिनकी आपको ज़रूरत नहीं है? शायद आप डेटा डंप को साफ़ कर रहे हैं, या आपके पास एक टेम्पलेट है जहाँ कुछ पंक्तियों को क्लाइंट को वर्कबुक भेजने से पहले हटाना आवश्यक है। किसी भी तरह, समस्या वही है: आपके पास डिस्क पर एक `.xlsx` फ़ाइल है, आप इसे .NET में खोलना चाहते हैं, और आपको **पंक्तियों को हटाना** है बिना किसी छिपी हुई टेबल या लिस्ट ऑब्जेक्ट को बिगाड़े। + +बात यह है—Aspose.Cells इसे बहुत आसान बना देता है। इस ट्यूटोरियल में आप एक पूर्ण, तैयार‑चलाने‑योग्य उदाहरण देखेंगे जो बिल्कुल दिखाता है **पंक्तियों को कैसे हटाएँ**, **विशिष्ट पंक्तियों को कैसे हटाएँ**, और क्यों आपको **c# excel row deletion** की परवाह हो सकती है। अंत तक आपके पास एक साफ़ `output.xlsx` होगा जिसमें केवल वही पंक्तियाँ होंगी जो आप चाहते हैं। + +## इस गाइड में क्या कवर किया गया है + +- Aspose.Cells का उपयोग करके डिस्क से Excel वर्कबुक लोड करना। +- किसी भी ListObject हेडर का सम्मान करते हुए पंक्तियों की रेंज (जैसे, rows 5‑10) को हटाना। +- संशोधित वर्कबुक को फ़ाइल सिस्टम में वापस सेव करना। +- सामान्य समस्याएँ, जैसे टेबल के अंदर पंक्तियों को अनजाने में हटाना, और उन्हें संभालने के टिप्स। +- एक पूर्ण, चलाने योग्य कोड नमूना जिसे आप आज ही एक कंसोल ऐप में डाल सकते हैं। + +> **Prerequisites** +> • .NET 6+ (या .NET Framework 4.6+). +> • NuGet के माध्यम से स्थापित Aspose.Cells for .NET (`Install-Package Aspose.Cells`). +> • C# और Excel अवधारणाओं (वर्कशीट्स, सेल्स, टेबल्स) की बुनियादी परिचितता। + +यदि आप सोच रहे हैं **आपको Aspose.Cells का उपयोग क्यों करना चाहिए** `Microsoft.Office.Interop.Excel` की बजाय, तो उत्तर है गति, COM की आवश्यकता नहीं, और सर्वरों पर Office स्थापित किए बिना चलाने की क्षमता। साथ ही, API पंक्ति‑हटाने के कार्यों के लिए सीधा है। + +## चरण 1: C# में Excel वर्कबुक लोड करें + +किसी भी चीज़ को हटाने से पहले, आपको वर्कबुक को मेमोरी में लाना होगा। `Workbook` क्लास पूरे Excel फ़ाइल का प्रतिनिधित्व करती है। + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**यह क्यों महत्वपूर्ण है:** +फ़ाइल को लोड करने से एक ऑब्जेक्ट ग्राफ बनता है जो Excel संरचना—वर्कशीट्स, सेल्स, टेबल्स आदि—को प्रतिबिंबित करता है। `ws` का रेफ़रेंस रखकर आप पंक्तियों को सीधे हेर-फेर कर सकते हैं बिना फ़ाइल लॉक या COM इंटरऑप की अजीबताओं की चिंता किए। + +## चरण 2: केवल डेटा वाली पंक्तियों को हटाएँ + +अब जब वर्कबुक मेमोरी में है, आप पंक्तियों को हटा सकते हैं। मेथड `Cells.DeleteRows(startRow, totalRows)` एक सतत ब्लॉक को हटाता है। हमारे उदाहरण में हम rows 5‑10 को हटाएँगे। + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**यह कैसे काम करता है:** +- `startRow` शून्य‑आधारित है, इसलिए `5` वास्तव में Excel की पंक्ति 6 को दर्शाता है। तदनुसार समायोजित करें। +- यदि वर्कशीट में एक **ListObject** (Excel टेबल) है जिसका हेडर पंक्ति 4 पर है, तो Aspose.Cells हेडर की सुरक्षा करेगा और केवल उसके नीचे की डेटा पंक्तियों को हटाएगा। यह अंतर्निहित सुरक्षा संरचित टेबल्स को भ्रष्ट होने से बचाती है—एक सामान्य किनारा मामला जब **डेटा पंक्तियों को हटाना**। + +> **Pro tip:** यदि आपको गैर‑सतत पंक्तियों को हटाना है (जैसे, rows 3, 7, 12), तो पंक्ति सूचकांकों के उल्टे संग्रह पर लूप करें और प्रत्येक के लिए `DeleteRows(rowIndex, 1)` कॉल करें। नीचे से ऊपर की ओर हटाने से शेष पंक्तियों के मूल सूचकांक संरक्षित रहते हैं। + +## चरण 3: संशोधित वर्कबुक को सेव करें + +एक बार अनावश्यक पंक्तियाँ हट जाने के बाद, आप बस वर्कबुक को वापस डिस्क पर लिखते हैं। + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +`Save` मेथड स्वचालित रूप से एक्सटेंशन (`.xlsx` इस मामले में) से फ़ाइल फ़ॉर्मेट निर्धारित करता है। यदि आपको अलग फ़ॉर्मेट चाहिए—CSV, PDF, आदि—तो बस एक्सटेंशन बदलें या `SaveFormat` एनोम पास करें। + +### अपेक्षित परिणाम + +`output.xlsx` को Excel में खोलें और आप देखेंगे कि rows 5‑14 (मूल rows 5‑10) हट गई हैं। बाकी सभी डेटा उसी अनुसार ऊपर शिफ्ट हो जाता है, और हटाई गई पंक्तियों को संदर्भित करने वाले किसी भी फ़ॉर्मूले को Aspose.Cells द्वारा स्वचालित रूप से समायोजित किया जाता है। + +## अक्सर पूछे जाने वाले प्रश्न (FAQ) + +### मैं शर्त के आधार पर पंक्तियों को कैसे हटाऊँ (जैसे, सभी पंक्तियाँ जहाँ कॉलम A खाली है)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +लूप पीछे की ओर चलता है ताकि सूचकांक शिफ्ट न हो। यह पैटर्न व्यापक **c# excel row deletion** प्रश्न का उत्तर देता है जब आपको शर्तीय लॉजिक की आवश्यकता होती है। + +### यदि मेरी वर्कशीट में कई ListObjects हों तो क्या करें? + +Aspose.Cells प्रत्येक ListObject को स्वतंत्र रूप से संभालता है। यदि किसी भी टेबल का हेडर हटाने की रेंज से प्रभावित होगा, तो API `InvalidOperationException` फेंकेगा। इसे हल करने के लिए, या तो रेंज को समायोजित करें या अस्थायी रूप से ListObject की `ShowTableStyleFirstColumn` प्रॉपर्टी को साफ़ करें, हटाना करें, फिर उसे पुनर्स्थापित करें। + +### क्या मैं पूरी वर्कबुक को मेमोरी में लोड किए बिना पंक्तियों को हटा सकता हूँ? + +हाँ—Aspose.Cells एक **स्ट्रीमिंग API** (`Workbook.LoadOptions`) प्रदान करता है जो डेटा को चंक्स में पढ़ता है। हालांकि, पंक्ति हटाने के लिए वर्कशीट की संरचना आवश्यक होती है, इसलिए आपको लक्ष्य शीट को फिर भी मेमोरी में लोड करना पड़ेगा। बहुत बड़े फ़ाइलों (>500 MB) के लिए बैच में प्रोसेसिंग या **सेल‑बाय‑सेल** API का उपयोग करने पर विचार करें। + +## पूर्ण, चलाने योग्य उदाहरण + +नीचे पूरा प्रोग्राम है जिसे आप कंसोल ऐप के रूप में संकलित और चला सकते हैं। `YOUR_DIRECTORY` को अपने मशीन पर वास्तविक फ़ोल्डर पथ से बदलें। + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**कोड चलाना:** +1. एक टर्मिनल या Visual Studio खोलें। +2. `dotnet new console -n ExcelRowDeletionDemo` +3. `Program.cs` को ऊपर दिए गए स्निपेट से बदलें। +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +आपको कंसोल आउटपुट में हटाने की पुष्टि और सेव की गई फ़ाइल का स्थान दिखना चाहिए। + +## सामान्य समस्याएँ और उन्हें कैसे बचें + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **अनजाने में ListObject हेडर हटाना** | `DeleteRows` रेंज के ओवरलैप होने पर छिपे हुए टेबल हेडर की जाँच नहीं करता है। | सुनिश्चित करें कि आपका start row किसी भी टेबल हेडर के **बाद** है, या टेबल के भीतर पंक्तियों को हटाने के लिए `ListObject` API का उपयोग करें (`ListObject.DeleteRows`). | +| **पंक्ति सूचकांक एक से ऑफ** | Aspose.Cells शून्य‑आधारित इंडेक्सिंग उपयोग करता है, जबकि Excel उपयोगकर्ता 1‑आधारित सोचते हैं। | कोड लिखते समय Excel पंक्ति संख्या से 1 घटाना याद रखें। | +| **हटाने के बाद फ़ॉर्मूले टूटना** | पंक्तियों को हटाने से `#REF!` त्रुटियाँ हो सकती हैं यदि फ़ॉर्मूले हटाई गई पंक्तियों को संदर्भित करते हैं। | Aspose.Cells अधिकांश फ़ॉर्मूलों को स्वचालित रूप से अपडेट करता है, लेकिन किसी भी बाहरी रेफ़रेंस या नामित रेंज को दोबारा जांचें। | +| **बड़ी फ़ाइलों पर प्रदर्शन में गिरावट** | कई पंक्तियों को हटाने से आंतरिक पुनः‑इंडेक्सिंग ट्रिगर होती है। | एकल‑पंक्ति हटाने की बजाय बैच हटाने (एक बार बड़ी रेंज हटाएँ) करें। जहाँ संभव हो `DeleteRows(start, count)` का उपयोग करें। | + +## अगले कदम और संबंधित विषय + +- **सेल मानों के आधार पर विशिष्ट पंक्तियों को हटाएँ:** FAQ में दिखाए गए शर्तीय लूप को `DeleteRows` के साथ मिलाएँ। +- **बड़े पैमाने पर पंक्तियों का सम्मिलन:** डेटा भरने से पहले प्लेसहोल्डर पंक्तियों को जोड़ने के लिए `InsertRows` का उपयोग करें। +- **टेबल्स (ListObjects) के साथ काम करना:** संरचित टेबल्स के भीतर पंक्ति‑स्तर ऑपरेशन्स के लिए `ListObject` मेथड्स का अन्वेषण करें। +- **पंक्ति हटाने के बाद CSV में निर्यात:** हटाई गई पंक्तियों के बिना साफ़ CSV बनाने के लिए `workbook.Save("output.csv", SaveFormat.Csv)` कॉल करें। + +## निष्कर्ष + +हमने **load excel file c#** की एक व्यावहारिक स्थिति को समझाया, **पंक्तियों को कैसे हटाएँ** दिखाया, और Aspose.Cells का उपयोग करके **विशिष्ट पंक्तियों को हटाना** और **डेटा पंक्तियों को हटाना** के बारीकियों को कवर किया। वर्कबुक को लोड करके, `DeleteRows` कॉल करके, और परिणाम को सेव करके आप COM इंटरऑप के ओवरहेड के बिना विश्वसनीय **c# excel row deletion** प्राप्त करते हैं। + +इसे वास्तविक डेटा सेट पर आज़माएँ—शायद एक बिक्री रिपोर्ट को साफ़ करें या टेम्प्लेट से परीक्षण पंक्तियों को हटाएँ। एक बार जब आप सहज हो जाएँ, तो शर्तीय हटाने और टेबल‑सजग ऑपरेशन्स के साथ प्रयोग करें। API इतना मजबूत है कि यह सरल स्क्रिप्ट्स और एंटरप्राइज़‑ग्रेड बैच प्रोसेसर दोनों के लिए उपयुक्त है। + +कोडिंग का आनंद लें, और यदि आपको कोई समस्या आती है तो टिप्पणी छोड़ने में संकोच न करें! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/hindi/net/worksheet-operations/_index.md index 0581f9acc6..9b7e3d6f00 100644 --- a/cells/hindi/net/worksheet-operations/_index.md +++ b/cells/hindi/net/worksheet-operations/_index.md @@ -36,6 +36,8 @@ .NET के लिए Aspose.Cells के साथ Excel फ़ाइलों से हाइपरलिंक्स को आसानी से निकालें और प्रबंधित करें। चरण-दर-चरण मार्गदर्शिका और कोड उदाहरण शामिल हैं। ### [.NET में HTML के लिए छवि प्राथमिकताएँ सेट करना](./setting-image-preferences-for-html/) .NET के लिए Aspose.Cells की शक्ति अनलॉक करें। अपने Excel डेटा को वेब पर खूबसूरती से प्रस्तुत करने के लिए HTML रूपांतरण के लिए छवि प्राथमिकताएँ सेट करना सीखें। +### [वर्कशीट बनाना कैसे – डायनामिक एक्सेल जनरेशन के लिए चरण‑दर‑चरण गाइड](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +.NET के लिए Aspose.Cells का उपयोग करके डायनामिक एक्सेल फ़ाइलों के लिए वर्कशीट बनाने की चरण‑दर‑चरण प्रक्रिया। ### [वर्कशीट में थ्रेडेड टिप्पणियाँ जोड़ें](./add-threaded-comments/) इस चरण-दर-चरण ट्यूटोरियल के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel वर्कशीट में थ्रेडेड टिप्पणियाँ जोड़ना सीखें। सहयोग को सहजता से बढ़ाएँ। ### [वर्कशीट में कोशिकाओं की संख्या गिनें](./count-cells/) diff --git a/cells/hindi/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/hindi/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..979fa0bca8 --- /dev/null +++ b/cells/hindi/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,277 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells का उपयोग करके C# में वर्कशीट बनाना, डायनामिक वर्कशीट नामों + के साथ एक्सेल शीट्स जेनरेट करना और वर्कबुक को XLSX के रूप में सहेजना सीखें। +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: hi +og_description: Aspose.Cells का उपयोग करके Excel में वर्कशीट्स कैसे बनाएं, डायनामिक + वर्कशीट नामों के साथ Excel शीट्स जनरेट करें, और वर्कबुक को XLSX के रूप में सहेजें। +og_title: वर्कशीट कैसे बनाएं – पूर्ण C# ट्यूटोरियल +tags: +- Aspose.Cells +- C# +- Excel automation +title: वर्कशीट कैसे बनाएं – डायनामिक एक्सेल जेनरेशन के लिए चरण‑दर‑चरण गाइड +url: /hi/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Create Worksheets – Complete C# Tutorial + +क्या आपने कभी सोचा है **वर्कशीट्स को तुरंत कैसे बनाएं** बिना हर बार मैन्युअली Excel खोलें? आप अकेले नहीं हैं। कई डेवलपर्स को यह समस्या आती है जब उन्हें डेटा स्रोतों से **Excel शीट्स जेनरेट** करनी होती हैं और प्रत्येक शीट को एक अर्थपूर्ण, डायनेमिक नाम देना होता है। अच्छी खबर? Aspose.Cells के साथ आप पूरे प्रोसेस को ऑटोमेट कर सकते हैं, **process master sheet**, और अंत में **save workbook as XLSX** सिर्फ कुछ लाइनों के कोड में। + +इस ट्यूटोरियल में हम एक रियल‑वर्ल्ड सीनारियो को देखेंगे: एक खाली वर्कबुक से शुरू करना, एक स्मार्ट‑मार्कर टोकन डालना जो Aspose को बताता है कि कौन‑सी डिटेल शीट्स बनानी हैं, एक नेमिंग पैटर्न कॉन्फ़िगर करना ताकि प्रत्येक शीट को एक यूनिक नाम मिले, और अंत में परिणाम को डिस्क पर सेव करना। अंत तक आपके पास एक तैयार‑चलाने‑योग्य C# प्रोग्राम होगा जो वर्कशीट्स बनाता है, डायनेमिक वर्कशीट नामों के साथ Excel शीट्स जेनरेट करता है, और वर्कबुक को XLSX के रूप में सेव करता है—बिना UI को छुए। + +> **Prerequisites** +> • .NET 6+ (या .NET Framework 4.6+). +> • Aspose.Cells for .NET (इस डेमो के लिए फ्री ट्रायल काम करता है). +> • बेसिक C# नॉलेज—कोई डीप Excel इंटरऑप ट्रिक्स की जरूरत नहीं. + +--- + +## Overview of What We’ll Build + +- **Master sheet** जिसमें एक स्मार्ट‑मार्कर प्लेसहोल्डर (`«DetailSheetNewName:Dept»`) है। +- **SmartMarkerProcessor** जो एक डेटा सोर्स (जैसे `DataTable`) पढ़ता है और प्रत्येक डिपार्टमेंट के लिए नई वर्कशीट बनाता है। +- **Dynamic worksheet names** पैटर्न `Dept_{0}` के साथ, जहाँ `{0}` को डिपार्टमेंट नाम से रिप्लेस किया जाता है। +- **Final XLSX file** जिसे आप निर्दिष्ट फ़ोल्डर में सेव करेंगे। + +बस इतना ही। सरल, फिर भी इनवॉइस, रिपोर्ट या किसी भी मल्टी‑टैब Excel आउटपुट के लिए पर्याप्त पावरफुल। + +--- + +![Diagram showing how a master sheet is processed to generate multiple dynamic worksheets](/images/how-to-create-worksheets-diagram.png "How to create worksheets diagram") + +*Alt text: Aspose.Cells का उपयोग करके डायनेमिक वर्कशीट नामों के साथ वर्कशीट्स बनाने का चित्रण.* + +--- + +## Step 1: Set Up the Project and Add Aspose.Cells + +### Why this matters +कोई भी कोड चलाने से पहले, कंपाइलर को यह पता होना चाहिए कि `Workbook`, `Worksheet`, और `SmartMarkerProcessor` क्लासेज़ कहाँ स्थित हैं। NuGet पैकेज जोड़ने से आपको नवीनतम, पूरी‑फ़ीचर वाली API मिलती है। + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro tip:** यदि आप Visual Studio का उपयोग कर रहे हैं, प्रोजेक्ट पर राइट‑क्लिक → *Manage NuGet Packages* → *Aspose.Cells* खोजें और नवीनतम स्थिर संस्करण इंस्टॉल करें। + +--- + +## Step 2: Create a New Workbook and the Master Sheet + +### What we’re doing +हम एक क्लीन वर्कबुक से शुरू करते हैं, फिर पहली वर्कशीट (इंडेक्स 0) को प्राप्त करते हैं। यह शीट **master sheet** के रूप में कार्य करेगी जिसमें स्मार्ट‑मार्कर टोकन रहेगा। + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +`Workbook` क्लास सभी वर्कशीट्स का कंटेनर है। डिफ़ॉल्ट रूप से यह *Sheet1* नाम की एक शीट बनाता है; इसे “Master” नाम देने से अंतिम फ़ाइल नेविगेट करना आसान हो जाता है। + +--- + +## Step 3: Insert a Smart‑Marker Token for Detail Sheet Names + +### Why use a smart‑marker? +स्मार्ट मार्कर्स Aspose.Cells को रन‑टाइम पर प्लेसहोल्डर्स को डेटा से बदलने की अनुमति देते हैं। टोकन `«DetailSheetNewName:Dept»` प्रोसेसर को बताता है: *“जब आप इसे देखें, `Dept` कॉलम की प्रत्येक रो के लिए एक नई डिटेल शीट बनाएं।”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +आप टोकन कहीं भी रख सकते हैं; हमने स्पष्टता के लिए **A1** चुना। जब प्रोसेसर चलाया जाएगा, यह टोकन को वास्तविक डिपार्टमेंट नाम से बदल देगा और एक संबंधित वर्कशीट जेनरेट करेगा। + +--- + +## Step 4: Prepare the Data Source + +### How the data drives sheet creation +Aspose.Cells किसी भी `IEnumerable` डेटा सोर्स के साथ काम करता है। इस डेमो के लिए हम एक `DataTable` का उपयोग करेंगे जिसमें एक सिंगल कॉलम `Dept` होगा। + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **What if you have more columns?** +> प्रोसेसर अतिरिक्त कॉलम को अनदेखा कर देगा जब तक आप उन्हें अतिरिक्त स्मार्ट मार्कर्स में रेफ़र नहीं करते। इससे शीट जेनरेशन हल्का रहता है। + +--- + +## Step 5: Configure the SmartMarkerProcessor and Naming Pattern + +### Dynamic worksheet names in action +हम चाहते हैं कि प्रत्येक नई शीट का नाम `Dept_Finance`, `Dept_HR` आदि हो। `DetailSheetNewName` ऑप्शन हमें एक पैटर्न डिफ़ाइन करने देता है जहाँ `{0}` को वास्तविक डिपार्टमेंट नाम से बदल दिया जाता है। + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +यदि कोई डिपार्टमेंट दो बार आता है, तो Aspose स्वचालित रूप से एक न्यूमेरिक सफ़िक्स जोड़ देगा (जैसे `Dept_Finance_1`) ताकि डुप्लिकेट शीट नाम न बनें। + +--- + +## Step 6: Process the Master Sheet to Generate Detail Sheets + +### The core of **process master sheet** +`Process` कॉल करने से भारी काम हो जाता है: यह मास्टर शीट में स्मार्ट मार्कर्स को स्कैन करता है, नई वर्कशीट्स बनाता है, मास्टर लेआउट को कॉपी करता है, और प्रत्येक रो के डेटा से भरता है। + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +इस कॉल के बाद, वर्कबुक में एक मास्टर शीट और चार डिटेल शीट्स होंगी—हर एक हमारे पैटर्न के अनुसार नामित और सेल A1 में डिपार्टमेंट नाम के साथ पॉप्युलेटेड। + +--- + +## Step 7: Save the Workbook as XLSX + +### Final step—**save workbook as XLSX** +अब जब वर्कशीट्स बन गई हैं, हम फ़ाइल को डिस्क पर लिखते हैं। आप कोई भी पाथ चुन सकते हैं; बस यह सुनिश्चित करें कि डायरेक्टरी मौजूद हो। + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +`DetailSheets.xlsx` खोलने पर यह दिखेगा: + +| Sheet Name | Cell A1 (Content) | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Edge case:** यदि आउटपुट फ़ोल्डर मौजूद नहीं है, तो `Save` `DirectoryNotFoundException` थ्रो करेगा। कॉल को try‑catch ब्लॉक में रैप करें या पहले फ़ोल्डर बनाएं। + +--- + +## Full Working Example + +सब कुछ एक साथ मिलाकर, यहाँ पूरा प्रोग्राम है जिसे आप कॉन्सोल ऐप में कॉपी‑पेस्ट कर सकते हैं: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +प्रोग्राम चलाएँ, परिणामी फ़ाइल खोलें, और आप ऊपर वर्णित लेआउट देखेंगे। कोई मैनुअल कॉपी‑पेस्ट नहीं, कोई COM इंटरऑप नहीं—सिर्फ साफ़ C# कोड जो **Excel शीट्स जेनरेट** करता है **डायनेमिक वर्कशीट नामों** के साथ। + +--- + +## Common Questions & Gotchas + +| Question | Answer | +|----------|--------| +| *Can I use a DataSet with multiple tables?* | हाँ। उपयुक्त टेबल को `Process` में पास करें या टेबल्स की डिक्शनरी उपयोग करें। | +| *What if I need more than one smart‑marker on the master sheet?* | अतिरिक्त टोकन्स जैसे `«DetailSheetNewName:Region»` रखें और आवश्यक होने पर अलग नेमिंग पैटर्न कॉन्फ़िगर करें। | +| *Is the master sheet kept in the final file?* | डिफ़ॉल्ट रूप से हाँ। यदि आपको इसकी ज़रूरत नहीं है, तो प्रोसेसिंग के बाद `workbook.Worksheets.RemoveAt(0)` कॉल करें। | +| *How does Aspose handle very large data sets?* | यह डेटा को प्रभावी ढंग से स्ट्रीम करता है, लेकिन यदि मेमोरी लिमिट्स तक पहुँचते हैं तो `MemorySetting` बढ़ा सकते हैं। | +| *Can I export to CSV instead of XLSX?* | बिल्कुल—`workbook.Save("file.csv", SaveFormat.Csv)` उपयोग करें। वही शीट‑क्रिएशन लॉजिक लागू रहेगा। | + +--- + +## Next Steps + +अब जब आप **वर्कशीट्स को डायनेमिकली कैसे बनाएं** जानते हैं, तो आप आगे देख सकते हैं: + +- **Saving workbook as XLSX** के साथ पासवर्ड प्रोटेक्शन (`workbook.Protect("pwd")`)। +- **Generating Excel sheets** JSON या XML सोर्सेज़ से `JsonDataSource` या `XmlDataSource` का उपयोग करके। +- **Applying styles** प्रत्येक जेनरेटेड शीट पर (फ़ॉन्ट, कलर) `Style` ऑब्जेक्ट्स के माध्यम से। +- **Merging cells** या फ़ॉर्मूले ऑटोमैटिकली इन्सर्ट करना समरी रिपोर्ट्स के लिए। + +इन सभी एक्सटेंशन का आधार वही **process master sheet** कॉन्सेप्ट है, इसलिए ट्रांज़िशन आसान रहेगा। + +--- + +## Conclusion + +हमने पूरी पाइपलाइन को कवर किया: वर्कबुक इनिशियलाइज़ करना, स्मार्ट‑मार्कर डालना, **डायनेमिक वर्कशीट नाम** कॉन्फ़िगर करना, मास्टर शीट को **Excel शीट्स जेनरेट** करने के लिए प्रोसेस करना, और अंत में **वर्कबुक को XLSX के रूप में सेव** करना। उदाहरण पूर्ण, रन‑एबल, और परफ़ॉर्मेंस एवं मेंटेनेबिलिटी के बेस्ट प्रैक्टिस को दिखाता है। + +इसे ट्राय करें, नेमिंग पैटर्न को कस्टमाइज़ करें, वास्तविक बिज़नेस डेटा फ़ीड करें, और देखें आपका 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/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/hongkong/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..06164cb719 --- /dev/null +++ b/cells/hongkong/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-21 +description: 如何在 C# 中使用 Aspose.Cells 計算工作簿 – 學習建立 Excel 工作簿、填寫 Excel 儲存格、計算 Excel + 公式,以及使用排序功能。 +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: zh-hant +og_description: 快速在 C# 中計算活頁簿。本教學示範如何建立 Excel 活頁簿、填寫儲存格、計算 Excel 公式,以及使用排序功能。 +og_title: 如何在 C# 中計算工作簿 – 完整排序指南 +tags: +- C# +- Aspose.Cells +- Excel Automation +title: 在 C# 中如何計算工作簿 – 排序與公式指南 +url: /zh-hant/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中計算 Workbook – 排序與公式指南 + +有沒有想過 **如何在不開啟 Excel 的情況下即時計算 workbook** 的值?你並不孤單。在許多自動化情境中,你需要產生一個 Excel 檔案、寫入一些數字、對它們排序,然後把結果讀回你的 .NET 應用程式——全程程式化。 + +在本指南中,我們將一步步示範:**建立 Excel workbook**、**填入 Excel 儲存格**、加入 **SORT** 公式,最後 **計算 Excel 公式**,讓你能直接從 C# 讀取排序後的陣列。完成後,你將得到一段可直接放入任何參考 Aspose.Cells(或類似函式庫)之專案的可執行程式碼片段。 + +## 前置條件 + +- .NET 6+(此程式碼同樣適用於 .NET Framework 4.7.2) +- Aspose.Cells for .NET(免費試用 NuGet 套件 `Aspose.Cells`) +- 基本的 C# 語法概念 +- 不需要安裝 Microsoft Excel;函式庫會為你處理所有繁重工作 + +如果你已符合上述條件,讓我們開始吧。 + +## 如何計算 Workbook – 初始化 Workbook + +首先要做的事就是建立一個全新的 workbook 物件。把它想像成開啟一個全新、完全空白的 Excel 檔案。 + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **為什麼這很重要:** `Workbook` 類別是所有操作的入口點——沒有它就無法新增工作表、儲存格或公式。正確初始化可確保你從乾淨的狀態開始。 + +## 建立 Excel Workbook 並存取工作表 + +Workbook 建立後,我們需要確保指向正確的工作表。大多數函式庫預設只有一張名為 “Sheet1” 的工作表,但你可以自行重新命名或新增更多工作表。 + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **小技巧:** 早期命名工作表有助於之後在公式中引用(例如 `'Data'!A1:A10`),同時也讓除錯更容易。 + +## 填入 Excel 儲存格資料 + +接下來,我們會 **populate excel cells**,把要排序的數字寫入儲存格。範例只使用兩個儲存格,你可以自行擴展至數十列。 + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **為什麼使用 `PutValue`:** 它會自動偵測資料類型(int、double、string 等),並以正確方式儲存,省去手動型別轉換的麻煩。 + +## 透過公式套用 SORT 函數 + +Excel 的 `SORT` 函數正如其名:返回排序後的陣列,且不會改變原始資料。我們會把這個公式放入儲存格 `B1`。 + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **邊緣情況說明:** `SORT` 會回傳 **陣列** 結果。舊版 Excel(Office 365 之前)需要以 Ctrl+Shift+Enter 進行陣列公式;使用 Aspose.Cells 時,計算 workbook 後會自動取得陣列。 + +## 計算 Excel 公式以取得結果 + +此時 workbook 只知道 *要計算什麼*,卻不知道 *要執行計算*。呼叫 `CalculateFormula` 會觸發引擎評估所有公式,包括我們的 `SORT`。 + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**預期的主控台輸出** + +``` +Sorted array: {2, 5} +``` + +> **剛剛發生了什麼?** +> 1. workbook 建立了內部計算引擎。 +> 2. `SORT` 公式檢查範圍 `A1:A2`。 +> 3. 引擎產生新陣列,我們從 `B1` 取得結果。 + +如果你變更 `A1`、`A2` 的值(或擴大範圍)並重新執行 `CalculateFormula`,輸出會自動更新——不需要額外程式碼。 + +## 在較大資料集上使用 Sort 函數(可選) + +大多數實務情境會超過兩列。以下是一段可適用於任意筆數的快速調整程式碼: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **為什麼可能需要這樣做:** 對大型範圍排序可用於產生排行榜、排序金融資料,或在進一步處理前清理匯入的 CSV。 + +## 常見陷阱與避免方式 + +| 問題 | 為什麼會發生 | 解決方式 | +|------|--------------|----------| +| **`#VALUE!` 出現在 B1** | `SORT` 公式引用了空的或非數值的範圍。 | 確保來源範圍內的每個儲存格皆包含可排序的數字或文字。 | +| **陣列截斷** | 嘗試從單一儲存格讀取陣列卻未進行型別轉換。 | 將 `worksheet.Cells["B1"].Value` 轉型為 `object[]`(或相應型別)。 | +| **效能下降** | 每次微小變更後都重新計算巨大的 workbook。 | 僅在完成所有變更後呼叫 `CalculateFormula`,或使用 `CalculateFormulaOptions` 限制計算範圍。 | + +## 完整可執行範例(直接複製貼上) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **結果截圖** +> ![how to calculate workbook result in Excel](https://example.com/images/sorted-result.png "how to calculate workbook result in Excel") + +上圖顯示計算後的 workbook——儲存格 **B1** 包含排序後的陣列 `{2, 5}`。 + +## 結論 + +我們剛剛示範了 **如何以程式方式計算 workbook** 的值:建立 Excel workbook、填入 Excel 儲存格、嵌入 `SORT` 公式,最後 **計算 Excel 公式** 以擷取排序資料。此方法適用於簡單的兩格範例,也能順利擴展至更大的資料集。 + +接下來可以嘗試結合其他函數,如 `FILTER`、`UNIQUE`,或透過 `WorksheetFunction` 實作自訂的 VBA 風格邏輯。你也可以將 workbook 寫入磁碟(`workbook.Save("Sorted.xlsx")`),在 Excel 中視覺驗證結果。 + +盡情實驗吧——更換數字、調整範圍,或串接多個公式。自動化的核心在於快速迭代,而現在你已擁有堅實的基礎可以持續構建。 + +祝程式開發順利,願你的 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/hongkong/net/conversion-and-rendering/_index.md b/cells/hongkong/net/conversion-and-rendering/_index.md index 97cfdc06e5..4b5e2ebc96 100644 --- a/cells/hongkong/net/conversion-and-rendering/_index.md +++ b/cells/hongkong/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ 透過本逐步指南了解如何使用 Aspose.Cells for .NET 將 Excel 工作表轉換為 SVG。非常適合希望將 Excel 呈現為 SVG 的 .NET 開發人員。 ### [在 .NET 中將 Excel 轉換為 MHTML](./converting-excel-to-mhtml/) 了解如何使用 Aspose.Cells 在 .NET 中有效地將 Excel 檔案轉換為 MHTML 格式,從而增強您的報表和資料共享能力。 +### [從 Excel 建立圖像 – 在 C# 中匯出樞紐分析表為 PNG](./create-image-from-excel-export-pivot-to-png-in-c/) +學習如何使用 Aspose.Cells for .NET 將 Excel 樞紐分析表匯出為 PNG 圖像,適用於 C# 開發人員。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/hongkong/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..81009bf5b1 --- /dev/null +++ b/cells/hongkong/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-21 +description: 使用 Aspose.Cells 在 C# 中從 Excel 建立圖像。學習如何將 Excel 轉換為圖像、匯出樞紐分析表,並將圖像儲存為 + PNG,提供完整可執行的範例。 +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: zh-hant +og_description: 快速在 C# 中從 Excel 建立圖像。本指南示範如何將 Excel 轉換為圖像、匯出樞紐分析表,並以清晰的程式碼將圖像儲存為 PNG。 +og_title: 從 Excel 產生圖像 – 在 C# 中匯出樞紐分析表為 PNG +tags: +- C# +- Aspose.Cells +- Excel automation +title: 從 Excel 建立圖像 – 在 C# 中將樞紐分析表匯出為 PNG +url: /zh-hant/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 從 Excel 建立圖像 – 在 C# 中匯出樞紐分析表為 PNG + +是否曾需要 **create image from Excel**,卻不確定要使用哪個 API?你並不孤單——許多開發者在嘗試將即時的樞紐分析表轉換為可分享的 PNG 時,都會卡在這裡。 + +在本教學中,我們將一步步示範完整、可直接執行的解決方案,說明 **converts Excel to image**、展示 **how to export pivot**,以及 **how to save image** 為 PNG 檔案。完成後,你將擁有一個一次完成全部工作的單一方法,並提供可能遇到的邊緣情況的技巧。 + +## 需要的環境 + +- **Aspose.Cells for .NET**(NuGet 套件 `Aspose.Cells`)。這是一套商業函式庫,但提供免費評估模式,適合測試使用。 +- .NET 6+(或 .NET Framework 4.6+)。 +- 一個簡單的 Excel 活頁簿(`Pivot.xlsx`),內含至少一個樞紐分析表。 +- 任意你喜歡的 IDE——Visual Studio、Rider,或甚至 VS Code 都可以。 + +就這些。無需額外 DLL、COM interop,也不需要雜亂的 Excel 自動化技巧。 + +現在,讓我們深入程式碼。 + +## 步驟 1:載入活頁簿 – Create Image from Excel + +首先,我們要開啟包含樞紐分析表的 Excel 檔案。這一步相當關鍵,因為渲染器是以記憶體中的 `Workbook` 物件為基礎運作的。 + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*為什麼這很重要:* 載入活頁簿讓我們取得 **pivot** 以及所有格式資訊,之後在 **convert Excel to image** 時會被完整保留。若省略此步,渲染器將無資料可處理。 + +## 步驟 2:設定匯出選項 – Convert Excel to Image + +接著告訴 Aspose 我們希望最終圖像的樣貌。`ImageOrPrintOptions` 類別讓我們選擇 PNG、設定 DPI,甚至控制背景顏色。 + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*為什麼這很重要:* 透過設定較高的 DPI,我們確保 **export Excel to PNG** 的畫面清晰銳利,即使樞紐分析表有大量列。若檔案大小是顧慮,可降低 DPI。 + +## 步驟 3:渲染工作表 – How to Export Pivot + +現在進入核心:將工作表(含樞紐分析表)轉成圖像。`WorksheetRender` 類別負責執行這項繁重工作。 + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*為什麼這很重要:* 這裡正是 **how to export pivot** 成視覺格式的地方。渲染器會保留所有樞紐格式、切片器與條件樣式,讓 PNG 看起來與 Excel 中完全相同。 + +## 步驟 4:整合全部 – How to Save Image + +最後,我們提供一個公開的單一方法,將所有步驟串接起來。這就是你在應用程式、服務或 Console 工具中呼叫的入口。 + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### 完整可執行範例 + +建立一個新的 Console 專案,加入 NuGet 套件 `Aspose.Cells`,然後將以下 `Program.cs` 放入專案: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**預期結果:** 執行程式後,`PivotImage.png` 會出現在你指定的資料夾中,呈現樞紐分析表的像素完美快照。 + +![Create image from Excel example](https://example.com/placeholder.png "Create image from Excel example") + +*Alt text:* 從 Excel 建立圖像的範例,顯示已匯出的樞紐分析表 PNG 圖片。 + +## 常見問題與邊緣情況 + +### 若活頁簿有多個工作表怎麼辦? + +目前的輔助程式會抓取 `Worksheets[0]`。若要指定特定工作表,可傳入工作表名稱: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG 模糊——該如何改善? + +在 `GetImageOptions` 中提升 `HorizontalResolution` 與 `VerticalResolution`。300–600 DPI 通常能產生清晰的結果。記得 DPI 越高,檔案大小也會相應增大。 + +### 我的樞紐分析表跨越多頁——能一次匯出全部嗎? + +可以。遍歷 `renderer.PageCount`,對每一頁呼叫 `ToImage(pageIndex, …)`,或將 `OnePagePerSheet = false` 設為 `true`,以取得每頁的獨立圖像。 + +### 只需要工作表的某一區域(例如特定範圍)? + +使用 `ImageOrPrintOptions` 設定 `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +如此即可 **convert Excel to image** 只針對你關心的區域。 + +### 這能處理 .xls(Excel 97‑2003)檔案嗎? + +完全沒問題。Aspose.Cells 會抽象化檔案格式,你可以直接輸入 `.xls`、`.xlsx`、`.xlsm`,甚至 `.ods`,仍能 **export excel to png**。 + +## 專業技巧與注意事項 + +- **授權問題**:評估模式下 Aspose 會加上浮水印。正式上線前請部署正式授權。 +- **記憶體使用**:渲染大型活頁簿會消耗大量記憶體。請盡快釋放 `Workbook` 物件,或使用 `using` 區塊包住。 +- **執行緒安全**:`Workbook` 本身不是執行緒安全的。若在 Web 服務中使用,請為每個請求建立新實例。 +- **圖像格式彈性**:若需要 JPEG 或 BMP,只要在 `GetImageOptions` 中變更 `ImageFormat` 即可。 + +## 結論 + +現在你已掌握一套完整、端到端的 **create image from Excel** 解決方案,能將 **export pivot** 資料轉為高品質 PNG。上面的程式碼示範了完整可執行的範例,說明了 **how to save image**,同時涵蓋多工作表或自訂列印區等變化。 + +接下來的步驟是什麼?可以把這個匯出器與郵件服務串接,自動寄送 PNG,或嘗試將 `ImageOrPrintOptions` 改為產生 PDF。相同的模式同樣適用於 **convert excel to image** 的各種格式需求。 + +還有其他問題嗎?歡迎留言,祝開發順利! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..dd987bb80a 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 @@ -46,6 +46,7 @@ Aspose.Cells for .NET 簡化了文件轉換,讓開發人員可以自動化流 了解如何使用 Aspose.Cells 在 .NET 中將 CSV 轉換為 JSON。透過易於遵循的程式碼範例逐步指導資料轉換。 ### [在 .NET 中以程式設計方式將 Excel 檔轉換為 DOCX](./converting-excel-file-to-docx/) 在本逐步指南中了解如何使用 Aspose.Cells for .NET 以程式設計方式將 Excel 檔案轉換為 DOCX。非常適合報告生成和數據共享。 +### [在 .NET 中以程式設計方式將 Excel 檔案儲存為 Docx(完整步驟指南)](./save-excel-as-docx-with-c-complete-step-by-step-guide/) ### [在 .NET 中將 Excel 檔案轉換為帶有工具提示的 HTML](./converting-excel-file-to-html-with-tooltip/) 只需幾個簡單的步驟,即可使用 Aspose.Cells for .NET 將 Excel 轉換為具有工具提示的 HTML。輕鬆使用互動式 Excel 資料增強您的 Web 應用程式。 ### [在 .NET 中以程式設計方式將 Excel 檔案轉換為 Markdown](./converting-excel-file-to-markdown/) diff --git a/cells/hongkong/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/hongkong/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..08a661031b --- /dev/null +++ b/cells/hongkong/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-21 +description: 在 C# 中將 Excel 儲存為 Docx — 學習如何將 Excel 轉換為 Word、嵌入圖表,以及使用 Aspose.Cells + 載入 Excel 工作簿。 +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: zh-hant +og_description: 在 C# 中將 Excel 儲存為 Docx,已於首句說明。跟隨本教學將 Excel 轉換為 Word、嵌入圖表,並在 C# 中載入 + Excel 工作簿。 +og_title: 使用 C# 將 Excel 另存為 Docx – 完整指南 +tags: +- C# +- Aspose.Cells +- Document Conversion +title: 使用 C# 將 Excel 儲存為 Docx – 完整逐步指南 +url: /zh-hant/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 C# 將 Excel 儲存為 Docx – 完整步驟指南 + +有沒有曾經需要 **save Excel as Docx** 但不知從何開始?你並不孤單——許多開發者在想要 *convert Excel to Word* 並保持圖表完整時,都會卡在同一個問題上。在本教學中,我們會逐步說明所需的完整程式碼、解釋每一行的意義,並示範如何嵌入 Excel 圖表而不失真。 + +我們還會額外提供一些 **load Excel workbook C#** 的情境小技巧,讓你在結束時能自在地在任何 .NET 專案中將 Excel 轉換為 Docx。沒有模糊的參考,只有可直接 copy‑paste 的具體範例。 + +--- + +## 本指南涵蓋內容 + +- 使用 Aspose.Cells(或任何相容的函式庫)載入現有的 `.xlsx` 檔案。 +- 在轉換前可選的工作表或圖表操作。 +- 將活頁簿儲存為 `.docx` 檔,同時保留內嵌圖表。 +- 驗證輸出結果,並處理大型活頁簿或不支援圖表類型等常見邊緣情況。 + +如果你在想 **為什麼要將 Excel 轉換為 Docx**,可以想像需要寄給非技術利害關係人的報告——Word 文件是通用接受的格式,且能保留圖表的視覺忠實度。讓我們開始吧。 + +--- + +## 前置條件 – Load Excel Workbook C# + +在撰寫任何程式碼之前,請先確保具備以下項目: + +| 需求 | 原因 | +|------|------| +| **.NET 6.0 或更新版本** | 現代執行環境,效能更佳,且完整支援 Aspose.Cells。 | +| **Aspose.Cells for .NET**(NuGet 套件 `Aspose.Cells`) | 提供用於讀取 Excel 並匯出為 DOCX 的 `Workbook` 類別。 | +| **Visual Studio 2022**(或任何你偏好的 IDE) | 方便除錯與 IntelliSense。 | +| **含圖表的 Excel 檔**(`AdvancedCharts.xlsx`) | 讓你看到 *embed excel charts* 功能的實際效果。 | + +你可以透過套件管理員主控台安裝此函式庫: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** 若你在 CI/CD 流程中,請將套件加入 `*.csproj`,讓還原自動完成。 + +--- + +## 步驟 1 – 載入 Excel 活頁簿(Save Excel as Docx 從此開始) + +首先,我們要載入來源活頁簿。這正是 **load excel workbook c#** 這句話的用意所在。 + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **為什麼這很重要:** 載入檔案後,你才能存取每張工作表、圖表與樣式。若省略此步,將無法進行轉換,API 也無法保留內嵌圖形。 + +--- + +## 步驟 2 – (可選)在轉換前微調活頁簿 + +你可能想重新命名工作表、隱藏欄位,或甚至更改圖表標題。此步驟為可選,但能展示轉換的彈性。 + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Edge case:** 某些較舊的圖表類型(例如 Radar)在 Word 中可能無法完美呈現。請在轉換後測試你的特定圖表。 + +--- + +## 步驟 3 – 將活頁簿儲存為 Word 文件(核心的 “Save Excel as Docx” 動作) + +現在到了關鍵時刻:我們正式 **save Excel as Docx**。 + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +執行時,Aspose.Cells 會將每張工作表以表格形式寫入 Word 檔,並將每個圖表嵌入為高解析度影像。最終產出的是一個可完全編輯的 `.docx`,外觀與原始 Excel 完全相同。 + +> **為什麼選擇 DOCX 而非 PDF?** DOCX 允許收件人之後編輯文字或取代圖表,而 PDF 只能提供靜態快照。 + +--- + +## 步驟 4 – 驗證輸出並排除常見問題 + +轉換完成後,請在 Microsoft Word 中開啟 `ChartsInWord.docx`: + +1. **確認每張工作表皆為獨立區段** – 你應該會看到與 Excel 資料相符的表格。 +2. **確認圖表已內嵌** – 圖表應為可選取的影像,而非破損的佔位符。 +3. **若圖表遺失**,請確認該圖表類型是否受 Aspose.Cells 支援(請參考[官方相容性清單](https://docs.aspose.com/cells/net/supported-chart-types/))。 + +> **Pro tip:** 對於大型活頁簿,建議提升 Aspose.Cells 的 `MemorySetting`,以避免 `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## 完整可執行範例(Copy‑Paste Ready) + +以下提供完整程式碼,直接編譯即可。請將 `YOUR_DIRECTORY` 替換為你電腦上的實際資料夾路徑。 + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**預期結果:** 產生的 Word 文件(`ChartsInWord.docx`)會包含所有工作表的表格與每個圖表的高解析度內嵌影像。開啟後,你會看到與 Excel 完全相同的視覺版面配置。 + +--- + +## 常見問題 (FAQ) + +**Q: 可以在迴圈中一次轉換多個 Excel 檔嗎?** +A: 當然可以。將轉換邏輯包在 `foreach (var file in Directory.GetFiles(...))` 迴圈中,並重複使用相同的 `Workbook` 實例模式。 + +**Q: 這個方法也支援 `.xls` 檔嗎?** +A: 支援——Aspose.Cells 能處理舊版格式。只要更改來源副檔名,`SaveFormat.Docx` 呼叫方式保持不變。 + +**Q: 若想保留公式該怎麼辦?** +A: Word 本身不支援 Excel 公式。轉換時會將公式展平成計算後的值。若需要即時計算,建議改為將活頁簿以 OLE 物件方式嵌入。 + +**Q: 有辦法控制圖表影像的解析度嗎?** +A: 可以在儲存前使用 `ImageOrPrintOptions` 進行設定: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## 加分技巧:直接將 Excel 圖表嵌入 Word(超越 Save Excel as Docx) + +如果希望圖表在 Word 中仍可編輯,可將整個 Excel 工作表以 OLE 物件方式嵌入: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +此技巧可將 *embed excel charts* 以活頁簿形式嵌入,使用者只要在 Word 中雙擊即可直接在 Excel 中編輯。當需要互動性時,這是一個相當實用的替代方案。 + +--- + +## 結論 + +現在你已掌握使用 C# **save Excel as docx** 的完整端對端解決方案。本文涵蓋了載入活頁簿、可選的微調、實際儲存、驗證步驟,以及如何在需要時嵌入可編輯圖表。依照上述程式碼,你可以 **convert Excel to Word**,完整保留每個圖表,且能順利處理大型檔案。 + +準備好接受下一個挑戰了嗎?試著自動化批次轉換、將此邏輯整合至 ASP.NET Core API,或探索 **convert Excel to docx** 用於多工作表儀表板的可能性。你剛學會的技巧是任何文件自動化專案的堅實基礎。 + +有任何問題或遇到無法轉換的工作簿嗎?歡迎留言,我們一起排除故障。祝開發順利! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..440451ef06 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-add-custom-property-in-c/) +了解如何使用 Aspose.Cells for .NET 在 C# 中將工作簿儲存為 XLSB 並加入自訂屬性。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/hongkong/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..0ecd44e9ac --- /dev/null +++ b/cells/hongkong/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,272 @@ +--- +category: general +date: 2026-03-21 +description: 學習如何在 C# 中儲存 xlsb 檔案,同時加入自訂屬性(例如 ProjectId)。本指南示範如何建立 Excel 工作簿、加入自訂屬性,並驗證其是否成功。 +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: zh-hant +og_description: 了解如何使用 C# 儲存 xlsb 檔案並新增自訂屬性(例如 ProjectId)。一步一步的完整程式碼指南。 +og_title: 如何儲存 XLSB – 在 C# 中新增自訂屬性 +tags: +- C# +- Aspose.Cells +- Excel automation +title: 如何儲存 XLSB – 在 C# 中新增自訂屬性 +url: /zh-hant/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中儲存 XLSB – 新增自訂屬性 + +有沒有想過 **如何儲存 xlsb** 檔案的同時,還能藏入一段 metadata?也許你正在打造一個需要隱藏 ProjectId 的報表引擎,或只是想為工作表加上標籤以供後續處理。**如何儲存 xlsb** 並不是什麼高深技術,但若再加入自訂屬性,會出現許多開發者常忽略的小細節。 + +在本教學中,我們會一步步示範如何建立 Excel 活頁簿、加入自訂屬性(沒錯,*add custom property*),將檔案以 **XLSB** 二進位活頁簿格式保存,最後再載入一次以驗證屬性是否仍在。途中也會說明 **how to add custom property** 的寫法,例如 ProjectId,讓你得到一套可重複使用的範本。 + +> **專業小技巧:** 若你已在使用 Aspose.Cells 套件(以下程式碼即使用),就能直接取得自訂屬性的原生支援,無需任何 COM interop 的麻煩。 + +--- + +## 前置條件 + +- .NET 6+(或 .NET Framework 4.6+)。 +- Aspose.Cells for .NET – 透過 NuGet 安裝:`Install-Package Aspose.Cells`。 +- 基本的 C# 知識 – 只要會寫幾行 `using` 陳述式即可。 + +就這樣。無需安裝 Office,無需 interop,純粹的受管理程式碼。 + +--- + +## 步驟 1:如何儲存 XLSB – 建立 Excel 活頁簿 + +首先,你需要建立一個全新的活頁簿物件。把它想像成在記憶體中開啟一個空白的 Excel 檔案,等你決定寫入磁碟時才真正產生。 + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +為什麼要先建立活頁簿?因為 **create excel workbook** 是所有後續操作的基礎——不論之後要插入公式、圖表,或是自訂屬性,都必須先有這個 `Workbook` 物件。`Workbook` 類別抽象整個檔案,而 `Worksheets` 則讓你存取各個工作表分頁。 + +--- + +## 步驟 2:為工作表加入自訂屬性 + +接下來就是有趣的部分——**add custom property**。在 Aspose.Cells 中,你可以直接把屬性附加在工作表(或整本活頁簿)上。這裡我們會存放一個數值型的 ProjectId,讓下游服務能在不觸碰可見儲存格的情況下讀取。 + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**如何加入自訂屬性**?只要呼叫 `CustomProperties.Add(name, value)` 即可。API 會自動處理底層的 XML,讓你不必關心低階細節。這是嵌入使用者看不到的 metadata 最安全的方式。 + +--- + +## 步驟 3:將活頁簿儲存為 XLSB + +活頁簿與自訂屬性都準備好之後,就可以 **how to save xlsb** 了。XLSB 格式以二進位方式儲存資料,通常比傳統的 XLSX 更小且開啟速度更快。 + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +只要在 `Save` 方法中傳入 `SaveFormat.Xlsb` 即可完成儲存。如果你擔心會不會把自訂屬性剝除——放心,Aspose.Cells 會在二進位檔案中同時保留活頁簿層級與工作表層級的屬性。 + +--- + +## 步驟 4:驗證自訂屬性 + +良好的習慣是重新載入檔案,確認屬性是否成功經過往返。這同時也示範了 **how to add custom property** 後續若要更新時的做法。 + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +如果主控台印出 `12345`,代表你已成功 **how to save xlsb** 並 **add project id** 於同一個檔案。屬性儲存在檔案的內部 metadata 中,使用者介面看不到,但程式碼可以完整讀取。 + +--- + +## 其他小技巧:加入多筆屬性與例外情況處理 + +### 加入多筆屬性 + +想要一次加入多個屬性嗎?直接堆疊即可: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### 更新已存在的屬性 + +若屬性已經存在,只要重新指派新值: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### 處理不存在的屬性 + +嘗試讀取不存在的屬性會拋出 `KeyNotFoundException`,記得先做好防護: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### 跨版本相容性 + +XLSB 可在 Excel 2007 + 以及 Excel 網頁版開啟。但較舊的 Office 版本(< 2007)無法讀取 XLSB。若需要更廣泛的相容性,可考慮再另存一份為 XLSX。 + +### 效能考量 + +相較於 XLSX,二進位的 XLSB 檔案通常小 30‑50 %,且載入速度更快。對於大型資料集(數十萬列)而言,效能提升相當明顯。 + +--- + +## 完整範例程式 + +以下是可以直接貼到 Console 專案的完整程式碼,包含所有步驟、錯誤處理與說明註解,讓你立即上手。 + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**預期輸出** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +只要看到上述結果,就代表你已掌握 **how to save xlsb**、**add custom property**,以及 **add project id** 的完整技巧,且程式碼可重複使用。 + +--- + +## 常見問答 + +**Q: 這段程式能在 .NET Core 上執行嗎?** +A: 完全可以。Aspose.Cells 支援 .NET Standard,因此相同程式碼可在 .NET 5/6/7 以及 .NET Framework 上執行。 + +**Q: 我可以把自訂屬性加在整本活頁簿,而不是單一工作表嗎?** +A: 可以。使用 `workbook.CustomProperties.Add("Key", value);` 即可在活頁簿層級加入屬性。 + +**Q: 若要儲存大型字串(例如 JSON)作為屬性該怎麼辦?** +A: API 接受任意長度的字串,但過大的資料會增加檔案大小。若資料量極大,建議改用隱藏工作表來存放。 + +**Q: 自訂屬性會在 Excel UI 中顯示嗎?** +A: 不會直接顯示。使用者可透過 **檔案 → 資訊 → 屬性 → 進階屬性 → 自訂** 觀看,但不會出現在格子裡。 + +--- + +## 結論 + +我們已說明如何在 C# 中 **how to save xlsb** 同時 **add custom property**(例如 ProjectId)。依循 **create excel workbook** → **add custom property** → **save as XLSB** → **verify** 的步驟,你現在擁有一套可靠且可供搜尋引擎與 AI 助手引用的範例。 + +接下來,你可以探索: + +- **How to add custom property** 到多個工作表的迴圈寫法。 +- 在儲存之前,先把 DataTable 匯入活頁簿。 +- 為 XLSB 檔案加密以提升安全性。 + +盡情實驗、調整屬性名稱,或在需要時改用 XLSX 以取得更廣的相容性。遇到特殊情境?歡迎留言,我們一起解決。祝開發順利! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/hongkong/net/excel-autofilter-validation/_index.md index da88f8b3f6..3cc7b5994b 100644 --- a/cells/hongkong/net/excel-autofilter-validation/_index.md +++ b/cells/hongkong/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ 透過本全面的逐步指南,了解如何輕鬆使用 .NET 中的 Aspose.Cells 自動過濾 Excel 行。 ### [Excel 中的小數資料驗證](./decimal-data-validation-in-excel/) 透過我們易於遵循的指南,了解如何使用 Aspose.Cells for .NET 在 Excel 中實現十進位資料驗證。輕鬆增強資料完整性。 +### [從 Excel 中移除自動篩選 – 完整 C# 指南](./remove-autofilter-from-excel-complete-c-guide/) +本指南說明如何使用 Aspose.Cells for .NET 在 C# 中移除 Excel 工作表的自動篩選功能。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/hongkong/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..60e161354c --- /dev/null +++ b/cells/hongkong/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,229 @@ +--- +category: general +date: 2026-03-21 +description: 學習如何使用 C# 從 Excel 移除 AutoFilter。此一步一步的指南亦會示範如何刪除 AutoFilter、關閉 Excel + 的 AutoFilter,以及清除 Excel 表格篩選。 +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: zh-hant +og_description: 使用 C# 從 Excel 移除 AutoFilter。本教學示範如何刪除 AutoFilter、關閉 Excel 的 AutoFilter,以及在幾行程式碼內清除 + Excel 表格篩選。 +og_title: 從 Excel 移除自動篩選 – 完整 C# 指南 +tags: +- C# +- Aspose.Cells +- Excel automation +title: 從 Excel 中移除自動篩選 – 完整 C# 指南 +url: /zh-hant/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 從 Excel 移除 AutoFilter – 完整 C# 指南 + +是否曾需要 **remove AutoFilter from Excel** 但不確定哪個 API 呼叫實際會停用它?你並非唯一遇到此情況的人。在許多報表流程中,篩選 UI 會妨礙後續處理,因此清除它是一項常見需求。在本教學中,我們將逐步說明一個簡潔、可投入生產的解決方案,不僅展示 **how to delete AutoFilter**,還說明 **turn off AutoFilter Excel** 風格的篩選,並說明如何徹底 **clear Excel table filter**。 + +> **你將得到:** 一個可直接執行的 C# 程式,載入現有的活頁簿,從第一個表格移除篩選,並儲存一個沒有任何遺留 UI 元素的全新副本。 + +## 前置條件 + +- .NET 6+ (or .NET Framework 4.7.2+) +- The **Aspose.Cells** NuGet 套件(我們在程式碼中使用的 API) +- 一個範例活頁簿 (`TableWithFilter.xlsx`),已包含套用 AutoFilter 的表格 +- 對 C# 語法的基本了解(不需要深入了解 Excel 內部) + +如果你已具備上述條件,讓我們開始吧。 + +--- + +## 第一步 – 安裝 Aspose.Cells 並設定專案 + +在執行任何程式碼之前,你需要先取得提供 `Workbook`、`Worksheet` 與 `ListObject` 類別的函式庫。 + +```bash +dotnet add package Aspose.Cells +``` + +> **專業提示:** 測試時可使用免費評估版;只要記得在正式上線前設定授權金鑰即可。 + +### 為什麼這很重要 +Aspose.Cells 抽象化了低階 OOXML 處理,讓我們能在不自行解析 XML 的情況下操作表格、篩選與樣式。這也是為什麼 **remove autofilter from excel** 任務可以只用一行程式碼完成,而不必手動編寫大量 XML。 + +--- + +## 第二步 – 載入包含表格的活頁簿 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +`Workbook` 物件代表整個 Excel 檔案。先載入它可確保我們擁有一個乾淨的記憶體副本供後續操作,這在之後 **clear excel table filter** 而不影響其他工作表時尤為重要。 + +--- + +## 第三步 – 取得工作表與目標表格 + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +**ListObject** 是 Aspose 用來表示 Excel 表格的術語。即使工作表上有多個表格,你也可以遍歷 `worksheet.ListObjects`,對每個表格套用相同的邏輯。此彈性解答了許多開發者常問的「如果我有多個表格該怎麼辦?」問題。 + +--- + +## 第四步 – 從表格移除 AutoFilter + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +將 `AutoFilter` 設為 `null` **會徹底移除篩選物件**,這是最可靠的 **how to delete autofilter** 方式。另一個屬性 `ShowAutoFilter` 只會隱藏 UI,卻仍保留篩選引擎——如果你只想在視覺上 **turn off autofilter excel**,同時保留底層條件,這會很有用。 + +> **邊緣情況:** 若表格未套用 AutoFilter,`table.AutoFilter` 已經是 `null`。上述程式碼是安全的,僅會什麼也不做。 + +--- + +## 第五步 – 儲存已修改的活頁簿 + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +儲存為新檔案可保留原始檔不受影響——這是自動化 Excel 轉換的最佳實踐。執行程式後,開啟 `NoAutoFilter.xlsx`;你會看到表格已沒有任何篩選下拉選單,證明 **remove excel table filter** 操作已成功。 + +--- + +## 驗證結果 – 期待的情況 + +1. **在 Excel 中開啟 `NoAutoFilter.xlsx`**。 +2. **選取表格**——欄位標題旁的小漏斗圖示應該已消失。 +3. **檢查其他工作表**——它們保持不變,證明我們僅在目標工作表上 **clear excel table filter**。 + +如果圖示仍然存在,請再次確認你是否針對正確的 `ListObject` 索引。記得在 Aspose 中 Excel 表格是零基索引,因此 `ListObjects[0]` 為工作表上的第一個表格。 + +--- + +## 處理多個表格或工作表 + +有時你需要 **remove autofilter from excel** 包含多個工作表與表格的活頁簿。以下是一個快速的擴充範例: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +此迴圈確保在所有位置 **turn off autofilter excel**,消除任何可能影響後續資料匯入的隱藏篩選。 + +--- + +## 常見陷阱與避免方法 + +| 陷阱 | 發生原因 | 解決方式 | +|------|----------|----------| +| **儲存後篩選仍然存在** | 使用 `ShowAutoFilter = false` 只會隱藏 UI。 | 使用 `table.AutoFilter = null` 才能真正刪除它。 | +| **表格索引錯誤** | 假設第一個表格就是你需要的那個。 | 檢查 `worksheet.ListObjects.Count` 並使用具意義的名稱(`tbl.Name`)。 | +| **缺少授權** | 評估版可能會插入浮水印。 | 盡早註冊授權:`License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **檔案被鎖定** | Excel 仍在開啟來源檔案。 | 在執行腳本前,確保 Excel 已關閉該活頁簿。 | + +--- + +## 加分項:重新加入 AutoFilter(如果你改變主意) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +提供相反的操作讓本教學成為同時處理 **remove autofilter from excel** 與 **how to delete autofilter** 情境的一站式資源。 + +--- + +## 完整可執行範例(直接複製貼上) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +執行上述程式碼將會對活頁簿中的每個表格 **remove autofilter from excel**,為後續處理提供一個乾淨的起點。 + +--- + +## 結論 + +我們已完整說明如何使用 C# **remove autofilter from excel**。從安裝 Aspose.Cells、載入活頁簿、定位表格、實際刪除篩選,到儲存乾淨的檔案——每一步都解釋了背後的「為什麼」。現在你已掌握 **how to delete autofilter**、**remove excel table filter**、**turn off autofilter excel** 與 **clear excel table filter** 的單一可重用程式碼片段。 + +準備好接受下一個挑戰了嗎?試著自動化加入條件格式,或探索如何以程式方式 **add an AutoFilter back**。這兩個主題皆直接建立在我們剛剛討論的概念上,將讓你的 Excel 自動化工具箱更為豐富。 + +有任何問題,或發現我們未提及的情境?在下方留言吧——祝開發愉快! + +--- + +![顯示沒有任何篩選下拉選單的 Excel 工作表螢幕截圖 – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/hongkong/net/excel-comment-annotation/_index.md index 10f1703732..bff11681d0 100644 --- a/cells/hongkong/net/excel-comment-annotation/_index.md +++ b/cells/hongkong/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ 了解如何使用 Aspose.Cells for .NET 在 Excel 中的儲存格中新增註解。為初學者提供逐步指南,以增強 Excel 功能。 ### [格式化註解 - 字型、顏色、對齊方式](./format-comments-font-color-alignment/) 了解如何使用 Aspose.Cells for .NET 輕鬆格式化 Excel 註解。自訂字體、大小和對齊方式以增強您的電子表格。 +### [建立 Excel 工作簿 C# – 使用智慧標記新增與填寫註解](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +了解如何在 C# 中使用 Aspose.Cells 建立 Excel 工作簿,並透過智慧標記新增與填寫註解。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/hongkong/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..4a1e30cf61 --- /dev/null +++ b/cells/hongkong/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,247 @@ +--- +category: general +date: 2026-03-21 +description: 使用 C# 建立 Excel 工作簿,學習如何在 Excel 中加入註解,並利用 Smart Markers 自動填入註解。開發者逐步指南。 +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: zh-hant +og_description: 使用 C# 建立 Excel 工作簿,快速為 Excel 加上註解,然後使用 Smart Markers 填寫註解。完整教學與程式碼。 +og_title: 使用 C# 建立 Excel 工作簿 – 新增與填寫註解 +tags: +- C# +- Excel automation +- Aspose.Cells +title: 建立 Excel 活頁簿 C# – 加入並填寫帶有智慧標記的註解 +url: /zh-hant/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 建立 Excel 工作簿 C# – 使用智慧標記新增與填入註解 + +有沒有曾經需要 **create Excel workbook C#**,卻想知道如何嵌入會自動更新的註解?你並非唯一有此需求的人。在許多報表情境下,你會希望儲存格註解顯示 *「Created by Alice on 2024‑07‑15」*,而不必每次都硬寫姓名或日期。 + +在本教學中,我們將完整示範 **how to add comment to Excel**,以及使用 Aspose.Cells 的 Smart Markers **how to fill comment**。完成後,你將擁有一個可直接執行的程式,能建立工作簿、插入動態註解,並儲存檔案——只需幾個簡潔步驟。 + +> **你將獲得:** 完整、可編譯的 C# 主控台應用程式、每行程式碼的說明、常見陷阱的提示,以及擴充解決方案的想法。 + +## 前置條件 + +- .NET 6.0 SDK 或更新版本(程式碼同樣適用於 .NET Core 與 .NET Framework) +- Visual Studio 2022 或任何你偏好的 IDE +- **Aspose.Cells for .NET** NuGet 套件 (`Install-Package Aspose.Cells`) —— 此函式庫提供下列使用的 `Workbook`、`Worksheet` 與 `SmartMarkerProcessor` 類別。 +- 具備基本的 C# 語法概念 —— 只要寫過 `Console.WriteLine`,即可開始。 + +既然前置作業已完成,讓我們開始吧。 + +![建立 Excel 工作簿 C# 範例截圖](excel-workbook.png "建立 Excel 工作簿 C# 範例") + +## 步驟 1:初始化新工作簿 – Create Excel Workbook C# 基礎 + +首先,我們需要一個全新的工作簿物件。把 `Workbook` 想像成空白畫布;沒有它就無法放置任何儲存格、列或註解。 + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**為什麼這很重要:** `Workbook` 會自動建立預設工作表,除非需要額外分頁,否則不必呼叫 `Add`。存取 `Worksheets[0]` 是開始填入資料的最快方式。 + +## 步驟 2:插入智慧標記註解 – How to Add Comment with Tokens + +接著,我們在儲存格 **B2** 放入包含智慧標記代碼 (`«UserName»` 與 `«CreatedDate»`) 的註解。這些代碼稍後會被實際值取代。 + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**說明:** +- `CreateComment()` 若不存在則建立註解物件;若已存在則回傳現有的。 +- `Note` 屬性保存可見文字。將佔位符包在 `« »` 之中,即告訴 Aspose.Cells 這些是 **Smart Markers** —— 可一次性取代的佔位符。 + +> **專業提示:** 若需要多行註解,可在字串內使用 `\n`,例如 `"Line1\nLine2"`。 + +## 步驟 3:準備資料物件 – How to Fill Comment Dynamically + +智慧標記需要資料來源。在 C# 中,最簡單的方式是使用與佔位符名稱相符的匿名型別。 + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**為什麼使用匿名型別?** +它輕量、無需額外類別檔,且屬性名稱 (`UserName`、`CreatedDate`) 完全對應代碼名稱。若偏好強型別模型,只需建立具有相同屬性的類別即可。 + +## 步驟 4:處理智慧標記 – How to Fill Comment Using the Data Object + +現在魔法發生了。`SmartMarkerProcessor` 會掃描工作簿中所有 `«…»` 代碼,並以 `markerData` 中的值取代它們。 + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**背後原理是什麼?** +`SmartMarkerProcessor` 會遍歷每個儲存格、註解、標頭等,尋找 `«Token»` 樣式。找到後,它利用反射讀取 `markerData` 中對應的屬性,並寫回值。無需手動迴圈。 + +## 步驟 5:儲存工作簿 – Fill Excel Comment and Persist the File + +最後,我們將工作簿寫入磁碟。註解現在會顯示類似 *「Created by Alice on 03/21/2026 10:15 AM」* 的文字。 + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**結果驗證:** 在 Excel 中開啟 `CommentFilled.xlsx`,將滑鼠移至儲存格 **B2**,即可看到包含實際使用者名稱與時間戳記的註解。未來執行時不需再更改程式碼,只要修改 `markerData` 的值即可。 + +--- + +## 常見變化與邊緣情況 + +### 使用自訂日期格式 + +若想將日期顯示為 `yyyy‑MM‑dd` 格式,請調整資料物件: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### 新增多個註解 + +你可以對其他儲存格重複 **Step 2**。每個註解可以有自己的代碼集合,若資訊通用也可共用相同代碼。 + +### 使用現有工作簿 + +不要使用 `new Workbook()`,而是載入既有檔案: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +其餘步驟保持相同——Smart Markers 在新檔與既有檔皆可運作。 + +### 處理 Null 值 + +若代碼可能缺少,請將屬性包成可為 null 的型別或提供備用值: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +當來源為 `null` 時,處理器會插入 *「Unknown」*。 + +--- + +## 完整可執行範例(直接貼上即可) + +以下是 **完整程式**,可直接放入主控台應用程式專案並立即執行(只需將 `YOUR_DIRECTORY` 替換為實際資料夾路徑)。 + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +執行程式,開啟產生的檔案,即可在儲存格 **B2** 看到動態註解。很簡單,對吧? + +--- + +## 常見問答 (FAQ) + +**Q: 這在 .NET Framework 4.7 上能運作嗎?** +A: 當然可以。Aspose.Cells 支援 .NET Framework 4.0 以上以及 .NET Core/5/6/7。只要引用相應的 DLL 或 NuGet 套件即可。 + +**Q: 我能將此方法用於資料驗證或條件格式化嗎?** +A: Smart Markers 主要用於在儲存格、註解、標頭與頁腳插入值。若需條件格式化,仍須使用一般的 `Style` API。 + +**Q: 若要在 **不同** 的工作表加入註解該怎麼做?** +A: 取得目標工作表 (`workbook.Worksheets["MySheet"]`) 後,在該工作表的儲存格上重複 **Step 2**。 + +--- + +## 往後步驟與相關主題 + +- **How to add comment to Excel** 程式化於多個儲存格(使用迴圈遍歷範圍)。 +- **Fill Excel comment** 從資料庫取得資料(使用 `DataTable` 作為 Smart Markers 的資料來源)。 +- 探索 **Smart Marker arrays** 以自動產生表格。 +- 了解 **Aspose.Cells styling**,以設定註解的字型、顏色與大小。 + +試玩這些程式碼片段,替換資料來源,你將快速掌握在任何 Excel 自動化情境中 **how to fill comment** 的技巧。 + +--- + +### 結語 + +我們剛剛完整說明了使用 Smart Markers 進行 **create excel workbook c#**、**add comment to excel** 與 **fill excel comment** 的全流程。此解決方案簡潔、可重用,且已可投入生產。 + +試試看,調整佔位符,讓函式庫負責繁重的工作。若遇到任何問題,歡迎在下方留言——祝開發愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..c50eee3304 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,8 @@ 透過本逐步教學學習如何使用 Aspose.Cells for .NET 根據自訂數字格式檢查 Excel 儲存格值。 ### [將資料匯入 Excel 工作表時指定公式字段](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) 在本詳細教學中了解如何使用 Aspose.Cells for .NET 將資料匯入具有指定公式欄位的 Excel 工作表。 +### [在 C# 中設定儲存格自訂格式 – 完整的 Excel 日期寫入與讀取指南](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +本教學說明如何使用 Aspose.Cells for .NET 在 C# 中設定儲存格的自訂日期格式,並正確寫入與讀取日期資料。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/hongkong/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..932434b8be --- /dev/null +++ b/cells/hongkong/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-03-21 +description: 在 C# 中設定儲存格自訂格式,學習如何寫入日期至 Excel、套用自訂日期格式、從 Excel 讀取 DateTime,以及快速建立工作簿工作表。 +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: zh-hant +og_description: 在 C# 中設定儲存格自訂格式以寫入日期至 Excel、套用自訂日期格式、從 Excel 讀取 DateTime,並輕鬆建立工作簿工作表。 +og_title: 在 C# 中設定儲存格自訂格式 – 在 Excel 中寫入與讀取日期 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: 在 C# 中設定儲存格自訂格式 – 完整指南:在 Excel 中寫入與讀取日期 +url: /zh-hant/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 設定儲存格自訂格式 – 使用 C# 在 Excel 中寫入與讀取日期 + +是否曾需要在 C# 中 **設定儲存格自訂格式** 於 Excel 檔案,但不知從何下手?你並不孤單。在許多報表工具或資料匯出工具中,日期必須以特定語系顯示——例如日本元號日期、財政年度或 ISO‑8601 字串。 + +在本教學中,我們將逐步示範一個 **完整、可執行的範例**,說明如何 **寫入日期至 Excel**、**套用自訂日期格式**、**從 Excel 讀取 DateTime**,以及使用 Aspose.Cells **建立工作簿工作表**。完成後,你將擁有一個可直接放入任何 .NET 專案的單一自足程式。 + +## 你將學到 + +- 如何以程式方式 **建立工作簿工作表**。 +- 使用特定語系字串 **寫入日期至 Excel** 的完整步驟。 +- 如何 **套用自訂日期格式**(含日本元號表示法)。 +- 如何將 Excel 中的日期 **讀回 `DateTime` 物件**。 +- 處理 Excel 日期時可能遇到的技巧、陷阱與變形。 + +不需要額外文件——所有資訊皆在此。 + +## 前置條件 + +- .NET 6.0 或更新版本(此程式碼亦支援 .NET Framework 4.7 以上)。 +- 透過 NuGet 安裝 Aspose.Cells for .NET(`Install-Package Aspose.Cells`)。 +- 具備基本的 C# 語法概念——不需要進階知識。 + +> **專業小技巧:** 若使用 Visual Studio,請啟用 *nullable reference types* 以提前捕捉細微錯誤。 + +## 步驟 1:建立 Workbook 與 Worksheet + +首先,你需要一個代表 Excel 檔案的 workbook 物件,以及一個儲存資料的 worksheet。 + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*為什麼重要:* `Workbook` 類別是所有 Excel 操作的入口點。於記憶體中建立它意味著在明確儲存之前不會觸及檔案系統,讓流程更快速且易於測試。 + +## 步驟 2:寫入日期至 Excel + +接著,我們將日本元號日期字串(`"R02-04-01"`)寫入 **A1** 儲存格。此字串模擬令和 era(第 2 年,4 月 1 日)。 + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*發生了什麼:* `PutValue` 會儲存原始字串。Aspose.Cells 之後會根據儲存格樣式嘗試解析它。如果直接寫入 `DateTime`,就會失去想要顯示的元號資訊。 + +## 步驟 3:套用內建日期數字格式 (ID 14) + +Excel 內建的日期格式 ID 14(`mm-dd-yy`)告訴引擎此儲存格 **包含日期**,而非純文字。 + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*為什麼使用 ID 14?* 這是通用的「短日期」格式,確保 Excel 將內容視為日期值,這是任何自訂格式能正確運作的前提。 + +## 步驟 4:設定自訂格式以顯示日本元號 + +現在進入有趣的部分:告訴 Excel 使用日本元號格式呈現日期。自訂字串 `[$-ja-JP]ggge年m月d日` 正是如此。 + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*說明:* +- `[$-ja-JP]` 強制使用日文語系。 +- `ggg` 為元號名稱(例如 “R” 代表令和)。 +- `e` 為元號年份。 +- `年`、`月`、`日` 為字面日文字符,分別代表年、月、日。 + +若需其他語系,只要將 `ja-JP` 替換為相應的文化代碼(例如 `en-US`)。 + +## 步驟 5:取得解析後的 DateTime 值 + +最後,讀取 Excel 從儲存格解析出的 **實際 `DateTime`**。這可證明字串已正確被解讀。 + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*結果:* 主控台會輸出 `Parsed DateTime: 2020-04-01`。即使我們輸入的是日本元號字串,Excel 仍在內部以公曆日期儲存,方便後續計算、比較或再度匯出。 + +## 步驟 6:儲存 Workbook(可選) + +若想在 Excel 中檢視格式化後的檔案,只需將其寫入磁碟。 + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +開啟產生的 **JapaneseEraDate.xlsx**,即可看到 **A1** 儲存格顯示 `R02年4月1日`(即我們設定的日本元號格式)。 + +![設定儲存格自訂格式範例](image-placeholder.png "Excel 儲存格顯示日本元號日期 – 設定儲存格自訂格式") + +*上述 alt 文字包含主要關鍵字,符合圖片 SEO 要求。* + +## 常見變形與邊緣案例 + +### 寫入不同的日期格式 + +若想改用 ISO‑8601(`2020-04-01`)而非元號字串,只需修改 `PutValue` 呼叫: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### 處理 Null 或空白儲存格 + +讀取日期時,務必檢查儲存格是否為空,以避免拋出 `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### 支援多種語系 + +可遍歷文化代碼清單,動態套用不同語系: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## 專業小技巧與注意事項 + +- **務必先設定內建數字格式**(`Style.Number`)。若未設定,Excel 會將儲存格視為純文字,導致自訂格式被忽略。 +- **語系代碼不分大小寫**,但使用正規形式(`ja-JP`)可避免混淆。 +- **儲存是可選的**,若僅在記憶體中處理,可直接將 workbook 串流至 Web 回應(`workbook.Save(stream, SaveFormat.Xlsx)`)。 +- **Aspose.Cells 授權**:免費評估版會加上浮水印。正式環境請確保擁有有效授權,以免影響效能。 + +## 重點回顧 + +我們示範了如何在 C# 中 **設定儲存格自訂格式** 以顯示日本元號日期,如何 **寫入日期至 Excel**、**套用自訂日期格式**、**從 Excel 讀取 DateTime**,以及 **建立工作簿工作表**——全部集中於一個自足程式。主要關鍵字自然散佈於全文,次要關鍵字則融入標題與內文,兼顧 SEO 與 AI 引用標準。 + +## 接下來可以做什麼? + +- 探索 **條件格式**,以突顯逾期日期。 +- 結合此技巧與 **樞紐分析表**,實現動態報表。 +- 嘗試 **讀取大型 CSV 檔**,並以相同的日期處理邏輯轉換為 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/excel-data-export-retrieval/_index.md b/cells/hongkong/net/excel-data-export-retrieval/_index.md index 5f126b81ea..78e112039b 100644 --- a/cells/hongkong/net/excel-data-export-retrieval/_index.md +++ b/cells/hongkong/net/excel-data-export-retrieval/_index.md @@ -25,10 +25,16 @@ 想知道如何做到這一點嗎?請參閱此便捷指南 [從 Excel 儲存格中擷取數據](./retrieve-data-from-cells-in-excel/) 並開始像專業人士一樣管理您的 Excel 資料! -## Excel 資料匯出與擷取教學課程 +## Excel 資料匯出與檢索教學課程 ### [從 Excel 儲存格中擷取數據](./retrieve-data-from-cells-in-excel/) 透過本逐步教學學習如何使用 Aspose.Cells for .NET 從 Excel 儲存格中擷取數據,非常適合初學者和經驗豐富的開發人員。 +### [在 C# 中匯出 Excel 資料表 – 完整指南](./export-excel-data-table-in-c-complete-guide/) +本完整指南教您如何使用 Aspose.Cells for .NET 在 C# 中將資料表匯出為 Excel 檔案,適合所有開發者。 + +### [如何在 C# 中匯出 Excel 資料 – 步驟說明指南](./how-to-export-excel-data-in-c-step-by-step-guide/) +本指南逐步說明如何使用 Aspose.Cells for .NET 在 C# 中匯出 Excel 資料,適合所有開發者。 + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/hongkong/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/hongkong/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..92ed9e02fc --- /dev/null +++ b/cells/hongkong/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-03-21 +description: 使用 Aspose.Cells 將 Excel 資料表匯出為 DataTable(含標題列),限制小數位數,並僅匯出前 100 列。 +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: zh-hant +og_description: 學習如何將 Excel 資料表匯出為 DataTable,保留標題、限制小數位數,並在 C# 中抓取前 100 行。 +og_title: 在 C# 中匯出 Excel 資料表 – 步驟教學 +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: 在 C# 中匯出 Excel 資料表 – 完整指南 +url: /zh-hant/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 匯出 Excel 資料表 – 完整 C# 教學 + +需要 **將 Excel 資料表** 從活頁簿匯出成 .NET `DataTable` 嗎?您來對地方了——本指南會一步步說明如何完成,保留欄位標題、限制小數位數,並僅取得前 100 筆資料。 + +如果您曾盯著試算表想「怎麼把它帶入我的應用程式而不失去格式?」您並不孤單。接下來的幾分鐘,我們會把這個「如果」變成可直接複製貼上的解決方案,使用 Aspose.Cells 這個受歡迎的 Excel 操作函式庫。 + +## 您將學會 + +- 如何使用 `ExportDataTable` 方法 **匯出 excel 到 datatable**。 +- 如何保留原始欄位名稱(`export excel with headers`)。 +- 如何透過設定 `ExportTableOptions` **限制 excel 小數位數**。 +- 如何安全地只取得前 100 筆資料(`export first 100 rows`)。 + +不需要外部腳本,也不需要神奇字串——只要純粹的 C# 程式碼,您可以直接放入任何 .NET 專案。 + +## 前置條件 + +| Requirement | Why it matters | +|-------------|----------------| +| .NET 6 或更新版本(或 .NET Framework 4.7+) | Aspose.Cells 同時支援兩者,但較新的執行環境提供 async‑ready API。 | +| Aspose.Cells for .NET NuGet 套件 | 提供 `Workbook`、`ExportTableOptions` 與 `ExportDataTable` 輔助功能。 | +| 範例 Excel 檔(例如 `Numbers.xlsx`) | 您將要匯出的資料來源。 | +| 基本 C# 知識 | 您只需要跟著程式碼片段操作,無需進階技巧。 | + +如果上述任一項您不熟悉,請使用 `dotnet add package Aspose.Cells` 取得 NuGet 套件,並建立一個含有少量數字的簡易 Excel 檔作為測試資料。 + +![匯出 excel 資料表範例](excel-data-table.png "將要匯出至 DataTable 的 Excel 工作表截圖") + +## 步驟 1:載入活頁簿(export excel data table) + +首先您需要一個指向 Excel 檔案的 `Workbook` 實例。把它想成在閱讀任何章節前先打開一本書。 + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **為什麼重要:** 載入活頁簿後,您才能存取其工作表、儲存格與樣式。若檔案路徑錯誤,Aspose 會拋出 `FileNotFoundException`,請務必確認位置正確。 + +## 步驟 2:設定匯出選項 – limit decimal places excel + +預設情況下,Aspose 會以完整精度匯出所有數值。通常您只需要少數有效位數,尤其是要將資料送入 UI 表格或需要四捨五入的 API 時。 + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **小技巧:** 若您需要不同的四捨五入策略(例如永遠向上取整),可以在匯出後對 `DataTable` 進行後處理。`SignificantDigits` 設定是 **限制 excel 小數位數** 最快速的方式,無需額外迴圈。 + +## 步驟 3:匯出指定範圍(export first 100 rows) + +現在告訴 Aspose 我們要把哪一塊儲存格拉進 `DataTable`。本教學示範抓取前 100 行與前 10 欄,您可自行調整數字以符合需求。 + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **邊緣情況:** 若工作表少於 100 行,Aspose 只會匯出實際存在的資料,不會拋錯。但您可能想要防範意外過小的範圍: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## 步驟 4:驗證結果 – 快速 Console 輸出 + +在除錯器中看到資料固然不錯,但將幾筆資料印到主控台可以確認 **匯出 excel 到 datatable** 已正確執行,且小數位已被裁減。 + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### 預期輸出 + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +您會發現數值欄位現在只顯示四位有效數字,正好對應先前設定的 `SignificantDigits = 4`。 + +## 步驟 5:完整封裝 – 可執行範例 + +以下是完整程式碼,您可以直接複製貼上到 Console 應用程式。內含錯誤處理、可選的列數保護,以及列印輔助方法。 + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +執行程式後,您將看到工作表的前 100 行,已經四捨五入且欄位名稱完整保留。 + +## 常見問題與注意事項 + +| Question | Answer | +|----------|--------| +| **如果工作表有合併儲存格怎麼辦?** | `ExportDataTable` 會以左上角儲存格的值展平合併儲存格。若需要自訂處理,請先取消合併或直接讀取原始 `Cell` 物件。 | +| **可以匯出到 `DataSet` 嗎?** | 可以——使用 `ExportDataTable` 後再將結果加入 `DataSet` 即可。 | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/hongkong/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..c5b5eaccbd --- /dev/null +++ b/cells/hongkong/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,279 @@ +--- +category: general +date: 2026-03-21 +description: 如何使用 Aspose.Cells 在 C# 中匯出含欄位名稱的 Excel 資料、保留數字格式,並讀取特定列。學習如何讀取 Excel + 工作表並有效率地匯出指定列。 +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: zh-hant +og_description: 如何使用 Aspose.Cells 匯出含欄位名稱的 Excel 資料、保留數字格式,並讀取特定列。提供完整可執行的 C# 開發者範例。 +og_title: 如何在 C# 中匯出 Excel 資料 – 完整程式設計指南 +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: 如何在 C# 中匯出 Excel 資料 – 步驟指南 +url: /zh-hant/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中匯出 Excel 資料 – 完整程式指南 + +有沒有想過 **如何匯出 Excel** 資料而不失去原始格式?也許你曾嘗試快速複製貼上,結果日期變成「44728」或缺少欄位標題。這真的很令人沮喪,對吧?在本教學中,你將看到一個乾淨、端到端的方式來讀取 Excel 工作表、保留數字格式、匯出欄位名稱,甚至只挑選你需要的列。 + +我們將使用 Aspose.Cells 函式庫,因為它提供對匯出選項的細緻控制。完成本指南後,你將擁有一段可重複使用的程式碼片段,能直接放入任何 .NET 專案,並且了解每個選項的重要性。無需外部文件——所有需要的資訊都在這裡。 + +--- + +## 你將學到什麼 + +- **讀取 Excel 工作表** 到記憶體中,使用 Aspose.Cells。 +- **匯出特定列**(例如第 0‑49 列),同時保留欄位名稱。 +- **保留數字格式**,讓貨幣、日期和百分比保持原樣。 +- 如何 **匯出欄位名稱** 並在需要時包含儲存格註解。 +- 完整、可直接執行的 C# 範例,並提供常見陷阱的技巧。 + +### 前置條件 + +- .NET 6.0 或更新版本(此程式碼亦相容 .NET Framework 4.6+)。 +- 透過 NuGet 安裝 Aspose.Cells for .NET(`Install-Package Aspose.Cells`)。 +- 一個 Excel 檔案(`input.xlsx`),放在可參考的資料夾中。 + +> **專業提示:** 若你在 CI 流程中,建議從私有 Feed 取得 NuGet 套件,以避免授權意外。 + +--- + +## 第一步 – 安裝 Aspose.Cells 並加入命名空間 + +首先,確保 Aspose.Cells 套件已加入你的專案。開啟 Package Manager Console 並執行: + +```powershell +Install-Package Aspose.Cells +``` + +接著,在 C# 檔案的頂部加入必要的 `using` 指示詞: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +這些匯入讓你能使用 `Workbook`、`Worksheet`、`ExportTableOptions` 與 `DataTable`——即 **讀取 Excel 工作表** 並匯出資料的核心元件。 + +--- + +## 第二步 – 載入活頁簿(讀取 Excel 檔案) + +現在我們真的要 **讀取 Excel 工作表**。`Workbook` 建構子接受檔案路徑,Aspose.Cells 會同時支援 `.xlsx` 與舊版 `.xls` 格式。 + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **為何重要:** 只載入一次活頁簿並重複使用相同的 `Worksheet` 物件,比起重複開啟檔案更有效率,尤其是面對大型試算表時。 + +--- + +## 第三步 – 設定匯出選項(保留數字格式與欄位名稱) + +這裡我們告訴 Aspose.Cells *如何* 匯出。`ExportTableOptions` 類別讓我們能微調輸出。我們將啟用三個旗標: + +1. `ExportAsString = true` – 強制每個儲存格皆轉為字串,確保數字保留其視覺表示。 +2. `IncludeCellComments = true` – 複製儲存格上的任何註解(對文件說明很有幫助)。 +3. `PreserveNumberFormat = true` – 保留原始的數字格式(貨幣符號、日期樣式等)。 + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **邊緣情況:** 若將 `ExportAsString` 設為 `false`,但仍想保留數字格式,可能會得到原始數值(例如日期變成 44728)。同時開啟兩個旗標即可避免此情況。 + +--- + +## 第四步 – 取得第一個工作表(讀取 Excel 工作表) + +大多數簡單檔案的資料都在第一張工作表,因此我們會依索引取得。如果需要其他工作表,只要將 `0` 換成相應的零基索引,或使用 `workbook.Worksheets["SheetName"]`。 + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **為何有用:** 直接存取工作表物件可完全控制其 `Cells` 集合,這對之後 **匯出特定列** 極為重要。 + +--- + +## 第五步 – 匯出儲存格範圍(匯出特定列) + +現在進入本教學的核心:將第 0‑49 列與第 0‑4 欄(即前 50 列與前五欄)匯出至 `DataTable`。我們也會要求 Aspose.Cells 將欄位名稱作為 `DataTable` 的第一列。 + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### 這段程式的作用 + +- **`startRow: 0`** – 從工作表最上方開始。 +- **`totalRows: 50`** – 取得前 50 列(即 **匯出特定列**)。 +- **`totalColumns: 5`** – 限制匯出至前五欄。 +- **`includeColumnNames: true`** – 確保 `DataTable` 的欄位標題與 Excel 標題列相符,滿足 **匯出欄位名稱** 的需求。 +- **`exportOptions`** – 套用第 3 步的設定,使數值保持如 “$1,234.56” 而非 “1234.56”。 + +--- + +## 第六步 – 驗證匯出結果(結果長什麼樣) + +讓我們將前幾列印到主控台,看看格式是否仍然保留。 + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**預期輸出(範例):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +請注意日期以 `MM/dd/yyyy` 格式顯示,且貨幣保留 `$` 符號——這全賴 **保留數字格式**。 + +--- + +## 常見陷阱與避免方法 + +| 問題 | 為何發生 | 解決方式 | +|-------|----------------|-----| +| 日期變成大數字 | `ExportAsString` 為 `false` | 保持 `ExportAsString = true` 或手動轉換儲存格 | +| 缺少欄位標題 | `includeColumnNames` 設為 `false` | 需要 **匯出欄位名稱** 時設為 `true` | +| 註解消失 | 未啟用 `IncludeCellComments` | 在 `ExportTableOptions` 中開啟 `IncludeCellComments` | +| 匯出錯誤的工作表 | 在多工作表檔案中使用 `Worksheets[0]` | 指定工作表名稱:`workbook.Worksheets["Data"]` | +| 超出範圍例外 | `totalRows` 超過實際列數 | 使用 `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## 加分項:匯出整張工作表同時保留格式 + +如果之後需要整張工作表,只要將 `totalRows` 與 `totalColumns` 換成工作表的最大尺寸即可: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +現在你擁有一個 **讀取 Excel 工作表** 的例程,適用於任何大小,同時 **保留數字格式** 並 **匯出欄位名稱**。 + +--- + +## 完整可執行範例(可直接複製貼上) + +以下是完整程式碼,你可以直接放入 Console 應用程式。它包含所有步驟、匯入以及簡易的驗證列印。 + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +將其儲存為 `Program.cs`,執行 `dotnet run`,即可在終端機看到格式化的預覽。 + +--- + +## 結論 + +我們剛剛示範了使用 Aspose.Cells **匯出 Excel** 資料的完整流程,涵蓋從載入活頁簿、保留數字格式、匯出欄位名稱,到限制匯出特定列的所有步驟。程式碼自成一體、可直接執行,且包含對常見邊緣情況的實用防護。 + +準備好接受下一個挑戰了嗎?試著直接匯出為 CSV 同時保留原始數字格式,或將 `DataTable` 推入 Entity Framework Core 以批次寫入資料庫。上述情境皆建立在本教學的基礎上。 + +如果你覺得本指南對你有幫助 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..c75eed3bec 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 檔案。保護您的文件。 | +| [建立具樣式表格的 Excel 工作簿 – 步驟指南](./create-excel-workbook-with-styled-table-step-by-step-guide/) |逐步說明如何使用 Aspose.Cells for .NET 建立帶有樣式表格的 Excel 工作簿。 | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/hongkong/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..2682d26e34 --- /dev/null +++ b/cells/hongkong/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,271 @@ +--- +category: general +date: 2026-03-21 +description: 建立 Excel 工作簿,將資料表匯入 Excel 並設定欄位樣式,匯出資料至 Excel,並將 Excel 儲存格的日期格式設定為以分鐘為單位。 +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: zh-hant +og_description: 快速建立 Excel 活頁簿。學習將資料表匯入 Excel、設定欄位樣式、匯出資料至 Excel,以及在同一指南中格式化 Excel + 儲存格日期。 +og_title: 建立 Excel 活頁簿 – 完整樣式與匯出教學 +tags: +- C# +- Aspose.Cells +- Excel automation +title: 建立帶樣式表格的 Excel 活頁簿 – 步驟教學 +url: /zh-hant/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 建立 Excel 工作簿 – 完整程式教學 + +有沒有曾經需要 **create excel workbook**,而且直接從程式碼產生的檔案就已經很精緻?也許你正從資料庫抓取資料,想讓日期自動以正確格式顯示,而不必之後再在 Excel 裡手動調整。這是常見的痛點——尤其是當輸出直接寄到客戶的信箱,對方期望檔案一打開就能直接使用。 + +本教學將一步步示範一個完整、獨立的解決方案,包含 **imports datatable to excel**、套用 **set column style**,最後 **export data to excel** 為一個格式良好的檔案。你將會看到如何 **format excel cells date**,讓試算表看起來像專業報告,並在最後取得完整、可直接執行的範例。沒有遺漏的部份,也不會出現「請參考文件」的捷徑——只有可以直接放入專案的純程式碼。 + +--- + +## 你將學會 + +- 如何使用 Aspose.Cells 函式庫(或任何相容的 API)**create excel workbook**。 +- **import datatable to excel** 的最快方法,無需手動逐格迴圈。 +- **set column style** 的技巧,包括為特定欄位套用日期格式。 +- 如何透過一次 `Save` 呼叫 **export data to excel**。 +- 在嘗試 **format excel cells date** 時常見的陷阱以及避免方式。 + +### 前置條件 + +- .NET 6 以上(或 .NET Framework 4.6 以上)。 +- 已安裝 Aspose.Cells for .NET(`Install-Package Aspose.Cells`)。 +- 已備妥可匯出的 `DataTable`——你的資料來源可以是 SQL、CSV,或任何能轉成 `DataTable` 的格式。 + +如果你已經熟悉 C# 且上述項目都已就緒,就可以直接開始。否則,請參考上面的「前置條件」段落,快速檢查所需項目。 + +--- + +## 步驟 1 – 建立 Excel 工作簿實例 + +當你想以程式方式 **create excel workbook** 時,第一件事就是實例化 workbook 物件。可以把它想像成打開一本空白筆記本,之後會在上面寫入資料。 + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **為何重要:** +> `Workbook` 類別是 Aspose.Cells 所有操作的入口。事先建立它能提供一個乾淨的畫布,之後若需要在既有檔案上追加資料,也可以再載入該檔案,而不必從頭開始。 + +--- + +## 步驟 2 – 準備要匯入的 DataTable + +在能 **import datatable to excel** 之前,我們需要一個 `DataTable`。在實務專案中,這通常來自 `SqlDataAdapter.Fill` 或 `DataTable.Load`。為了說明清楚,我們會寫一個 stub 方法,回傳已備好的表格。 + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **小技巧:** 若你的日期是以字串形式儲存,請先轉成 `DateTime`——否則 **format excel cells date** 步驟將無法如預期運作。 + +--- + +## 步驟 3 – 為每個欄位定義樣式(Set Column Style) + +接下來就是 **set column style** 的部分。我們會建立一個 `Style` 物件陣列——每個欄位一個。第一欄會使用內建的日期格式(代碼 14),其餘欄位則保留一般格式(代碼 0)。 + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **為何使用樣式物件?** +> 只套用一次樣式並重複使用,比逐格設定格式效率高得多。它也能確保整個欄位遵循相同的 **format excel cells date** 規則,對於在不同語系開啟檔案時保持一致性相當重要。 + +--- + +## 步驟 4 – 使用樣式將 DataTable 匯入工作表 + +在工作簿已備妥且樣式已定義後,我們現在 **import datatable to excel**。`ImportDataTable` 方法負責主要工作:寫入欄位標題、資料列,並套用我們傳入的樣式。 + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **內部運作原理:** +> - `true` 讓 Aspose.Cells 在第一列加入欄位名稱。 +> - `0, 0` 為起始列與欄的索引(左上角)。 +> - `columnStyles` 使每個欄位對應我們事先準備好的樣式,確保 **format excel cells date** 規則套用於日期欄位。 + +--- + +## 步驟 5 – 儲存(匯出)工作簿至實體檔案 + +最後,我們透過將工作簿儲存至磁碟來 **export data to excel**。你可以自行更改路徑至任意資料夾,甚至直接將檔案串流至 HTTP 回應,以供 Web API 使用。 + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **專業小技巧:** 若需在不寫入磁碟的情況下傳送檔案,請使用 `workbook.Save(Stream, SaveFormat.Xlsx)`。 + +--- + +## 完整可執行範例(結合所有步驟) + +以下是完整、可直接執行的程式。將它貼到 Console 應用程式中,調整輸出路徑,即可在數秒內得到格式良好的 Excel 檔案。 + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**預期輸出:** +當你開啟 `StyledTable.xlsx` 時,A 欄會顯示類似 `03/19/2026` 的日期(視你的語系而定),而 B、C 欄則分別以純文字/數字顯示商品名稱與數量。無需額外的格式化步驟——你的 **create excel workbook** 已完成。 + +--- + +## 常見問答與邊緣案例 + +### 1️⃣ 如果我的 DataTable 超過三個欄位怎麼辦? + +在 `columnStyles` 陣列中加入更多 `Style` 物件,並針對需要特殊格式的欄位(例如貨幣、百分比)調整 `Number` 屬性。`ImportDataTable` 會依照位置對應每個樣式。 + +### 2️⃣ 我可以使用自訂日期格式取代內建的 14 嗎? + +當然可以。將 `columnStyles[i].Number = 14;` 改成: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ 如何在 Web API 中 **export data to excel** 而不寫入磁碟? + +使用 `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ 若使用者的語系需要不同的日期分隔符怎麼辦? + +內建的日期格式(ID 14)會遵循工作簿的語系設定。若需要不受語系影響的固定格式,請如上例使用 `Custom` 屬性。 + +### 5️⃣ 這能在 .NET Core 上使用嗎? + +可以——Aspose.Cells 支援 .NET Standard 2.0 及以上版本,故相同程式碼可在 .NET 6、.NET 7 或任何相容的執行環境上執行。 + +--- + +## 最佳實踐技巧(Pro Tips) + +- **重複使用樣式**:雖然為每個欄位建立樣式成本不高,但對相同欄位重複使用同一樣式物件可節省記憶體。 +- **避免逐格迴圈**:`ImportDataTable` 已高度最佳化,手動迴圈較慢且易出錯。 +- **提前設定工作簿語系**,若需要在不同環境間保持一致的數字/日期分隔符: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **匯入前驗證 DataTable**——若有 null 日期,在套用日期樣式時會拋出例外。 +- **啟用計算**,若在匯入後加入公式: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## 結論 + +現在你已擁有一套完整、端到端的流程,能 **create excel workbook**、**import datatable to excel**、**set column style**、**export data to excel**,以及 **format excel cells date**——全部只需不到十行 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/row-and-column-management/_index.md b/cells/hongkong/net/row-and-column-management/_index.md index de37bb481b..dd774f1fad 100644 --- a/cells/hongkong/net/row-and-column-management/_index.md +++ b/cells/hongkong/net/row-and-column-management/_index.md @@ -76,6 +76,8 @@ 學習使用 Aspose.Cells for .NET 在 Excel 中插入帶有格式的行。按照我們的逐步指南即可輕鬆實施。 ### [在 Aspose.Cells .NET 中插入多行](./insert-multiple-rows-aspose-cells/) 學習使用 Aspose.Cells for .NET 在 Excel 中插入多行。請按照我們的詳細教學實現無縫資料操作。 +### [使用 Aspose.Cells for .NET 載入 Excel 檔案 C# – 如何刪除行與移除特定行](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +了解如何使用 Aspose.Cells for .NET 在 C# 中載入 Excel 檔案,並刪除或移除特定的行。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/hongkong/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..9620b88c0d --- /dev/null +++ b/cells/hongkong/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-21 +description: 使用 C# 載入 Excel 檔案並透過 Aspose.Cells 移除資料列。學習如何刪除列、移除特定列,並在數分鐘內掌握 C# Excel + 列刪除技巧。 +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: zh-hant +og_description: 使用 C# 載入 Excel 檔案,快速刪除列、移除特定列,並透過 Aspose.Cells 處理 C# Excel 列刪除。完整步驟教學。 +og_title: 載入 Excel 檔案 C# – 刪除列與移除指定列 +tags: +- C# +- Excel +- Aspose.Cells +title: 載入 Excel 檔案 C# – 如何刪除列與移除特定列 +url: /zh-hant/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 載入 Excel 檔案 C# – 如何刪除列與移除特定列 + +是否曾需要 **load Excel file C#**,然後剔除不需要的列?也許你在清理資料傾印,或是有一個範本必須在交付給客戶前移除某些列。無論原因為何,問題都相同:手上有一個 `.xlsx` 檔案在磁碟上,你想在 .NET 中開啟它,且需要 **delete rows** 而不破壞任何隱藏的表格或清單物件。 + +事實上,Aspose.Cells 讓這件事變得非常簡單。在本教學中,你會看到一個完整、可直接執行的範例,示範 **how to delete rows**、**remove specific rows**,以及為什麼你會在一開始就關心 **c# excel row deletion**。完成後,你將得到只保留所需列的乾淨 `output.xlsx`。 + +## 本指南涵蓋內容 + +- 使用 Aspose.Cells 從磁碟載入 Excel 活頁簿。 +- 刪除一段列(例如第 5‑10 列),同時保護任何 ListObject 標頭。 +- 將修改後的活頁簿儲存回檔案系統。 +- 常見陷阱,例如不小心刪除表格內的列,以及處理方式。 +- 完整、可執行的程式碼範例,讓你今天就能放入 Console App 中使用。 + +> **Prerequisites** +> • .NET 6+(或 .NET Framework 4.6+)。 +> • 透過 NuGet 安裝 Aspose.Cells for .NET (`Install-Package Aspose.Cells`)。 +> • 具備基本的 C# 與 Excel 概念(工作表、儲存格、表格)認識。 + +如果你在想 **為什麼要使用 Aspose.Cells** 而不是 `Microsoft.Office.Interop.Excel`,答案在於速度、無需 COM、且能在未安裝 Office 的伺服器上執行。另外,API 在列刪除任務上也相當直觀。 + +--- + +## Step 1: Load the Excel Workbook in C# + +在能刪除任何內容之前,你必須先將活頁簿載入記憶體。`Workbook` 類別代表整個 Excel 檔案。 + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Why this matters:** +載入檔案會建立一個與 Excel 結構相對應的物件圖——工作表、儲存格、表格等。只要保有 `ws` 的參考,就能直接操作列,而不必擔心檔案鎖定或 COM interop 的怪異行為。 + +## Step 2: Delete Rows That Contain Only Data + +現在活頁簿已在記憶體中,你可以開始刪除列。`Cells.DeleteRows(startRow, totalRows)` 會移除連續的區塊。在本例中,我們會剔除第 5‑10 列。 + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**How it works:** +- `startRow` 為零基索引,所以 `5` 其實指的是 Excel 的第 6 列。請依需求調整。 +- 若工作表包含 **ListObject**(Excel 表格),且其標頭位於第 4 列,Aspose.Cells 會保護該標頭,只刪除其下方的資料列。此內建安全機制可防止破壞結構化表格——這是 **removing data rows** 時常見的邊緣案例。 + +> **Pro tip:** 若需刪除非連續的列(例如第 3、7、12 列),可先將列索引集合反向排序,然後對每個索引呼叫 `DeleteRows(rowIndex, 1)`。由下往上刪除可保留剩餘列的原始索引。 + +## Step 3: Save the Modified Workbook + +當不需要的列已被移除,只要將活頁簿寫回磁碟即可。 + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +`Save` 方法會自動依副檔名判斷檔案格式(此例為 `.xlsx`)。若需其他格式——CSV、PDF 等,只要更改副檔名或傳入 `SaveFormat` 列舉即可。 + +### Expected Result + +開啟 `output.xlsx` 後,你會看到第 5‑14 列(原本的第 5‑10 列)已不見。其餘資料會向上移動,且任何參照被刪除列的公式會由 Aspose.Cells 自動調整。 + +## Frequently Asked Questions (FAQ) + +### How do I delete rows based on a condition (e.g., all rows where column A is empty)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +此迴圈採逆向執行以避免索引移位。此模式回應了更廣泛的 **c# excel row deletion** 問題,適用於需要條件判斷的情境。 + +### What if my worksheet contains multiple ListObjects? + +Aspose.Cells 會將每個 ListObject 獨立處理。若任何表格的標頭會受到刪除範圍影響,API 會拋出 `InvalidOperationException`。解決方式是調整刪除範圍,或暫時清除該 ListObject 的 `ShowTableStyleFirstColumn` 屬性,完成刪除後再恢復。 + +### Can I delete rows without loading the whole workbook into memory? + +可以——Aspose.Cells 提供 **streaming API**(`Workbook.LoadOptions`)以分塊讀取資料。然而,列刪除本質上需要工作表的結構資訊,仍須將目標工作表載入記憶體。若處理超大型檔案(>500 MB),建議分批處理或使用 **cell‑by‑cell** API。 + +## Full, Runnable Example + +以下是完整程式,你可以編譯成 Console App 執行。請將 `YOUR_DIRECTORY` 替換為實際的資料夾路徑。 + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Running the code:** +1. 開啟終端機或 Visual Studio。 +2. `dotnet new console -n ExcelRowDeletionDemo` +3. 用上述程式碼取代 `Program.cs`。 +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +執行後,你應該會在主控台看到確認刪除的訊息,並顯示已儲存檔案的位置。 + +## Common Pitfalls & How to Avoid Them + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Accidentally deleting a ListObject header** | `DeleteRows` 不會檢查隱藏的表格標頭是否被範圍覆蓋。 | 確保起始列在任何表格標頭 **之後**,或使用 `ListObject` API 在表格內刪除列 (`ListObject.DeleteRows`)。 | +| **Row indices off by one** | Aspose.Cells 使用零基索引,而 Excel 使用 1 基索引。 | 撰寫程式時記得將 Excel 列號減 1。 | +| **Formulas break after deletion** | 刪除列可能導致公式出現 `#REF!` 錯誤,若公式參照了被移除的列。 | Aspose.Cells 會自動更新大多數公式,但仍需檢查外部參照或命名範圍。 | +| **Performance slowdown on huge files** | 大量刪除列會觸發內部重新索引。 | 盡量使用一次性刪除大範圍 (`DeleteRows(start, count)`) 而非多次單列刪除。 | + +## Next Steps & Related Topics + +- **Remove specific rows based on cell values:** 結合 FAQ 中的條件迴圈與 `DeleteRows`。 +- **Bulk row insertion:** 使用 `InsertRows` 先插入佔位列,再填入資料。 +- **Working with tables (ListObjects):** 探索 `ListObject` 的列級操作方法。 +- **Exporting to CSV after row deletion:** 呼叫 `workbook.Save("output.csv", SaveFormat.Csv)` 可產生不含已刪除列的乾淨 CSV。 + +上述主題皆建立在你剛掌握的 **load excel file c#** 工作流程之上,讓你能以程式方式精細調整 Excel 檔案。 + +## Conclusion + +我們已示範 **load excel file c#** 的實務情境,說明 **how to delete rows**,並探討 **remove specific rows** 與 **remove data rows** 在 Aspose.Cells 中的細節。只要載入活頁簿、呼叫 `DeleteRows`,再儲存結果,即可完成可靠的 **c# excel row deletion**,無需 COM interop 的額外負擔。 + +不妨在真實資料集上試試——例如清理銷售報表或移除範本中的測試列。熟練後,可進一步嘗試條件刪除與表格感知的操作。此 API 足以支援簡易腳本,也能應付企業級批次處理。 + +祝程式開發順利,如有任何問題,歡迎留下評論! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/hongkong/net/worksheet-operations/_index.md index a3265a8f94..8c587397a8 100644 --- a/cells/hongkong/net/worksheet-operations/_index.md +++ b/cells/hongkong/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Excel 中經常被忽略的功能之一是使用超連結的能力。您是否 學習使用 Aspose.Cells for .NET 更新共用工作簿中的修訂日誌歷史記錄。簡化協作並保持清晰的文件記錄。 ### [在工作表中利用 OpenXml 的 Sheet_SheetId 屬性](./utilize-sheet-sheetid-property/) 使用 Aspose.Cells for .NET 釋放 Excel 的強大功能。透過我們的逐步指南學習如何有效地操作 Sheet ID。 +### [如何建立工作表 – 動態 Excel 生成的逐步指南](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +使用 Aspose.Cells for .NET 動態產生 Excel,逐步教您建立工作表。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/hongkong/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..16a15e1028 --- /dev/null +++ b/cells/hongkong/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-21 +description: 學習如何在 C# 中使用 Aspose.Cells 建立工作表、產生具有動態工作表名稱的 Excel 檔案,並將工作簿另存為 XLSX。 +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: zh-hant +og_description: 如何使用 Aspose.Cells 在 Excel 中建立工作表,產生具有動態工作表名稱的 Excel 工作表,並將活頁簿儲存為 XLSX。 +og_title: 如何建立工作表 – 完整 C# 教學 +tags: +- Aspose.Cells +- C# +- Excel automation +title: 如何建立工作表 — 動態 Excel 生成的逐步指南 +url: /zh-hant/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何建立工作表 – 完整 C# 教學 + +有沒有想過 **如何即時建立工作表**,而不必每次手動開啟 Excel?你並不孤單。許多開發者在需要從資料來源 **產生 Excel 工作表** 且希望每個工作表都有具意義且動態的名稱時,常會卡住。好消息是?使用 Aspose.Cells 只需幾行程式碼,即可自動化整個流程,**處理主工作表**,最後 **將活頁簿儲存為 XLSX**。 + +在本教學中,我們將走過一個真實情境:從空白活頁簿開始,插入告訴 Aspose 要產生哪些明細工作表的智慧標記代碼,設定命名模式讓每個工作表取得唯一名稱,最後將結果寫入磁碟。完成後,你將擁有一個可直接執行的 C# 程式,能建立工作表、產生具動態工作表名稱的 Excel 工作表,並將活頁簿儲存為 XLSX——全程不觸碰 UI。 + +> **先決條件** +> • .NET 6+(或 .NET Framework 4.6+)。 +> • Aspose.Cells for .NET(免費試用版適用於本示範)。 +> • 基本的 C# 知識——不需要深入的 Excel Interop 技巧。 + +--- + +## 我們將構建的概覽 + +- **主工作表** 包含智慧標記佔位符 (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** 讀取資料來源(例如 `DataTable`),為每個部門建立新工作表。 +- **動態工作表名稱** 遵循模式 `Dept_{0}`,其中 `{0}` 會被部門名稱取代。 +- **最終的 XLSX 檔案** 會儲存至您指定的資料夾。 + +就是這樣。簡單卻足以應付發票、報表或任何多分頁的 Excel 輸出。 + +![示意圖:主工作表如何被處理以產生多個動態工作表](/images/how-to-create-worksheets-diagram.png "如何建立工作表圖示") + +*Alt text: 使用 Aspose.Cells 以動態工作表名稱建立工作表的示意圖。* + +## 步驟 1:設定專案並加入 Aspose.Cells + +### 為什麼這很重要 +在任何程式碼執行之前,編譯器必須知道 `Workbook`、`Worksheet` 與 `SmartMarkerProcessor` 類別所在的位置。加入 NuGet 套件可確保您擁有最新且完整功能的 API。 + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **專業提示:** 如果您使用 Visual Studio,請右鍵點擊專案 → *Manage NuGet Packages* → 搜尋 *Aspose.Cells* 並安裝最新的穩定版。 + +--- + +## 步驟 2:建立新活頁簿與主工作表 + +### 我們在做什麼 +我們從一個全新的活頁簿開始,然後取得第一個工作表(索引 0)。此工作表將作為保存智慧標記代碼的 **主工作表**。 + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +`Workbook` 類別是所有工作表的容器。預設會建立名為 *Sheet1* 的工作表;將其重新命名為「Master」可讓最終檔案更易於瀏覽。 + +## 步驟 3:插入用於明細工作表名稱的智慧標記代碼 + +### 為什麼使用智慧標記? +智慧標記允許 Aspose.Cells 在執行時將佔位符替換為資料。代碼 `«DetailSheetNewName:Dept»` 告訴處理器:*「當看到此代碼時,為 `Dept` 欄位的每一列建立一個新的明細工作表。」* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +您可以將代碼放在任何位置;我們為了清晰起見選擇了 **A1**。當處理器執行時,它會將代碼替換為實際的部門名稱,並產生相對應的工作表。 + +## 步驟 4:準備資料來源 + +### 資料如何驅動工作表建立 +Aspose.Cells 可與任何 `IEnumerable` 資料來源配合使用。於本示範中,我們將使用一個名為 `Dept` 的單欄位 `DataTable`。 + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **如果您有更多欄位呢?** +> 除非在額外的智慧標記中引用,否則處理器會忽略多餘的欄位。這樣可保持工作表產生的輕量化。 + +## 步驟 5:設定 SmartMarkerProcessor 與命名模式 + +### 動態工作表名稱實作 +我們希望每個新工作表的名稱為 `Dept_Finance`、`Dept_HR` 等。`DetailSheetNewName` 選項允許我們定義一個模式,將 `{0}` 替換為實際的部門名稱。 + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +如果同一部門出現兩次,Aspose 會自動在名稱後加上數字後綴(例如 `Dept_Finance_1`),以避免工作表名稱重複。 + +## 步驟 6:處理主工作表以產生明細工作表 + +### **process master sheet** 的核心 +呼叫 `Process` 會完成繁重的工作:它會掃描主工作表中的智慧標記,建立新工作表,複製主工作表的版面,並將每列的資料填入相應的工作表。 + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +執行此呼叫後,活頁簿將包含一個主工作表以及四個明細工作表——每個工作表皆依照我們的模式命名,且在 A1 儲存格中填入部門名稱。 + +## 步驟 7:將活頁簿儲存為 XLSX + +### 最後一步—**save workbook as XLSX** +現在工作表已建立,我們將檔案寫入磁碟。您可以選擇任意路徑,只需確保目錄已存在。 + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +開啟 `DetailSheets.xlsx` 後會看到: + +| 工作表名稱 | 儲存格 A1(內容) | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **特殊情況:** 如果輸出資料夾不存在,`Save` 會拋出 `DirectoryNotFoundException`。請將呼叫包在 try‑catch 區塊中,或事先建立該資料夾。 + +## 完整工作範例 + +將所有步驟整合在一起,以下是可直接貼到 Console 應用程式的完整程式碼: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +執行程式,開啟產生的檔案,即可看到先前描述的版面。不需手動複製貼上,也不需要 COM interop——僅使用乾淨的 C# 程式碼即可 **產生 Excel 工作表**,且具備 **動態工作表名稱**。 + +## 常見問題與注意事項 + +| 問題 | 答案 | +|----------|--------| +| *我可以使用包含多個資料表的 DataSet 嗎?* | 可以。將相應的資料表傳遞給 `Process`,或使用資料表字典。 | +| *如果我需要在主工作表上放置多個智慧標記怎麼辦?* | 放置額外的代碼,例如 `«DetailSheetNewName:Region»`,並在需要時設定不同的命名模式。 | +| *主工作表會保留在最終檔案中嗎?* | 預設會保留。如果不需要,可在處理完畢後呼叫 `workbook.Worksheets.RemoveAt(0)` 移除。 | +| *Aspose 如何處理非常大的資料集?* | 它會有效率地串流資料,但若遇到記憶體限制,可能需要調整 `MemorySetting`。 | +| *我可以匯出為 CSV 而非 XLSX 嗎?* | 當然可以——使用 `workbook.Save("file.csv", SaveFormat.Csv)`。工作表產生的邏輯相同。 | + +## 後續步驟 + +既然您已掌握動態 **建立工作表** 的方法,接下來可以探索: + +- **將活頁簿儲存為 XLSX** 並使用密碼保護(`workbook.Protect("pwd")`)。 +- **從 JSON 或 XML 來源產生 Excel 工作表**,使用 `JsonDataSource` 或 `XmlDataSource`。 +- **套用樣式** 到每個產生的工作表(字型、顏色),透過 `Style` 物件。 +- **合併儲存格** 或自動插入公式以製作彙總報表。 + +所有這些延伸功能皆基於相同的 **process master sheet** 概念,轉換起來相當順暢。 + +## 結論 + +我們已完整說明整個流程:從初始化活頁簿、插入智慧標記、設定 **動態工作表名稱**、處理主工作表以 **產生 Excel 工作表**,最後 **將活頁簿儲存為 XLSX**。此範例完整且可執行,展示了效能與可維護性的最佳實踐。 + +試試看,調整命名模式,輸入真實的業務資料,您將看到 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/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/hungarian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..f7cff2ad78 --- /dev/null +++ b/cells/hungarian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Hogyan számítsuk ki a munkafüzetet C#-ban az Aspose.Cells segítségével + – tanulja meg, hogyan hozhat létre Excel munkafüzetet, töltsön fel Excel cellákat, + számítsa ki az Excel képleteket, és használja a rendezési funkciót. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: hu +og_description: Hogyan számítsunk munkafüzetet C#-ban gyorsan. Ez az útmutató bemutatja, + hogyan hozzunk létre Excel munkafüzetet, töltsünk fel Excel cellákat, számítsuk + ki az Excel képleteket, és használjuk a rendezés funkciót. +og_title: Munkafüzet számítása C#-ban – Teljes rendezési útmutató +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Munkafüzet számítása C#-ban – Rendezés és képlet útmutató +url: /hu/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan számítsuk ki a munkafüzetet C#‑ban – Rendezés és képlet útmutató + +Gondoltad már valaha, hogy **hogyan számítsuk ki a munkafüzet** értékeit menet közben anélkül, hogy megnyitnád az Excelt? Nem vagy egyedül. Sok automatizálási helyzetben szükség van egy Excel fájl létrehozására, számok beillesztésére, azok rendezésére, és az eredmények visszahúzására a .NET alkalmazásba – mindezt programozott módon. + +Ebben az útmutatóban lépésről lépésre végigvezetünk: **excel munkafüzetet hozunk létre**, **excel cellákat töltünk fel**, egy **SORT** képletet csatolunk, és végül **excel képleteket számolunk ki**, hogy a rendezett tömböt közvetlenül C#‑ból olvashasd. A végére egy futtatható kódrészletet kapsz, amelyet bármely, Aspose.Cells‑t (vagy hasonló könyvtárat) hivatkozó projektbe beilleszthetsz. + +## Prerequisites + +- .NET 6+ (a kód .NET Framework 4.7.2‑n is működik) +- Aspose.Cells for .NET (ingyenes próba NuGet csomag `Aspose.Cells`) +- Alapvető C# szintaxis ismeret +- Nem szükséges telepített Microsoft Excel példány; a könyvtár elvégzi a nehéz munkát helyetted + +Ha ezekkel rendben vagy, vágjunk bele. + +## How to Calculate Workbook – Initializing the Workbook + +Az első dolog, amit meg kell tenned, egy friss munkafüzet objektum létrehozása. Gondolj rá úgy, mint egy vadon új, teljesen üres Excel fájl megnyitására. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Miért fontos:** A `Workbook` osztály minden művelet belépési pontja – nélküle nem tudsz munkalapokat, cellákat vagy képleteket hozzáadni. A helyes inicializálás biztosítja, hogy tiszta lappal dolgozol. + +## Create Excel Workbook and Access Worksheet + +Miután a munkafüzet létezik, meg kell győződnünk arról, hogy a megfelelő munkalapra mutatunk. A legtöbb könyvtár alapértelmezés szerint egy „Sheet1” nevű lapot hoz létre, de átnevezheted vagy további lapokat is hozzáadhatsz, ha szeretnéd. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Pro tipp:** A lapok korai elnevezése segít, amikor később képletekben hivatkozol rájuk (`'Data'!A1:A10`). Emellett a hibakeresés is egyszerűbbé válik. + +## Populate Excel Cells with Data + +Most **excel cellákat töltünk fel** a rendezni kívánt számokkal. A példa csak két cellát használ, de a tartományt könnyedén kiterjesztheted tucatnyi sorra. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Miért használjuk a `PutValue`‑t** – Automatikusan felismeri az adat típusát (int, double, string stb.) és a megfelelő módon tárolja, így elkerülheted a kézi típuskonverziót. + +## Apply SORT Function via Formula + +Az Excel `SORT` függvénye pontosan azt teszi, amit a neve is sugall: egy rendezett tömböt ad vissza anélkül, hogy az eredeti adatot módosítaná. Ezt a képletet a `B1` cellába helyezzük. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Különleges eset:** A `SORT` **tömb** eredményt ad. Régebbi Excel verziókban (pre‑Office 365) ez Ctrl+Shift+Enter‑t igényelt. Aspose.Cells‑nél a tömb automatikusan elérhető, amikor a munkafüzetet kiszámolod. + +## Calculate Excel Formulas to Get Results + +Ekkor a munkafüzet csak tudja, *mit* kell számolni, de még nem *hogy* kell azt megtenni. A `CalculateFormula` meghívása elindítja a motorot, amely minden képletet, köztük a `SORT`‑ot is kiértékel. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Várható konzolkimenet** + +``` +Sorted array: {2, 5} +``` + +> **Mi történt?** +> 1. A munkafüzet egy belső számítási motort hozott létre. +> 2. A `SORT` képlet az `A1:A2` tartományt vizsgálta. +> 3. A motor egy új tömböt állított elő, amelyet a `B1`‑ből nyertünk ki. + +Ha megváltoztatod az `A1` és `A2` értékeit (vagy kiterjeszted a tartományt) és újra futtatod a `CalculateFormula`‑t, a kimenet automatikusan frissül – további kód nélkül. + +## Use Sort Function on Larger Datasets (Optional) + +A legtöbb valós helyzet több mint két sort tartalmaz. Íme egy gyors módosítás, amely tetszőleges számú bejegyzésre működik: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Miért lehet erre szükséged:** Nagy tartományok rendezése lehetővé teszi ranglisták, pénzügyi adatok sorrendbe állítását, vagy egyszerűen importált CSV‑k tisztítását a további feldolgozás előtt. + +## Common Pitfalls & How to Avoid Them + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| **`#VALUE!` a B1‑ben** | A `SORT` képlet egy üres vagy nem numerikus tartományra hivatkozik. | Győződj meg róla, hogy a forrástartomány minden cellája számot vagy rendezhető szöveget tartalmaz. | +| **Tömb csonkítás** | Tömböt próbálsz kiolvasni egyetlen cellából anélkül, hogy átkonvertálnád. | Castold a `worksheet.Cells["B1"].Value`‑t `object[]`‑re (vagy a megfelelő típusra). | +| **Teljesítménycsökkenés** | Minden apró változtatás után újraszámolod a hatalmas munkafüzetet. | Hívd a `CalculateFormula`‑t csak a módosítások befejezése után, vagy használd a `CalculateFormulaOptions`‑t a hatókör korlátozásához. | + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Eredmény képernyőképe** +> ![hogyan számítsuk ki a munkafüzet eredményét Excelben](https://example.com/images/sorted-result.png "hogyan számítsuk ki a munkafüzet eredményét Excelben") + +A fenti kép a számítás után lévő munkafüzetet mutatja – a **B1** cella a rendezett `{2, 5}` tömböt tartalmazza. + +## Conclusion + +Most már tudod, **hogyan számítsuk ki a munkafüzet** értékeit programozott módon: létrehoztunk egy Excel munkafüzetet, feltöltöttük a cellákat, beágyaztuk a `SORT` képletet, és végül **excel képleteket számoltunk ki**, hogy kinyerjük a rendezett adatot. A megközelítés kis, kétcellás példákra is működik, és könnyedén skálázható nagyobb adathalmazokra is. + +Mi a következő lépés? Próbáld ki a `FILTER`, `UNIQUE` vagy akár egyedi VBA‑szerű logikát a `WorksheetFunction`‑ön keresztül. A munkafüzetet le is mentheted lemezre (`workbook.Save("Sorted.xlsx")`), és megnyithatod Excelben a vizuális ellenőrzéshez. + +Nyugodtan kísérletezz – cseréld ki a számokat, módosítsd a tartományt, vagy láncolj több képletet egymás után. Az automatizálás a gyors iterációról szól, és most már egy stabil alapod van a további fejlesztéshez. + +Boldog kódolást, és legyenek a munkafüzetek mindig úgy számolva, ahogy elvárod! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/hungarian/net/conversion-and-rendering/_index.md index 15cdc930e3..a7712acae0 100644 --- a/cells/hungarian/net/conversion-and-rendering/_index.md +++ b/cells/hungarian/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Tanuld meg, hogyan konvertálhatsz Excel fájlokat PDF-be zökkenőmentesen hala Tanuld meg, hogyan konvertálhatsz egy Excel-munkafüzetet SVG formátumba az Aspose.Cells for .NET segítségével ebből a lépésről lépésre bemutató útmutatóból. Tökéletes .NET-fejlesztők számára, akik Excelből szeretnének SVG formátumot megjeleníteni. ### [Excel konvertálása MHTML-re .NET-ben](./converting-excel-to-mhtml/) Ismerd meg, hogyan konvertálhatsz hatékonyan Excel fájlokat MHTML formátumba .NET-ben az Aspose.Cells segítségével, amivel fellendítheted a jelentéskészítési és adatmegosztási képességeidet. +### [Kép létrehozása Excelből – Pivot exportálása PNG-be C#-ban](./create-image-from-excel-export-pivot-to-png-in-c/) +Tanuld meg, hogyan exportálhatsz pivot táblákat PNG képként C#-ban az Aspose.Cells segítségével. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/hungarian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..3b7a67edf8 --- /dev/null +++ b/cells/hungarian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Készíts képet Excelből C#-ban az Aspose.Cells használatával. Tanuld meg, + hogyan konvertálj Excel-t képpé, exportáld a pivotot, és mentsd a képet PNG formátumban + egy teljes, futtatható példával. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: hu +og_description: Készíts képet Excelből C#-ban gyorsan. Ez az útmutató megmutatja, + hogyan konvertálhatod az Excelt képpé, exportálhatod a pivotot, és mentheted a képet + PNG formátumban tiszta kóddal. +og_title: Kép létrehozása Excelből – Pivot exportálása PNG‑be C#‑ban +tags: +- C# +- Aspose.Cells +- Excel automation +title: Kép létrehozása Excelből – Pivot exportálása PNG-be C#‑ban +url: /hu/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Kép létrehozása Excelből – Pivot exportálása PNG‑ként C#‑ban + +Valaha is szükséged volt **kép létrehozása Excelből**, de nem tudtad, melyik API‑t használd? Nem vagy egyedül – sok fejlesztő ütközik ebbe a problémába, amikor egy élő pivot táblát szeretne megosztható PNG‑vé alakítani. + +Ebben a bemutatóban végigvezetünk egy teljes, azonnal futtatható megoldáson, amely **Excel konvertálása képpé**, bemutatja, **hogyan exportáljuk a pivotot**, és elmagyarázza, **hogyan mentjük a képet** PNG fájlként. A végére egyetlen metódust kapsz, amely elvégzi a teljes feladatot, plusz tippeket a lehetséges edge case‑ekhez. + +## Amire szükséged lesz + +- **Aspose.Cells for .NET** (a NuGet csomag `Aspose.Cells`). Ez egy kereskedelmi könyvtár, de ingyenes értékelő módot kínál – tökéletes teszteléshez. +- .NET 6+ (vagy .NET Framework 4.6+). +- Egy egyszerű Excel munkafüzet (`Pivot.xlsx`), amely legalább egy pivot táblát tartalmaz. +- Bármelyik kedvenc IDE – Visual Studio, Rider vagy akár VS Code is megfelel. + +Ennyi. Nincs extra DLL, nincs COM interop, és nincs bonyolult Excel‑automatizálási trükk. + +Most merüljünk el a kódban. + +## 1. lépés: A munkafüzet betöltése – Kép létrehozása Excelből + +Az első dolog, amit csinálunk, hogy megnyitjuk azt az Excel fájlt, amelyik a pivot táblát tartalmazza. Ez a lépés kritikus, mert a renderelő egy memóriában lévő `Workbook` objektumon dolgozik. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Miért fontos:* A munkafüzet betöltése hozzáférést biztosít a **pivot**‑hoz és minden formázáshoz, amelyet később **Excel konvertálása képpé** során tiszteletben tartunk. Ha kihagyod, a renderelőnek nincs mit feldolgoznia. + +## 2. lépés: Exportálási beállítások konfigurálása – Excel konvertálása képpé + +Ezután megmondjuk az Aspose‑nak, hogyan szeretnénk, hogy a végső kép kinézzen. Az `ImageOrPrintOptions` osztály lehetővé teszi a PNG kiválasztását, DPI beállítását, sőt a háttérszín szabályozását is. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Miért fontos:* Magas DPI beállításával biztosítjuk, hogy a **exportálás Excelből PNG‑be** éles legyen, még akkor is, ha a pivot sok sort tartalmaz. Ha a fájlméret aggodalom, alacsonyabb DPI‑t is választhatsz. + +## 3. lépés: Munkalap renderelése – Hogyan exportáljuk a pivotot + +Most jön a folyamat szíve: a munkalap (a pivotjával együtt) képpé alakítása. A `WorksheetRender` osztály végzi a nehéz munkát. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Miért fontos:* Itt történik a **hogyan exportáljuk a pivotot** vizuális formátumba. A renderelő tiszteletben tartja a pivot összes formázását, szeletelőit és feltételes stílusait, így a PNG pontosan úgy néz ki, ahogy az Excelben. + +## 4. lépés: Összeállítás – Hogyan mentünk képet + +Végül egy nyilvános metódust biztosítunk, amely összekapcsolja az összes részt. Ez a metódus lesz a hívási pontod az alkalmazásodból, szolgáltatásodból vagy konzol eszközödből. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Teljes működő példa + +Hozz létre egy új konzol projektet, add hozzá a `Aspose.Cells` NuGet csomagot, majd helyezd el a következő `Program.cs`‑t: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Várható eredmény:** A program futtatása után a `PivotImage.png` megjelenik a megadott mappában, egy pixel‑tökéletes pillanatképet mutatva a pivot tábláról. + +![Create image from Excel example](https://example.com/placeholder.png "Create image from Excel example") + +*Alt text:* create image from excel example showing exported pivot table as PNG. + +## Gyakori kérdések és edge case‑ek + +### Mi van, ha a munkafüzettel több munkalap is van? + +A segédfüggvény jelenleg a `Worksheets[0]`‑t használja. Egy konkrét lap célzásához add át a lap nevét: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### A PNG elmosódott – hogyan javítható? + +Növeld a `HorizontalResolution` és `VerticalResolution` értékeket a `GetImageOptions`‑ban. A 300–600 DPI közötti értékek általában éles eredményt adnak. Ne feledd, a magasabb DPI nagyobb fájlméretet jelent. + +### A pivot több oldalra terjed – exportálhatom az összes oldalt? + +Igen. Iterálj a `renderer.PageCount`‑on, és hívd meg a `ToImage(pageIndex, ...)`‑t minden oldalra, vagy állítsd `OnePagePerSheet = false`‑ra, hogy külön képek jöjjenek létre oldalanként. + +### Csak a munkalap egy részére van szükségem (pl. egy adott tartományra)? + +Használd az `ImageOrPrintOptions`‑t a `PrintArea` beállításához: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Így **Excel konvertálása képpé** csak a számodra fontos területre korlátozható. + +### Működik ez .xls (Excel 97‑2003) fájlokkal is? + +Természetesen. Az Aspose.Cells elrejti a fájlformátum részleteit, így `.xls`, `.xlsx`, `.xlsm`, vagy akár `.ods` fájlokat is betáplálhatsz, és továbbra is **exportálás Excelből PNG‑be** végezhetsz. + +## Pro tippek és buktatók + +- **Licenc:** Értékelő módban az Aspose vízjelet helyez el. Éles környezetben telepíts megfelelő licencet. +- **Memóriahasználat:** Nagy munkafüzetek renderelése memóriaigényes lehet. A `Workbook` objektumot gyorsan szabadítsd fel, vagy csomagold `using` blokkba. +- **Szálbiztonság:** A `Workbook` nem szálbiztos. Webszolgáltatás esetén kérésenként hozz létre új példányt. +- **Képkimenet rugalmassága:** Ha JPEG‑et vagy BMP‑t szeretnél, egyszerűen módosítsd az `ImageFormat`‑ot a `GetImageOptions`‑ban. + +## Összegzés + +Most már van egy szilárd, vég‑től‑végig recept a **kép létrehozása Excelből**, különösen a **pivot exportálása** magas minőségű PNG‑ként. A fenti kódrészlet teljes, futtatható, bemutatja, **hogyan mentünk képet**, és kitér a változatokra, mint a több munkalap vagy egyedi nyomtatási területek. + +Mi a következő lépés? Próbáld meg összekapcsolni ezt az exportert egy e‑mail szolgáltatással, hogy automatikusan elküldje a PNG‑t, vagy kísérletezz az `ImageOrPrintOptions`‑szal PDF‑ek generálásához PNG helyett. Ugyanez a minta működik **Excel konvertálása képpé** feladatoknál sokféle formátumban. + +Van még kérdésed? Írj egy megjegyzést, és jó kódolást kívánunk! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..6e32343f53 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 @@ -46,6 +46,8 @@ Az Aspose.Cells for .NET leegyszerűsíti a dokumentumátalakításokat, lehető Tanuld meg, hogyan konvertálhatsz CSV-t JSON-ná .NET-ben az Aspose.Cells használatával. Lépésről lépésre útmutató az adatátalakításhoz könnyen követhető kódpéldákkal. ### [Excel fájlok programozott konvertálása DOCX formátumba .NET-ben](./converting-excel-file-to-docx/) Tanuld meg, hogyan konvertálhatsz Excel fájlokat programozottan DOCX formátumba az Aspose.Cells for .NET segítségével ebben a lépésről lépésre szóló útmutatóban. Tökéletes jelentéskészítéshez és adatmegosztáshoz. +### [Excel mentése Docx formátumba C#‑val – Teljes lépésről‑lépésre útmutató](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Ismerje meg, hogyan menthet Excel-fájlt DOCX formátumba C#‑ban az Aspose.Cells for .NET segítségével, részletes kódpéldákkal. ### [Excel fájl HTML-lé konvertálása Tooltip segítségével .NET-ben](./converting-excel-file-to-html-with-tooltip/) Néhány egyszerű lépésben konvertálhat Excel fájlokat HTML-lé az Aspose.Cells for .NET segítségével, elemleírásokkal. Fejleszti webes alkalmazásait interaktív Excel-adatokkal könnyedén. ### [Excel fájlok programozott konvertálása Markdown formátumba .NET-ben](./converting-excel-file-to-markdown/) diff --git a/cells/hungarian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/hungarian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..33db6486ec --- /dev/null +++ b/cells/hungarian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-21 +description: Excel mentése Docx formátumban C#‑ban — tanulja meg, hogyan konvertálhatja + az Excelt Word‑re, ágyazhat be diagramokat, és tölthet be Excel munkafüzetet C#‑ban + az Aspose.Cells használatával. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: hu +og_description: Az Excel mentése Docx formátumba C#-ban az első mondatban magyarázva. + Kövesd ezt az útmutatót az Excel Word-be konvertálásához, diagramok beágyazásához + és Excel munkafüzet betöltéséhez C#-ban. +og_title: Excel mentése Docx formátumba C#-val – Teljes útmutató +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Excel mentése Docx formátumba C#‑val – Teljes lépésről‑lépésre útmutató +url: /hu/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel mentése Docx formátumba C#‑val – Teljes lépésről‑lépésre útmutató + +Valaha szükséged volt **Excel mentése Docx**-ként, de nem tudtad, hol kezdj? Nem vagy egyedül – sok fejlesztő ugyanabba a helyzetbe került, amikor *Excel átalakítása Word‑be* szeretné a diagramokat érintetlenül tartva. Ebben az útmutatóban végigvezetünk a szükséges kódon, elmagyarázzuk, miért fontos minden sor, és megmutatjuk, hogyan ágyazhatod be az Excel diagramokat minőségromlás nélkül. + +Néhány extra tippet is megosztunk a **load Excel workbook C#** helyzetekhez, így a végére magabiztosan tudsz Excel‑t Docx‑be konvertálni bármely .NET projektben. Nincs homályos hivatkozás, csak egy konkrét, futtatható példa, amit most azonnal másolhatsz‑beilleszthetsz. + +--- + +## A útmutató tartalma + +- Léttező `.xlsx` fájl betöltése az Aspose.Cells (vagy bármely kompatibilis könyvtár) segítségével. +- Opcionális munkalapok vagy diagramok módosítása a konvertálás előtt. +- Munkafüzet mentése `.docx` fájlként, miközben megőrzi a beágyazott diagramokat. +- Kimenet ellenőrzése és gyakori szélhelyzetek kezelése, például nagy munkafüzetek vagy nem támogatott diagramtípusok. + +Ha azon gondolkodsz, **miért érdemes Excel‑t Docx‑be konvertálni**, gondolj azokra a jelentésekre, amelyeket nem‑technikai érintetteknek kell elküldeni – a Word dokumentumok univerzálisan elfogadottak, és megőrzik a diagramok vizuális hűségét. Merüljünk el benne. + +--- + +## Előfeltételek – Load Excel Workbook C# + +Mielőtt kódot írnánk, győződj meg róla, hogy a következőkkel rendelkezel: + +| Requirement | Reason | +|-------------|--------| +| **.NET 6.0 vagy újabb** | Modern futtatókörnyezet, jobb teljesítmény, és teljes támogatás az Aspose.Cells számára. | +| **Aspose.Cells for .NET** (NuGet csomag `Aspose.Cells`) | Biztosítja a `Workbook` osztályt, amely az Excel olvasásához és DOCX‑be exportálásához használható. | +| **Visual Studio 2022** (vagy bármely kedvenc IDE) | Hasznos a hibakereséshez és az IntelliSense-hez. | +| **Egy diagramokat tartalmazó Excel fájl** (`AdvancedCharts.xlsx`) | A *embed excel charts* funkció működésének megtekintéséhez. | + +A könyvtárat a Package Manager Console‑on keresztül telepítheted: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tipp:** Ha CI/CD pipeline‑on vagy, add hozzá a csomagot a `*.csproj` fájlodhoz, hogy a visszaállítások automatikusan megtörténjenek. + +--- + +## 1. lépés – Az Excel munkafüzet betöltése (a Save Excel as Docx itt kezdődik) + +Az első lépés a forrás munkafüzet betöltése. Itt jön a képbe a **load excel workbook c#** kifejezés. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Miért fontos ez:** A fájl betöltése hozzáférést biztosít minden munkalaphoz, diagramhoz és stílushoz. Enélkül a lépés nélkül nincs mit konvertálni, és az API nem tudja megőrizni a beágyazott grafikákat. + +--- + +## 2. lépés – (Opcionális) A munkafüzet finomhangolása a konvertálás előtt + +Lehet, hogy át szeretnéd nevezni egy lapot, elrejteni egy oszlopot, vagy akár megváltoztatni egy diagram címét. Ez a lépés opcionális, de bemutatja, mennyire rugalmas a konvertálás. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Különleges eset:** Néhány régebbi diagramtípus (pl. Radar) nem jelenhet meg tökéletesen Word‑ben. Teszteld a konkrét diagramjaidat a konvertálás után. + +--- + +## 3. lépés – A munkafüzet mentése Word dokumentumként (a központi “Save Excel as Docx” művelet) + +Most jön a döntő pillanat: ténylegesen **save Excel as Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Amikor ez fut, az Aspose.Cells minden munkalapot táblázatként ír a Word fájlba, és minden diagramot nagy felbontású képként ágyaz be. Az eredmény egy teljesen szerkeszthető `.docx`, amely pontosan úgy néz ki, mint az eredeti Excel nézet. + +> **Miért a DOCX-et választod a PDF helyett?** A DOCX lehetővé teszi a címzettek számára a szöveg szerkesztését vagy a diagramok későbbi cseréjét, míg a PDF egy statikus pillanatfelvétel. + +--- + +## 4. lépés – A kimenet ellenőrzése és gyakori problémák hibaelhárítása + +A konvertálás befejezése után nyisd meg a `ChartsInWord.docx` fájlt a Microsoft Wordben: + +1. **Ellenőrizd, hogy minden munkalap külön szekcióként jelenik meg** – táblázatokat kell látnod, amelyek tükrözik az Excel adatait. +2. **Győződj meg arról, hogy a diagramok be vannak ágyazva** – választható képeknek kell lenniük, nem törött helyőrzőknek. +3. **Ha egy diagram hiányzik**, ellenőrizd, hogy a diagramtípus támogatott-e az Aspose.Cells által (lásd a [hivatalos kompatibilitási listát](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tipp:** Nagy munkafüzetek esetén fontold meg az Aspose.Cells `MemorySetting` beállításának növelését, hogy elkerüld a `OutOfMemoryException` hibát: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Teljes működő példa (másolás‑beillesztés kész) + +Az alábbiakban a teljes program található, amely készen áll a fordításra. Cseréld le a `YOUR_DIRECTORY`-t a gépeden lévő tényleges mappára. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Várható eredmény:** Egy Word dokumentum (`ChartsInWord.docx`), amely minden munkalapot táblázatként és minden diagramot beágyazott, nagy felbontású képként tartalmaz. Nyisd meg Wordben, és láthatod az Excelben lévő pontos vizuális elrendezést. + +--- + +## Gyakran Ismételt Kérdések (GYIK) + +**Q: Több Excel fájlt is konvertálhatok egy ciklusban?** +A: Természetesen. A konvertálási logikát egy `foreach (var file in Directory.GetFiles(...))` ciklusba kell helyezni, és újra felhasználni ugyanazt a `Workbook` példány mintát. + +**Q: Működik ez `.xls` fájlokkal is?** +A: Igen – az Aspose.Cells támogatja a régi formátumokat. Csak változtasd meg a forrás kiterjesztését; ugyanaz a `SaveFormat.Docx` hívás érvényes. + +**Q: Mi van, ha a képleteket is meg szeretném tartani a konvertálás során?** +A: A Word nem támogatja natívan az Excel képleteket. A konvertálás a képleteket a számított értékekre laposítja. Ha élő számításokra van szükséged, fontold meg a munkafüzet OLE objektumként való beágyazását. + +**Q: Van mód a diagramok képfelbontásának szabályozására?** +A: Használd a `ImageOrPrintOptions`-t a mentés előtt: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bónusz: Excel diagramok közvetlen beágyazása Word-be (a Save Excel as Docx-en túl) + +Ha azt szeretnéd, hogy a diagram szerkeszthető maradjon Word-ben, beágyazhatod az egész Excel lapot OLE objektumként: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Ez a technika *embed excel charts* élő objektumként, lehetővé téve a végfelhasználók számára, hogy dupla‑kattintással szerkesszék őket Excelben közvetlenül a Wordből. Praktikus alternatíva, ha interaktivitásra van szükség. + +--- + +## Összegzés + +Most már egy stabil, vég‑a‑végig megoldással rendelkezel a **save Excel as docx** C#‑ban történő használatához. Az útmutató bemutatta a munkafüzet betöltését, az opcionális finomhangolásokat, a tényleges mentési műveletet, az ellenőrzési lépéseket, és még egy gyors áttekintést a diagramok beágyazásáról szerkeszthető esetekben. A fenti kód követésével **Excel‑t Word‑be konvertálhatsz**, megőrizheted minden diagramot, és nagy fájlokkal is könnyedén megbirkózhatsz. + +Készen állsz a következő kihívásra? Próbáld meg automatizálni a kötegelt konvertálást, integráld ezt a logikát egy ASP.NET Core API-ba, vagy fedezd fel a **convert Excel to docx** lehetőséget több‑lapos irányítópultokhoz. Az általad most megszerzett képességek bármely dokumentum‑automatizálási projekt alapját képezik. + +Van kérdésed vagy egy nehéz munkafüzet, amely nem konvertálódik? Hagyj megjegyzést, és együtt megoldjuk. Boldog kódolást! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..dfc0571274 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ág hozzáadása C#-ban](./how-to-save-xlsb-add-custom-property-in-c/) +Ismerje meg, hogyan menthet XLSB fájlt, és adhat hozzá egyéni tulajdonságot C#-ban az Aspose.Cells for .NET segítségével. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/hungarian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..6e7f8e4c61 --- /dev/null +++ b/cells/hungarian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,276 @@ +--- +category: general +date: 2026-03-21 +description: Tanulja meg, hogyan menthet xlsb fájlokat C#-ban, miközben egy egyedi + tulajdonságot, például a ProjectId-t adja hozzá. Ez az útmutató bemutatja, hogyan + hozhat létre egy Excel munkafüzetet, adjon hozzá egyedi tulajdonságot, és ellenőrizze + azt. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: hu +og_description: Fedezze fel, hogyan menthet xlsb fájlokat, és adhat hozzá egy egyedi + tulajdonságot, például a ProjectId-t C#-ban. Lépésről lépésre útmutató teljes kóddal. +og_title: Hogyan mentse el az XLSB fájlt – Egyéni tulajdonság hozzáadása C#-ban +tags: +- C# +- Aspose.Cells +- Excel automation +title: Hogyan mentse el az XLSB-t – Egyéni tulajdonság hozzáadása C#-ban +url: /hu/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan mentse el az XLSB – Egyedi tulajdonság hozzáadása C#-ban + +Gondolkodtál már azon, **how to save xlsb** fájlok mentésén, miközben egy darab metaadatot is elrejtesz bennük? Lehet, hogy egy jelentéskészítő motoron dolgozol, amelynek egy rejtett ProjectId-re van szüksége, vagy egyszerűen csak címkézni szeretnéd a munkalapokat az utólagos feldolgozáshoz. **How to save xlsb** nem űrhajózás, de az egyedi tulajdonsággal való kombinálás egy apró csavart ad, amit sok fejlesztő figyelmen kívül hagy. + +Ebben az útmutatóban végigvezetünk egy Excel munkafüzet létrehozásán, egy egyedi tulajdonság (igen, *add custom property*) hozzáadásán, a fájl **XLSB** bináris munkafüzetként való mentésén, és végül a visszatöltésén, hogy bizonyítsuk, a tulajdonság megmaradt. Útközben érinteni fogjuk a **how to add custom property** értékeket, mint például egy ProjectId, így egy újrahasználható mintát kapsz a jövőbeli projektekhez. + +> **Pro tip:** Ha már használod az Aspose.Cells könyvtárat (a lenti kód is ezt teszi), natív támogatást kapsz az egyedi tulajdonságokhoz COM interop fejfájás nélkül. + +--- + +## Előfeltételek + +- .NET 6+ (or .NET Framework 4.6+). +- Aspose.Cells for .NET – install via NuGet: `Install-Package Aspose.Cells`. +- Alap C# ismeretek – semmi bonyolult, csak néhány `using` utasítás. + +Ennyi. Nincs Office telepítés, nincs interop, csak tiszta managed kód. + +--- + +## 1. lépés: How to Save XLSB – Excel munkafüzet létrehozása + +Az első dolog, amit tenned kell, egy új munkafüzet objektum létrehozása. Gondolj rá úgy, mint egy üres Excel fájl megnyitására, amely csak a memóriában létezik, amíg el nem döntöd, hogy leírod a lemezre. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Miért kezdjünk egy munkafüzettel? Mert a **create excel workbook** az alapja minden további műveletnek – legyen szó képletek, diagramok vagy egyedi tulajdonságok beszúrásáról. A `Workbook` osztály absztrahálja az egész fájlt, míg a `Worksheets` hozzáférést biztosít az egyes lapokhoz. + +--- + +## 2. lépés: Egyedi tulajdonság hozzáadása a munkalaphoz + +Most jön a szórakoztató rész – **add custom property**. Az Aspose.Cells-ben közvetlenül egy munkalaphoz (vagy a munkafüzethez) csatolhatsz egy tulajdonságot. Itt egy numerikus ProjectId-t tárolunk, amelyet az utólagos szolgáltatások a látható cellák érintése nélkül olvashatnak. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? Csak hívd a `CustomProperties.Add(name, value)` metódust. Az API automatikusan kezeli a háttérben lévő XML-t, így nem kell aggódnod az alacsony szintű részletek miatt. Ez a legbiztonságosabb módja a metaadatok beágyazásának, amelyek a végfelhasználó számára nem láthatóak. + +--- + +## 3. lépés: Munkafüzet mentése XLSB-ként + +A munkafüzet készen áll és az egyedi tulajdonság csatlakoztatva van, itt az ideje a **how to save xlsb**-nek. Az XLSB formátum bináris ábrázolásban tárolja az adatokat, ami általában kisebb és gyorsabban megnyitható, mint a klasszikus XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Az XLSB-ként való mentés olyan egyszerű, mint a `SaveFormat.Xlsb` átadása a `Save` metódusnak. Ha azon gondolkodsz, hogy ez eltávolítja-e az egyedi tulajdonságot – nyugodj meg, az Aspose.Cells megőrzi mind a munkafüzet‑szintű, mind a munkalap‑szintű tulajdonságokat a bináris fájlban. + +--- + +## 4. lépés: Az egyedi tulajdonság ellenőrzése + +Jó szokás újratölteni a fájlt, és megerősíteni, hogy a tulajdonság túlélte a körutazást. Ez azt is bemutatja, hogy **how to add custom property** később hogyan frissíthető, ha szükséges. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Ha a konzol `12345`-öt ír ki, akkor sikeresen **how to save xlsb** *és* **add project id** hajtottad végre egy lépésben. A tulajdonság a fájl belső metaadataiban él, láthatatlan a felhasználói felületen, de kóddal tökéletesen olvasható. + +--- + +## További tippek: Több tulajdonság hozzáadása és szélsőséges esetek + +### Több mint egy tulajdonság hozzáadása + +You can stack as many properties as you like: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Létező tulajdonság frissítése + +If a property already exists, just assign a new value: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Hiányzó tulajdonságok kezelése + +Attempting to read a non‑existent property throws a `KeyNotFoundException`. Guard against it: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Keresztverziós kompatibilitás + +Az XLSB működik az Excel 2007 + és a webes Excel verzióján. Azonban a régebbi Office verziók (< 2007) nem tudják megnyitni az XLSB fájlokat. Ha szélesebb kompatibilitásra van szükséged, fontold meg egy második másolat mentését XLSX formátumban. + +### Teljesítménybeli megfontolások + +A bináris XLSB fájlok általában 30‑50 %-kal kisebbek, mint az XLSX, és gyorsabban betöltődnek. Nagy adathalmazok (több százezer sor) esetén a sebességnyereség észrevehető lehet. + +--- + +## Teljes működő példa + +Az alábbiakban a teljes program látható, amelyet beilleszthetsz egy konzolos projektbe. Tartalmazza az összes lépést, a hibakezelést és a kommentárokat, amelyekre azonnal szükséged van a működéshez. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Várható kimenet** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Ha a fenti kimenetet látod, akkor elsajátítottad a **how to save xlsb**, **add custom property**, és **add project id** technikákat – mindezt egy rendezett, újrahasználható kódrészletben. + +--- + +## Gyakran Ismételt Kérdések + +**Q: Működik ez .NET Core‑dal?** +A: Teljesen. Az Aspose.Cells .NET Standard‑kompatibilis, így ugyanaz a kód fut .NET 5/6/7‑en és a .NET Framework‑ön is. + +**Q: Hozzáadhatok egyedi tulajdonságot az egész munkafüzethez egyetlen lap helyett?** +A: Igen. Használd a `workbook.CustomProperties.Add("Key", value);` metódust, hogy a munkafüzet szintjén csatold. + +**Q: Mi van, ha egy nagy szöveget (pl. JSON) kell tárolni tulajdonságként?** +A: Az API bármilyen hosszúságú stringet elfogad, de vedd figyelembe, hogy a rendkívül nagy adatmennyiség növelheti a fájlméretet. Nagy adatok esetén inkább egy rejtett munkalapot érdemes használni. + +**Q: Látható az egyedi tulajdonság az Excel felhasználói felületén?** +A: Nem közvetlenül. A felhasználók a **File → Info → Properties → Advanced Properties → Custom** menüpont alatt láthatják, de nem jelenik meg a táblázatban. + +--- + +## Következtetés + +Áttekintettük, hogyan **how to save xlsb** fájlokat menthetünk C#‑ban, miközben **add custom property**-t, például egy ProjectId-t adunk hozzá. A lépésről‑lépésre mintát követve – **create excel workbook**, **add custom property**, **save as XLSB**, és **verify** – most egy stabil, hivatkozásra érdemes referenciát kaptál, amely mind a keresőmotorok, mind az AI asszisztensek számára működik. + +Ezután érdemes lehet: + +- **How to add custom property** több munkalapra egy ciklusban. +- Adatok exportálása egy DataTable‑ból a munkafüzetbe a mentés előtt. +- Az XLSB fájl titkosítása extra biztonság érdekében. + +Nyugodtan kísérletezz, módosítsd a tulajdonságneveket, vagy cseréld le a bináris formátumot XLSX-re, ha szélesebb kompatibilitásra van szükséged. Van egy nehéz helyzeted? Írj egy megjegyzést, és együtt megoldjuk. Boldog kódolást! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/hungarian/net/excel-autofilter-validation/_index.md index d737e2f367..367d6d3832 100644 --- a/cells/hungarian/net/excel-autofilter-validation/_index.md +++ b/cells/hungarian/net/excel-autofilter-validation/_index.md @@ -29,13 +29,15 @@ A bemutatón, melynek címe [Az Autofilter ezzel kezdődik az Excelben](./autofi Most pedig beszéljünk valamiről, ami gyakran kicsúszik a figyelmünk középpontjából: az adatellenőrzésről. Nincs frusztrálóbb annál, mint órákig tartó kemény munka után rájönni, hogy egyetlen tisztességtelen bejegyzés meghiúsította a számításainkat! Ennek a rémálomnak az elkerülése érdekében decimális adatellenőrzést valósíthatunk meg az Aspose.Cells segítségével. -Oktatóanyagunk a következőről: [Decimális adatérvényesítés Excelben](./decimal-data-validation-in-excel/) a legjobb forrásod ehhez. Végigvezet a tizedes értékek kezelésének folyamatán, biztosítva, hogy az adataid megbízhatóak és tiszták maradjanak. Megtanulod, hogyan kell beállítani az érvényesítési szabályokat, amelyek korlátozzák a bemeneteket, csak bizonyos formátumokat vagy tartományokat engedélyezve. Olyan ez, mintha egy visszadobóval szerelnéd fel a táblázatodat, amely csak a megfelelő adatokat engedi beírni! +Oktatóanyagunk a következőről: [Decimális adatérvényesítés Excelben](./decimal-data-validation-in-excel/) a legjobb forrásod ehhez. Végigvezet a tizedes értékek kezelésének folyamatán, biztosítva, hogy adataid megbízhatóak és tiszták maradjanak. Megtanulod, hogyan kell beállítani az érvényesítési szabályokat, amelyek korlátozzák a bemeneteket, csak bizonyos formátumokat vagy tartományokat engedélyezve. Olyan ez, mintha egy visszadobóval szerelnéd fel a táblázatodat, amely csak a megfelelő adatokat engedi beírni! ## Excel automatikus szűrő és érvényesítési oktatóanyagok ### [Az Autofilter ezzel kezdődik az Excelben](./autofilter-begins-with-in-excel/) Tanuld meg, hogyan szűrheted automatikusan az Excel sorokat az Aspose.Cells segítségével .NET-ben, ezzel az átfogó, lépésről lépésre szóló útmutatóval. ### [Decimális adatérvényesítés Excelben](./decimal-data-validation-in-excel/) Ismerje meg, hogyan valósíthat meg decimális adatellenőrzést Excelben az Aspose.Cells for .NET használatával könnyen követhető útmutatónkkal. Növelje az adatok integritását erőfeszítés nélkül. +### [AutoFilter eltávolítása Excelből – Teljes C# útmutató](./remove-autofilter-from-excel-complete-c-guide/) +Tanulja meg, hogyan távolíthatja el az AutoFilter-t Excelből C#-ban az Aspose.Cells segítségével, lépésről lépésre útmutató. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/hungarian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..2155b9a414 --- /dev/null +++ b/cells/hungarian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-21 +description: Tudja meg, hogyan távolíthatja el az AutoFilter-t az Excelből C#-val. + Ez a lépésről‑lépésre útmutató bemutatja, hogyan törölheti az AutoFilter-t, hogyan + kapcsolhatja ki az AutoFilter-t az Excelben, és hogyan törölheti az Excel táblázat + szűrőjét. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: hu +og_description: Távolítsa el az AutoFilter-t az Excelből C#-val. Ez a bemutató megmutatja, + hogyan törölhetjük az AutoFilter-t, kapcsolhatjuk ki az AutoFilter-t az Excelben, + és törölhetjük az Excel táblázat szűrőjét néhány kódsorral. +og_title: AutoFilter eltávolítása az Excelből – Teljes C# útmutató +tags: +- C# +- Aspose.Cells +- Excel automation +title: AutoFilter eltávolítása az Excelből – Teljes C# útmutató +url: /hu/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# AutoFilter eltávolítása az Excelből – Teljes C# útmutató + +Valaha is szükséged volt **AutoFilter eltávolítására az Excelből**, de nem tudtad, melyik API‑hívás kapcsolja ki ténylegesen? Nem vagy egyedül. Sok jelentéskészítő folyamatban a szűrő felhasználói felülete akadályozza a további feldolgozást, ezért a tiszta állapot gyakori követelmény. Ebben az útmutatóban egy tömör, termelés‑kész megoldáson keresztül mutatjuk be, hogyan **töröljük az AutoFiltert**, valamint hogyan **kapcsoljuk ki az AutoFilter Excel** stílusú szűrőket, és hogyan **töröljük teljesen az Excel táblázat szűrőjét**. + +> **Mit fogsz megtanulni:** egy azonnal futtatható C# programot, amely betölti a meglévő munkafüzetet, eltávolítja a szűrőt az első táblázatból, és egy friss másolatot ment anélkül, hogy bármilyen UI‑elem maradna. + +## Előfeltételek + +- .NET 6+ (vagy .NET Framework 4.7.2+) +- A **Aspose.Cells** NuGet csomag (az API, amit a kódban használunk) +- Egy minta munkafüzet (`TableWithFilter.xlsx`), amely már tartalmaz egy AutoFilterrel ellátott táblát +- Alapvető C# szintaxis ismeret (mély Excel belső részletek nem szükségesek) + +Ha ezek megvannak, vágjunk bele. + +--- + +## 1. lépés – Aspose.Cells telepítése és a projekt beállítása + +Mielőtt bármilyen kód futna, szükségünk van a könyvtárra, amely biztosítja a `Workbook`, `Worksheet` és `ListObject` osztályokat. + +```bash +dotnet add package Aspose.Cells +``` + +> **Pro tipp:** Használd a ingyenes értékelő verziót a teszteléshez; csak ne felejtsd el beállítani a licenckulcsot a termékbevezetés előtt. + +### Miért fontos +Az Aspose.Cells elrejti az alacsony szintű OOXML kezelést, így táblázatokat, szűrőket és stílusokat manipulálhatunk XML‑parsing nélkül. Ezért a **remove autofilter from excel** feladat egyetlen soros megoldássá válik a bonyolult XML‑manipuláció helyett. + +--- + +## 2. lépés – A táblát tartalmazó munkafüzet betöltése + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +A `Workbook` objektum az egész Excel fájlt képviseli. Először betöltve biztosítja, hogy egy tiszta memóriabeli másolatunk legyen, ami kulcsfontosságú, amikor később **clear excel table filter**‑t hajtunk végre anélkül, hogy más munkalapokat befolyásolnánk. + +--- + +## 3. lépés – A munkalap és a cél táblázat lekérése + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +A **ListObject** az Aspose kifejezése egy Excel táblára. Még ha a lapod több táblát is tartalmaz, végigiterálhatsz a `worksheet.ListObjects`-on, és ugyanazt a logikát alkalmazhatod mindegyiken. Ez a rugalmasság válasz a „mi van, ha több táblám van?” kérdésre, amit sok fejlesztő feltesz. + +--- + +## 4. lépés – Az AutoFilter eltávolítása a táblából + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Az `AutoFilter` `null`‑ra állítása **teljesen eltávolítja a szűrőobjektumot**, ami a legmegbízhatóbb módja a **how to delete autofilter** feladatnak. Az alternatív `ShowAutoFilter` tulajdonság csak elrejti a UI‑t, de a szűrőmotor továbbra is aktív marad – hasznos, ha csak **turn off autofilter excel**‑t szeretnél vizuálisan, miközben a mögöttes kritériumok megmaradnak. + +> **Szélsőséges eset:** Ha a táblának nincs AutoFilterje, a `table.AutoFilter` már `null`. A fenti sor biztonságos; egyszerűen nem csinál semmit. + +--- + +## 5. lépés – A módosított munkafüzet mentése + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Új fájlba menteni megőrzi az eredetit – ez a legjobb gyakorlat Excel átalakítások automatizálásakor. A program futtatása után nyisd meg a `NoAutoFilter.xlsx` fájlt; a táblázatnak nem lesznek szűrő legördülő menük, ami megerősíti, hogy a **remove excel table filter** művelet sikeres volt. + +--- + +## Az eredmény ellenőrzése – Mit várhatsz + +1. **Nyisd meg a `NoAutoFilter.xlsx` fájlt** Excelben. +2. **Válaszd ki a táblát** – a kis tölcsér ikonoknak a oszlopfejlécek mellett el kell tűnniük. +3. **Ellenőrizd a többi munkalapot** – azok érintetlenek maradnak, bizonyítva, hogy csak a kívánt lapon **clear excel table filter**‑t hajtottunk végre. + +Ha az ikonok még mindig láthatók, ellenőrizd, hogy a megfelelő `ListObject` indexet céloztad‑e meg. Ne feledd, az Aspose‑ban az Excel táblák null‑alapúak, így a `ListObjects[0]` az első tábla a lapon. + +--- + +## Több tábla vagy munkalap kezelése + +Előfordulhat, hogy **remove autofilter from excel** munkafüzetekben több táblát kell kezelni különböző lapokon. Íme egy gyors kiterjesztés: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Ez a ciklus garantálja, hogy **turn off autofilter excel** mindenhol megtörténjen, ezzel eltávolítva minden rejtett szűrőt, ami a downstream adatimportot akadályozhatja. + +--- + +## Gyakori hibák és elkerülésük + +| Hiba | Miért fordul elő | Megoldás | +|------|------------------|----------| +| **A szűrő mentés után is megmarad** | `ShowAutoFilter = false` csak elrejti a UI‑t. | Használd a `table.AutoFilter = null`‑t a valódi törléshez. | +| **Rossz tábla index** | Feltételezed, hogy az első tábla a megfelelő. | Ellenőrizd a `worksheet.ListObjects.Count` értékét, és használj jelentős neveket (`tbl.Name`). | +| **Hiányzó licenc** | Az értékelő verzió vízjelet helyezhet el. | Regisztráld a licencet korán: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Fájl zárolva** | Az Excel még nyitva tartja a forrásfájlt. | Győződj meg róla, hogy a munkafüzet zárva van az Excelben a szkript futtatása előtt. | + +--- + +## Bónusz: AutoFilter visszaállítása (ha meggondolod) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +A fordított művelet kéznél tartása egy‑állomásos megoldássá teszi az útmutatót mind a **remove autofilter from excel**, mind a **how to delete autofilter** szcenáriókhoz. + +--- + +## Teljes működő példa (másolás‑beillesztés kész) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +A fenti kód **remove autofilter from excel** minden táblára a munkafüzetben, így tiszta kiindulási állapotot biztosít a további feldolgozáshoz. + +--- + +## Összegzés + +Most már mindent tudsz, ami a **remove autofilter from excel** C#‑os megvalósításához szükséges. A Aspose.Cells telepítésétől, a munkafüzet betöltésén, a tábla megtalálásán, a szűrő tényleges törlésén, egészen a tiszta fájl mentéséig – minden lépést a „miért” magyarázatával láttuk el. Most már tudod, hogyan **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel**, és **clear excel table filter** egyetlen újrahasználható kódrészletben. + +Készen állsz a következő kihívásra? Próbáld meg automatizálni a feltételes formázás hozzáadását, vagy fedezd fel, hogyan **add an AutoFilter back** programozottan. Mindkét téma közvetlenül épül a most tanultakon, és még gazdagabbá teszi az Excel automatizálási eszköztáradat. + +Van kérdésed, vagy találtál egy olyan esetet, amit nem fedtünk le? Írj kommentet lent – jó kódolást! + +--- + +![Screenshot showing an Excel sheet without any filter dropdowns – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/hungarian/net/excel-comment-annotation/_index.md index 366f01372d..122a745c8d 100644 --- a/cells/hungarian/net/excel-comment-annotation/_index.md +++ b/cells/hungarian/net/excel-comment-annotation/_index.md @@ -25,7 +25,7 @@ Képzelje el, hogy az Excel celláit nemcsak szöveggel, hanem képekkel is ell ## Megjegyzések hozzáadása cellákhoz vagy alakzatokhoz Excelben -Ha kezdő vagy, és szeretnél belevágni a jegyzetelésbe, a [Megjegyzések hozzáadása cellákhoz vagy alakzatokhoz Excelben](./add-comments-to-cells-or-shapes-excel/) Ez az oktatóanyag tökéletes számodra. Mindent lefed a megjegyzések hozzáadásától kezdve a táblázatok funkcionalitásának bővítéséig. Megtudhatod, hogyan fűzhetsz megjegyzéseket különböző elemekhez – legyenek azok cellák vagy alakzatok –, sőt, bemutatunk néhány bevált gyakorlatot is a folyamat során. Ez az oktatóanyag egy ugródeszka ahhoz, hogy táblázataidat interaktívvá és felhasználóbaráttá tedd! +Ha kezdő vagy, és szeretnél belevágni a jegyzetelésbe, a [Megjegyzések hozzáadása cellákhoz vagy alakzatokhoz Excelben](./add-comments-to-cells-or-shapes-excel/) Ez az oktatóanyag tökéletes számodra. Mindet lefed a megjegyzések hozzáadásától kezdve a táblázatok funkcionalitásának bővítéséig. Megtudhatod, hogyan fűzhetsz megjegyzéseket különböző elemekhez – legyenek azok cellák vagy alakzatok –, sőt, bemutatunk néhány bevált gyakorlatot is a folyamat során. Ez az oktatóanyag egy ugródeszka ahhoz, hogy táblázataidat interaktívvá és felhasználóbaráttá tedd! ## Formázó megjegyzések - Betűtípus, Szín, Igazítás @@ -38,6 +38,8 @@ Tanuld meg, hogyan fűzhetsz hozzá megjegyzéseket képekhez az Excelben az Asp Tanuld meg, hogyan adhatsz megjegyzéseket cellákhoz Excelben az Aspose.Cells for .NET használatával. Lépésről lépésre útmutató kezdőknek az Excel funkcionalitásának bővítéséhez. ### [Formázó megjegyzések - Betűtípus, Szín, Igazítás](./format-comments-font-color-alignment/) Fedezze fel, hogyan formázhatja könnyedén az Excel-megjegyzéseket az Aspose.Cells for .NET segítségével. Testreszabhatja a betűtípust, a méretet és az igazítást a táblázatai fejlesztése érdekében. +### [Excel munkafüzet létrehozása C# – Megjegyzések hozzáadása és kitöltése okos jelölőkkel](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Tanuld meg, hogyan hozhatsz létre Excel munkafüzetet C#-ban, és adhatod hozzá, illetve töltheted ki a megjegyzéseket okos jelölőkkel az Aspose.Cells for .NET‑ben. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/hungarian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..3afec37fd8 --- /dev/null +++ b/cells/hungarian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-21 +description: Excel munkafüzet létrehozása C#-ban, és megtanulni, hogyan adjunk megjegyzést + az Excelhez, a megjegyzést automatikusan kitölteni Smart Markerek segítségével. + Lépésről‑lépésre útmutató fejlesztőknek. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: hu +og_description: Excel munkafüzet létrehozása C#-ban, gyors megjegyzés hozzáadása Excelhez, + majd a megjegyzés kitöltése Smart Markerekkel. Teljes oktatóanyag kóddal. +og_title: Excel munkafüzet létrehozása C#-ban – megjegyzések hozzáadása és kitöltése +tags: +- C# +- Excel automation +- Aspose.Cells +title: Excel munkafüzet létrehozása C#-ban – Megjegyzések hozzáadása és kitöltése + okos jelölőkkel +url: /hu/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Excel Workbook C# – Add and Fill Comments with Smart Markers + +Valaha szükséged volt **create Excel workbook C#**-ra, és azon tűnődtél, hogyan ágyazz be egy megjegyzést, amely automatikusan frissül? Nem vagy egyedül. Sok jelentéskészítési helyzetben egy cellamegjegyzést szeretnél, amely azt mondja *„Created by Alice on 2024‑07‑15”* anélkül, hogy minden alkalommal kézzel kódolnád a nevet vagy a dátumot. + +Ebben az útmutatóban pontosan megmutatjuk, **how to add comment to Excel**-t, majd **how to fill comment**-t az Aspose.Cells okos jelölői segítségével. A végére egy készen álló, futtatható programod lesz, amely létrehozza a munkafüzetet, dinamikus megjegyzést illeszt be, és elmenti a fájlt – mindezt néhány egyszerű lépésben. + +> **What you’ll get:** egy teljes, lefordítható C# konzolalkalmazás, minden sor magyarázata, tippek a gyakori hibákhoz, és ötletek a megoldás bővítéséhez. + +## Előkövetelmények + +- .NET 6.0 SDK vagy újabb (a kód .NET Core és .NET Framework esetén is működik) +- Visual Studio 2022 vagy bármelyik kedvenc IDE +- **Aspose.Cells for .NET** NuGet csomag (`Install-Package Aspose.Cells`) – ez a könyvtár biztosítja a `Workbook`, `Worksheet`, és `SmartMarkerProcessor` osztályokat, amelyeket alább használunk. +- Alapvető ismeretek a C# szintaxisról – ha már írtál `Console.WriteLine`-ot, készen állsz. + +Most, hogy az előkészítés kész, merüljünk bele. + +![Create Excel workbook C# example screenshot](excel-workbook.png "Create Excel workbook C# example") + +## 1. lépés: Új munkafüzet inicializálása – Create Excel Workbook C# Basics + +Először egy tiszta munkafüzet objektumra van szükségünk. Tekintsd a `Workbook`-ot egy üres vászonnak; nélküle nem tudsz cellákat, sorokat vagy megjegyzéseket elhelyezni. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Why this matters:** A `Workbook` automatikusan létrehoz egy alapértelmezett munkalapot, így nem kell `Add`-ot hívnod, hacsak nem szükséges több lap. A `Worksheets[0]` elérése a leggyorsabb módja az adatok feltöltésének. + +## 2. lépés: Okos jelölő megjegyzés beszúrása – How to Add Comment with Tokens + +Ezután egy megjegyzést helyezünk a **B2** cellába, amely Smart Marker tokeneket (`«UserName»` és `«CreatedDate»`) tartalmaz. Ezeket a tokeneket később a valós értékekkel cseréljük le. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Explanation:** +- A `CreateComment()` létrehozza a megjegyzés objektumot, ha még nem létezik; egyébként a meglévőt adja vissza. +- A `Note` tulajdonság tartalmazza a látható szöveget. A helyőrzőket `« »`-be téve azt jelezzük az Aspose.Cells-nek, hogy ezek **Smart Markers** – olyan helyőrzők, amelyeket egy lépésben ki lehet cserélni. + +> **Pro tip:** Ha több soros megjegyzésre van szükséged, használj `\n`-t a karakterláncban, például `"Line1\nLine2"`. + +## 3. lépés: Adatobjektum előkészítése – How to Fill Comment Dynamically + +Az okos jelölőkhöz adatforrásra van szükség. C#-ban a legegyszerűbb mód egy névtelen típus, amely megfelel a helyőrző neveknek. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Why an anonymous type?** +Könnyű, nem igényel külön osztályfájlt, és a tulajdonságneveket (`UserName`, `CreatedDate`) pontosan a token nevekkel egyezteti. Ha erősen típusos modellt szeretnél, egyszerűen hozz létre egy osztályt ugyanazokkal a tulajdonságokkal. + +## 4. lépés: Okos jelölők feldolgozása – How to Fill Comment Using the Data Object + +Most jön a varázslat. A `SmartMarkerProcessor` átvizsgálja a munkafüzetet minden `«…»` tokenre, és kicseréli őket a `markerData` értékeire. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**What’s under the hood?** +A `SmartMarkerProcessor` végigjárja minden cellát, megjegyzést, fejlécet stb., keresve a `«Token»` mintát. Amikor megtalálja, reflexióval beolvassa a megfelelő tulajdonságot a `markerData`-ból, és visszaírja az értéket. Kézi ciklusok nem szükségesek. + +## 5. lépés: Munkafüzet mentése – Fill Excel Comment and Persist the File + +Végül a munkafüzetet leírjuk a lemezre. A megjegyzés most valami ilyesmit mutat: *„Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Result verification:** Nyisd meg a `CommentFilled.xlsx` fájlt Excelben, húzd az egeret a **B2** cellára, és láthatod a megjegyzést a tényleges felhasználónévvel és időbélyeggel. További kódmódosítás nem szükséges a későbbi futtatásokhoz – csak a `markerData` értékeket változtasd meg. + +--- + +## Gyakori változatok és szélhelyzetek + +### Egyedi dátumformátum használata + +Ha a dátumot `yyyy‑MM‑dd` formátumban szeretnéd, módosítsd az adatobjektumot: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Több megjegyzés hozzáadása + +Ismételheted a **Step 2**-t más cellákra is. Minden megjegyzésnek lehet saját tokenkészlete, vagy megoszthatja ugyanazokat, ha az információ általános. + +### Létező munkafüzetekkel dolgozás + +A `new Workbook()` helyett tölts be egy meglévő fájlt: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +A többi lépés változatlan marad – az Okos Jelölők mind új, mind meglévő fájlokon működnek. + +### Null értékek kezelése + +Ha egy token hiányozhat, tedd a tulajdonságot nullable típusba, vagy adj meg egy tartalékértéket: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +A processzor *„Unknown”* szöveget fog beilleszteni, ha a forrás `null`. + +--- + +## Teljes működő példa (másolás-beillesztés kész) + +Az alábbi **teljes program** beilleszthető egy konzolalkalmazás projektbe, és azonnal futtatható (csak cseréld le a `YOUR_DIRECTORY`-t egy valós mappára). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Futtasd a programot, nyisd meg a generált fájlt, és a **B2** cellában láthatod a dinamikus megjegyzést. Egyszerű, ugye? + +--- + +## Gyakran Ismételt Kérdések (FAQ) + +**Q: Működik ez a .NET Framework 4.7-tel?** +A: Teljesen. Az Aspose.Cells támogatja a .NET Framework 4.0+ és a .NET Core/5/6/7 verziókat. Csak hivatkozz a megfelelő DLL-re vagy NuGet csomagra. + +**Q: Használhatom ezt a megközelítést adatvalidációra vagy feltételes formázásra?** +A: Az Okos Jelölők elsősorban értékek beillesztésére szolgálnak cellákba, megjegyzésekbe, fejlécekbe és láblécekbe. Feltételes formázáshoz továbbra is a szokásos `Style` API-kat kell használni. + +**Q: Mi van, ha egy **másik** munkalapra kell megjegyzést hozzáadni?** +A: Szerezd meg a cél munkalapot (`workbook.Worksheets["MySheet"]`), és ismételd meg a **Step 2**-t azon a munkalapon lévő cellákra. + +--- + +## Következő lépések és kapcsolódó témák + +- **How to add comment to Excel** programozottan több cellához (ciklus egy tartományon). +- **Fill Excel comment** adatbázisból származó adatokkal (használj `DataTable`-t adatforrásként az Okos Jelölőkhöz). +- Fedezd fel a **Smart Marker arrays**-t a táblázatok automatikus generálásához. +- Ismerd meg a **Aspose.Cells styling**-et a megjegyzés betűtípusának, színének és méretének formázásához. + +Kísérletezz a kódrészletekkel, cseréld le az adatforrást, és hamarosan mesterévé válik a **how to fill comment** minden Excel automatizálási helyzetben. + +--- + +### Összegzés + +Áttekintettük a teljes folyamatot: **create excel workbook c#**, **add comment to excel**, és **fill excel comment** Okos Jelölőkkel. A megoldás kompakt, újrahasználható, és készen áll a termelésre. + +Próbáld ki, módosítsd a helyőrzőket, és hagyd, hogy a könyvtár végezze a nehéz munkát. Ha bármilyen problémába ütközöl, hagyj egy megjegyzést alább – 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/_index.md b/cells/hungarian/net/excel-custom-number-date-formatting/_index.md index 0f0c2d2ad8..1d28ed6f4f 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,8 @@ 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. +### [Cellák egyéni formátumának beállítása C#-ban – Teljes útmutató dátumok írásához és olvasásához Excelben](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Tanulja meg, hogyan állíthat be egyéni cellaformátumot és kezelheti a dátumokat Excelben az Aspose.Cells for .NET segítségével ebben a részletes útmutatóban. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/hungarian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..590ad20f63 --- /dev/null +++ b/cells/hungarian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,209 @@ +--- +category: general +date: 2026-03-21 +description: Állíts be egyéni cellaformátumot C#-ban, és tanuld meg, hogyan írj dátumot + Excelbe, alkalmazz egyéni dátumformátumot, olvasd be a DateTime értéket Excelből, + valamint hogyan hozhatsz létre gyorsan munkafüzetet és munkalapot. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: hu +og_description: C#‑ban állíts be egyéni cellaformátumot a dátum Excelbe írásához, + alkalmazz egyéni dátumformátumot, olvasd be a DateTime‑ot az Excelből, és könnyedén + hozz létre munkafüzetet és munkalapot. +og_title: Cellák egyéni formátumának beállítása C#‑ban – Dátumok írása és olvasása + Excelben +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cellák egyéni formátumának beállítása C#-ban – Teljes útmutató az Excelben + dátumok írásához és olvasásához +url: /hu/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cellák egyéni formátumának beállítása – Dátumok írása és olvasása Excelben C#-al + +Valaha is szükséged volt **cellák egyéni formátumának beállítására** egy Excel fájlban C#-ból, de nem tudtad, hol kezdjed? Nem vagy egyedül. Sok jelentéskészítő eszközben vagy adat‑exportáló segédprogramban a dátumnak egy adott helyi beállítás szerint kell megjelenni – gondolj japán era dátumokra, pénzügyi naptárakra vagy ISO‑8601 karakterláncokra. + +Ebben az útmutatóban egy **teljes, futtatható példán** keresztül vezetünk, amely megmutatja, hogyan **írj dátumot Excelbe**, **alkalmazz egyéni dátumformátumot**, **olvass DateTime‑t Excelből**, és **hozz létre munkafüzet munkalapot** az Aspose.Cells segítségével. A végére egy önálló programod lesz, amelyet bármely .NET projektbe beilleszthetsz. + +## Amit megtanulsz + +- Hogyan **hozz létre munkafüzet munkalapot** programozott módon. +- A pontos lépések a **dátum Excelbe írásához** helyi beállításon alapuló karakterlánc használatával. +- Hogyan **alkalmazz egyéni dátumformátumot** (beleértve a japán era jelölést). +- Hogyan **olvass DateTime‑t Excelből** vissza egy `DateTime` objektumba. +- Tippek, buktatók és változatok, amelyekkel a Excel dátumok kezelése során találkozhatsz. + +Nem szükséges külső dokumentáció – minden, amire szükséged van, itt található. + +## Előfeltételek + +- .NET 6.0 vagy újabb (a kód .NET Framework 4.7+‑on is működik). +- Aspose.Cells for .NET telepítve NuGet‑en keresztül (`Install-Package Aspose.Cells`). +- Alapvető C# szintaxis ismeret – semmi bonyolult. + +> **Pro tipp:** Ha Visual Studio‑t használsz, engedélyezd a *nullable reference types* (nullázható hivatkozástípusok) funkciót, hogy korán elkapd a finom hibákat. + +## 1. lépés: Munkafüzet és munkalap létrehozása + +Először is: szükséged van egy munkafüzet objektumra, amely az Excel fájlt képviseli, és egy munkalapra, ahol az adatok tárolódnak. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Miért fontos:* A `Workbook` osztály az összes Excel művelet belépési pontja. Memóriában létrehozni azt azt jelenti, hogy a fájlrendszert csak akkor érinted, amikor kifejezetten mented, ami gyors és tesztbarát folyamatot biztosít. + +## 2. lépés: Dátum írása Excelbe + +Ezután egy japán era dátum karakterláncot (`"R02-04-01"`) helyezünk az **A1** cellába. A karakterlánc a Reiwa korszakot (2. év, április 1.) utánozza. + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Mi történik:* A `PutValue` a nyers karakterláncot tárolja. Az Aspose.Cells később megpróbálja azt a cella stílusa alapján értelmezni. Ha kihagyod ezt a lépést, és közvetlenül `DateTime`‑ot írsz, elveszíted a megjeleníteni kívánt era információt. + +## 3. lépés: Beépített dátumszámformátum alkalmazása (ID 14) + +Az Excelnek van egy beépített dátumformátuma ID 14‑el (`mm-dd-yy`). Ennek alkalmazása azt jelzi a motor számára, hogy a cella **dátumot tartalmaz**, nem csak szöveget. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Miért használjuk az ID 14‑et?* Ez az univerzális „rövid dátum” formátum, amely biztosítja, hogy az Excel a tartalmat dátumértékként kezelje, ami minden egyéni formátum helyes működésének előfeltétele. + +## 4. lépés: Egyéni formátum beállítása a japán era megjelenítéséhez + +Most jön a szórakoztató rész: megmondjuk az Excelnek, hogy a dátumot a japán era formátummal jelenítse meg. A `[$-ja-JP]ggge年m月d日` egyéni karakterlánc pontosan ezt teszi. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Magyarázat:* +- `[$-ja-JP]` kényszeríti a helyi beállítást japánra. +- `ggg` az era neve (pl. „R” a Reiwa esetén). +- `e` az era évszáma. +- `年`, `月`, `日` a japán karakterek év, hónap, nap szó szerint. + +Ha más helyi beállításra van szükséged, egyszerűen cseréld le a `ja-JP`‑t a megfelelő kultúrakódra (pl. `en-US`). + +## 5. lépés: A feldolgozott DateTime érték lekérése + +Végül olvassuk ki a **valódi `DateTime`** értéket, amelyet az Excel a cellából értelmezett. Ez bizonyítja, hogy a karakterlánc helyesen lett értelmezve. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Eredmény:* A konzol kiírja a `Parsed DateTime: 2020-04-01` értéket. Bár egy japán era karakterláncot adtunk meg, az Excel belsőleg a gregorián dátumot tárolja, amelyet számításokhoz, összehasonlításokhoz vagy további exportáláshoz használhatsz. + +## 6. lépés: A munkafüzet mentése (opcionális) + +Ha szeretnéd megtekinteni a formázott munkafüzetet Excelben, egyszerűen mentsd le a lemezre. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Nyisd meg a generált **JapaneseEraDate.xlsx** fájlt, és látni fogod, hogy az **A1** cella `R02年4月1日` értéket jeleníti meg (az általunk beállított pontos japán era formátum). + +![cellák egyéni formátumának beállítása példa](image-placeholder.png "Excel cella, amely japán era dátumot mutat – cellák egyéni formátumának beállítása") + +*A fenti alt szöveg tartalmazza a fő kulcsszót, ezzel teljesítve a kép‑SEO követelményt.* + +## Gyakori változatok és szélsőséges esetek + +### Más dátumformátum írása + +Ha inkább ISO‑8601 (`2020-04-01`) formátumot szeretnél egy era karakterlánc helyett, egyszerűen módosítsd a `PutValue` hívást: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Null vagy üres cellákkal való eljárás + +Dátum olvasásakor mindig ellenőrizd, hogy a cella nem üres, hogy elkerüld a `InvalidOperationException` hibát: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Több helyi beállítás támogatása + +Végig iterálhatsz egy kultúrakódok listáján, és dinamikusan alkalmazhatod őket: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Pro tippek és buktatók + +- **Mindig először állíts be egy beépített számformátumot** (`Style.Number`). Enélkül az Excel a cellát egyszerű szövegként kezeli, és az egyéni formátum figyelmen kívül marad. +- **A helyi beállítási kódok nem érzékenyek a kis‑ és nagybetűkre**, de a kanonikus forma (`ja-JP`) használata elkerüli a félreértéseket. +- **A mentés opcionális** a memóriában történő feldolgozáshoz; a munkafüzetet közvetlenül egy webválaszba is streamelheted (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Aspose.Cells licencek**: A ingyenes értékelő verzió vízjelet ad. Éles környezetben győződj meg róla, hogy érvényes licenccel rendelkezel, hogy elkerüld a teljesítménybeli hátrányokat. + +## Összefoglalás + +Bemutattuk, hogyan **állíts be cella egyéni formátumot** C#‑ban a japán era dátumok megjelenítéséhez, hogyan **írj dátumot Excelbe**, **alkalmazz egyéni dátumformátumot**, **olvass DateTime‑t Excelből**, és **hozz létre munkafüzet munkalapot** – mindezt egyetlen, önálló programban. A fő kulcsszó természetesen megjelenik a szövegben, míg a másodlagos kulcsszavak a címsorokba és a szövegbe vannak szőve, ezzel megfelelve mind az SEO, mind az AI‑idézési szabványoknak. + +## Mi a következő lépés? + +- Fedezd fel a **feltételes formázást**, hogy kiemeld a lejárt dátumokat. +- Kombináld ezt a megközelítést **PivotTable‑ekkel** a dinamikus jelentéskészítéshez. +- Próbáld ki **nagy CSV fájlok olvasását** és azok Excelbe konvertálását ugyanazzal a dátumkezelési logikával. + +Nyugodtan kísérletezz különböző helyi beállításokkal, egyéni mintákkal vagy akár időzónákkal. Ha bármilyen problémába ütközöl, hagyj megjegyzést alább – 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-data-export-retrieval/_index.md b/cells/hungarian/net/excel-data-export-retrieval/_index.md index f0b492ee32..c164d66da2 100644 --- a/cells/hungarian/net/excel-data-export-retrieval/_index.md +++ b/cells/hungarian/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Szeretnéd tudni, hogyan kell ezt csinálni? Nézd meg ezt a hasznos útmutatót ### [Adatok lekérése cellákból Excelben](./retrieve-data-from-cells-in-excel/) Tanuld meg, hogyan kérhetsz le adatokat Excel cellákból az Aspose.Cells for .NET használatával ebben a lépésről lépésre haladó oktatóanyagban, amely tökéletes kezdőknek és tapasztalt fejlesztőknek egyaránt. +### [Excel adat táblázat exportálása C#-ban – Teljes útmutató](./export-excel-data-table-in-c-complete-guide/) +Ismerd meg, hogyan exportálj Excel adat táblázatot C#-ban az Aspose.Cells for .NET segítségével, lépésről lépésre útmutató. + +### [Excel adat exportálása C#-ban – Lépésről lépésre útmutató](./how-to-export-excel-data-in-c-step-by-step-guide/) +Tanuld meg, hogyan exportálj Excel adatokat C#-ban az Aspose.Cells for .NET segítségével, részletes lépésről lépésre útmutató. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/hungarian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/hungarian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..ec7a04ef22 --- /dev/null +++ b/cells/hungarian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-03-21 +description: Exportálja az Excel adat táblázatot DataTable‑be fejlécekkel, korlátozza + a tizedesjegyek számát, és exportálja az első 100 sort az Aspose.Cells használatával. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: hu +og_description: Tanulja meg, hogyan exportálja az Excel adat táblázatot DataTable-be, + megtartva a fejléceket, korlátozva a tizedesjegyek számát, és lekérve az első 100 + sort C#-ban. +og_title: Excel adat táblázat exportálása C#-ban – Lépésről lépésre útmutató +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Excel adat táblázat exportálása C#-ban – Teljes útmutató +url: /hu/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel Adattábla Exportálása – Teljes C# Bemutató + +Szükséged van **excel adat tábla exportálására** egy munkafüzetből egy .NET `DataTable`-be? Jó helyen vagy—ez az útmutató pontosan megmutatja, hogyan teheted meg, hogyan tartsd meg az oszlopfejléceket, hogyan korlátozd a tizedesjegyek számát, és hogyan olvasd be csak az első 100 sort. + +Ha már valaha is a táblázatot bámultad, és azon tűnődtél, hogy „Hogyan juttassam be ezt az alkalmazásomba anélkül, hogy elveszíteném a formázást?”, nem vagy egyedül. A következő néhány percben ezt a „mi lenne, ha” gondolatot konkrét, másol‑beilleszthető megoldássá alakítjuk, amely az Aspose.Cells könyvtárral működik, egy népszerű Excel‑kezelő könyvtárral. + +## Mit fogsz megtanulni + +- Hogyan **exportálj excel-t datatable-be** a `ExportDataTable` metódus használatával. +- Hogyan tartsd meg az eredeti oszlopneveket (`export excel with headers`). +- Hogyan **korlátozd a tizedesjegyek számát excel** értékeknél az `ExportTableOptions` konfigurálásával. +- Hogyan szerezd meg biztonságosan csak az első 100 sort (`export first 100 rows`). + +Nincsenek külső szkriptek, nincsenek varázslatos karakterláncok—csak egyszerű C#, amelyet bármely .NET projektbe beilleszthetsz. + +## Előfeltételek + +| Követelmény | Miért fontos | +|-------------|---------------| +| .NET 6 vagy újabb (vagy .NET Framework 4.7+) | Az Aspose.Cells mindkettőt támogatja, de az újabb futtatókörnyezetek aszinkron API-kat biztosítanak. | +| Aspose.Cells for .NET NuGet csomag | Biztosítja a `Workbook`, `ExportTableOptions` és a `ExportDataTable` segédfüggvényt. | +| Egy minta Excel fájl (pl. `Numbers.xlsx`) | Az exportálandó adatok forrása. | +| Alap C# ismeretek | Követni fogod a kódrészleteket, de semmi különleges tudás nem szükséges. | + +Ha ezek bármelyike ismeretlennek tűnik, szerezd be a NuGet csomagot a `dotnet add package Aspose.Cells` paranccsal, és hozz létre egy kis Excel fájlt néhány számmal—ez lesz a tesztadatod. + +![excel adat tábla exportálás példa](excel-data-table.png "Képernyőkép egy Excel munkalapról, amely DataTable-be lesz exportálva") + +## 1. lépés: A munkafüzet betöltése (export excel data table) + +Az első dolog, amire szükséged van, egy `Workbook` példány, amely a te Excel fájlodra mutat. Olyan, mintha egy könyvet nyitnál meg, mielőtt bármely fejezetet olvasnál. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Miért fontos:** A munkafüzet betöltése hozzáférést biztosít a munkalapokhoz, cellákhoz és stílusokhoz. Ha a fájl útvonala hibás, az Aspose `FileNotFoundException`-t dob, ezért ellenőrizd a helyet. + +## 2. lépés: Exportálási beállítások konfigurálása – limit decimal places excel + +Alapértelmezés szerint az Aspose minden numerikus értéket teljes pontossággal exportál. Gyakran csak néhány jelentős számjegyre van szükség, különösen, ha az adatot UI‑rácsba vagy egy kerekített számokat elváró API‑ba szeretnéd betáplálni. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Pro tipp:** Ha más kerekítési stratégiára van szükséged (pl. mindig felfelé kerekítés), az export után post‑processzálhatod a `DataTable`‑t. A `SignificantDigits` beállítás a leggyorsabb módja a **limit decimal places excel** elérésének anélkül, hogy extra ciklusokat írnál. + +## 3. lépés: A kívánt tartomány exportálása (export first 100 rows) + +Most megmondjuk az Aspose‑nak, mely cellatartományt szeretnénk egy `DataTable`‑be átemelni. Ebben a bemutatóban az első 100 sort és az első 10 oszlopot vesszük, de a számokat a saját szituációdhoz igazíthatod. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Edge case:** Ha a munkalap kevesebb, mint 100 sort tartalmaz, az Aspose egyszerűen exportálja, ami létezik, hibát nem dobva. Azonban érdemes lehet védekezni egy váratlanul kis tartomány ellen: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## 4. lépés: Az eredmény ellenőrzése – Gyors konzol kiíratás + +Jó látni az adatokat a hibakeresőben, de néhány sor kiírása a konzolra megerősíti, hogy a **export excel to datatable** valóban működött, és a tizedesjegyek levágásra kerültek. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Várható kimenet + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Vedd észre, hogy a numerikus oszlopok most már csak négy jelentős számjegyet mutatnak, ami megfelel a korábban alkalmazott `SignificantDigits = 4` beállításnak. + +## 5. lépés: Összefoglalás – Teljes, futtatható példa + +Az alábbi teljes programot másol‑beillesztheted egy konzolalkalmazásba. Tartalmaz hibakezelést, a opcionális sor‑szám védelmet, valamint egy segédmetódust a kiíratáshoz. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Futtasd a programot, és látni fogod a munkalap első 100 sorát, szépen kerekítve, az oszlopnevekkel változatlanul. + +## Gyakori kérdések és buktatók + +| Kérdés | Válasz | +|----------|--------| +| **Mi van, ha a munkalap egyesített cellákat tartalmaz?** | `ExportDataTable` egyesített cellákat laposít, a bal‑felső cella értékét veszi. Ha egyedi kezelést igényelsz, először bontsd fel az egyesítést, vagy olvasd a nyers `Cell` objektumokat. | +| **Exportálhatok egy `DataSet`‑be helyette?** | Igen—használd a `ExportDataTable`-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/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/hungarian/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..5159677f57 --- /dev/null +++ b/cells/hungarian/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Hogyan exportáljunk Excel adatokat oszlopnevekkel, megőrizve a számformátumot, + és olvassunk be konkrét sorokat az Aspose.Cells C# használatával. Tanulja meg, hogyan + olvassa be az Excel munkalapot, és exportálja hatékonyan a kiválasztott sorokat. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: hu +og_description: Hogyan exportáljunk Excel adatokat oszlopnevekkel, megőrizve a számformátumot, + és olvassunk specifikus sorokat az Aspose.Cells segítségével. Teljes, futtatható + példa C# fejlesztőknek. +og_title: Excel adatok exportálása C#-ban – Teljes programozási útmutató +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Excel adatok exportálása C#‑ban – Lépésről lépésre útmutató +url: /hu/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan exportáljunk Excel adatokat C#-ban – Teljes programozási útmutató + +Gondolkodtál már azon, **hogyan exportálj excel** adatokat anélkül, hogy elveszítenéd az eredeti formázást? Lehet, hogy már próbáltál gyors másolás‑beillesztést, és a dátumok „44728” formában jelentek meg, vagy hiányoznak az oszlopfejlécek. Ez frusztráló, igaz? Ebben az útmutatóban egy tiszta, vég‑től‑végig megoldást mutatunk be, amellyel beolvashatsz egy Excel munkalapot, megőrizheted a számformátumot, exportálhatsz oszlopnevekkel, és még csak a szükséges sorokat is kiválaszthatod. + +Az Aspose.Cells könyvtárat fogjuk használni, mert finomhangolt vezérlést biztosít az exportálási beállítások felett. A útmutató végére egy újrahasználható kódrészletet kapsz, amely bármely .NET projektbe beilleszthető, és megérted, miért fontos minden egyes opció. Külső dokumentációra nincs szükség – minden, amire szükséged van, itt található. + +--- + +## Amit megtanulsz + +- **Excel munkalap beolvasása** memóriába beolvasása az Aspose.Cells segítségével. +- **Specifikus sorok exportálása** (pl. 0‑49 sorok) az oszlopnevek megtartása mellett. +- **Számformátum megőrzése**, hogy a pénznemek, dátumok és százalékok változatlanok maradjanak. +- Hogyan **exportálj oszlopnevekkel**, és ha szükséges, cellakommentárokat is belefoglalj. +- Teljes, azonnal futtatható C# példa plusz tippek a gyakori buktatókhoz. + +### Előfeltételek + +- .NET 6.0 vagy újabb (a kód .NET Framework 4.6+ verzióval is működik). +- Aspose.Cells for .NET telepítve NuGet-en keresztül (`Install-Package Aspose.Cells`). +- Egy Excel fájl (`input.xlsx`) egy olyan mappában, amelyre hivatkozhatsz. + +> **Pro tipp:** Ha CI pipeline-on dolgozol, fontold meg a NuGet csomag privát tárolóból való lehúzását, hogy elkerüld a licencelési meglepetéseket. + +--- + +## 1. lépés – Aspose.Cells telepítése és névterek hozzáadása + +Először győződj meg róla, hogy az Aspose.Cells csomag a projektedben van. Nyisd meg a Package Manager Console-t, és futtasd: + +```powershell +Install-Package Aspose.Cells +``` + +Ezután add hozzá a szükséges `using` direktívákat a C# fájlod tetejéhez: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Ezek az importok hozzáférést biztosítanak a `Workbook`, `Worksheet`, `ExportTableOptions` és `DataTable` osztályokhoz – a **Excel munkalap beolvasása** és az adatok exportálásához szükséges alapdarabokhoz. + +--- + +## 2. lépés – A munkafüzet betöltése (Excel fájl beolvasása) + +Most már ténylegesen **beolvassuk az Excel munkalapot**. A `Workbook` konstruktor a fájl elérési útját várja, és az Aspose.Cells kezeli mind a `.xlsx`, mind a régebbi `.xls` formátumokat. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Miért fontos:** A munkafüzet egyszeri betöltése és ugyanannak a `Worksheet` objektumnak a többszöri újrahasználata sokkal hatékonyabb, mint a fájl ismételt megnyitása, különösen nagy táblázatok esetén. + +--- + +## 3. lépés – Exportálási beállítások konfigurálása (Számformátum megőrzése és oszlopnevek) + +Itt mondjuk meg az Aspose.Cells‑nek, *hogyan* exportáljon. Az `ExportTableOptions` osztály lehetővé teszi a kimenet finomhangolását. Három jelzőt fogunk engedélyezni: + +1. `ExportAsString = true` – minden cellát karakterlánccá kényszerít, ami garantálja, hogy a számok megőrzik a vizuális megjelenésüket. +2. `IncludeCellComments = true` – másolja a cellákhoz csatolt megjegyzéseket (hasznos dokumentációhoz). +3. `PreserveNumberFormat = true` – megtartja az eredeti számformátumot (pénznem szimbólumok, dátumformátumok stb.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Különleges eset:** Ha `ExportAsString`‑t `false`‑ra állítod, de mégis meg akarod tartani a számformátumokat, nyers numerikus értékekkel (pl. 44728 egy dátum esetén) találkozhatsz. Mindkét jelző bekapcsolása elkerüli ezt a meglepetést. + +--- + +## 4. lépés – Az első munkalap lekérése (Excel munkalap beolvasása) + +A legtöbb egyszerű fájlban a szükséges adatok az első lapon vannak, ezért index alapján fogjuk lekérni. Ha másik lapra van szükséged, egyszerűen cseréld le a `0`‑t a megfelelő nulláról induló indexre, vagy használd a `workbook.Worksheets["SheetName"]` szintaxist. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Miért hasznos:** A munkalap objektum közvetlen elérése teljes kontrollt ad a `Cells` gyűjtemény felett, ami elengedhetetlen a későbbi **specifikus sorok exportálásához**. + +--- + +## 5. lépés – Cellatartomány exportálása (Specifikus sorok exportálása) + +Most jön a tutorial szíve: a 0‑49 sorok és 0‑4 oszlopok (azaz az első 50 sor és az első öt oszlop) exportálása egy `DataTable`‑be. Emellett kérni fogjuk az Aspose.Cells‑t, hogy a `DataTable` első sorában szerepeljenek az oszlopnevek. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Mit csinál ez + +- **`startRow: 0`** – a lap tetejéről indul. +- **`totalRows: 50`** – az első 50 sort veszi (azaz **specifikus sorok exportálása**). +- **`totalColumns: 5`** – az exportot az első öt oszlopra korlátozza. +- **`includeColumnNames: true`** – biztosítja, hogy a `DataTable` oszlopfejlécei megegyezzenek az Excel fejléc sorával, ezzel teljesítve a **oszlopnevekkel exportálás** követelményt. +- **`exportOptions`** – a 3. lépésben beállított opciókat alkalmazza, így a numerikus értékek “$1,234.56” formában maradnak, nem “1234.56”. + +--- + +## 6. lépés – Az export ellenőrzése (Hogyan néz ki az eredmény) + +Nyomtassuk ki az első néhány sort a konzolra, hogy lásd, a formázás megmaradt. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Várható kimenet (példa):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Vedd észre, hogy a dátumok `MM/dd/yyyy` formátumban jelennek meg, és a pénznem megtartja a `$` szimbólumot – köszönhetően a **számformátum megőrzésének**. + +--- + +## Gyakori buktatók és hogyan kerüld el őket + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| A dátumok nagy számokká alakulnak | `ExportAsString` `false`‑ra van állítva | `ExportAsString = true` megtartása vagy a cellák kézi konvertálása | +| Hiányzó oszlopfejlécek | `includeColumnNames` `false`‑ra van állítva | `true`‑ra állítás, ha **oszlopnevekkel exportálásra** van szükség | +| A kommentek eltűnnek | `IncludeCellComments` nincs engedélyezve | `IncludeCellComments` bekapcsolása az `ExportTableOptions`‑ban | +| A rossz munkalap exportálása | A `Worksheets[0]` használata több lapos fájlon | Add meg a lap nevét: `workbook.Worksheets["Data"]` | +| Tartományon kívüli kivétel | `totalRows` meghaladja a tényleges sorok számát | `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` használata | + +--- + +## Bónusz: Az egész lap exportálása a formátumok megőrzése mellett + +Ha később úgy döntesz, hogy az egész lapra szükséged van, egyszerűen cseréld le a `totalRows` és `totalColumns` értékeket a lap maximális méreteire: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Most már van egy **Excel munkalap beolvasása** rutinod, amely bármilyen méretű lapra működik, miközben továbbra is **a számformátum megőrzése** és **oszlopnevekkel exportálás** biztosított. + +--- + +## Teljes működő példa (másolás‑beillesztés kész) + +Az alábbiakban a teljes program található, amelyet beilleszthetsz egy konzolos alkalmazásba. Tartalmazza az összes lépést, importot és egy egyszerű ellenőrző kiírást. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Mentsd el `Program.cs` néven, futtasd a `dotnet run` parancsot, és a terminálodban meg kell jelennie a formázott előnézetnek. + +--- + +## Összegzés + +Most végigvettük, **hogyan exportálj excel** adatokat az Aspose.Cells segítségével, lefedve mindent a munkafüzet betöltésétől a számformátum megőrzésig, az oszlopnevekkel történő exportálásig, és a specifikus sorokra való korlátozásig. A kód önálló, teljesen futtatható, és gyakorlati védelmeket tartalmaz a leggyakoribb különleges esetekhez. + +Készen állsz a következő kihívásra? Próbáld meg közvetlenül CSV‑be exportálni, miközben megtartod az eredeti számformátumot, vagy küldd a `DataTable`‑t egy Entity Framework Core kontextusba tömeges adatbázis‑beillesztéshez. Mindkét forgatókönyv az itt bemutatott alapokra épül. + +Ha hasznosnak találtad ezt az útmutató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/excel-workbook/_index.md b/cells/hungarian/net/excel-workbook/_index.md index 05ae7396f5..7eddaa497e 100644 --- a/cells/hungarian/net/excel-workbook/_index.md +++ b/cells/hungarian/net/excel-workbook/_index.md @@ -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. | +| [Excel-munkafüzet létrehozása stílusos táblázattal – lépésről lépésre útmutató](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Tanulja meg, hogyan hozhat létre Excel-munkafüzetet stílusos táblázattal az Aspose.Cells for .NET segítségével lépésről lépésre. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/hungarian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..b5238d2c1f --- /dev/null +++ b/cells/hungarian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,274 @@ +--- +category: general +date: 2026-03-21 +description: Excel munkafüzet létrehozása, adat táblázat importálása Excelbe oszlopszín + beállításával, adatok exportálása Excelbe, valamint az Excel cellák dátumformátumának + beállítása percekben. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: hu +og_description: Gyorsan készítsen Excel munkafüzetet. Tanulja meg, hogyan importáljon + adat táblát Excelbe, állítson be oszlopsz stilust, exportáljon adatot Excelbe, és + formázza az Excel cellák dátumát egy útmutatóban. +og_title: Excel munkafüzet létrehozása – Teljes útmutató a formázáshoz és exportáláshoz +tags: +- C# +- Aspose.Cells +- Excel automation +title: Excel munkafüzet létrehozása stílusos táblázattal – Lépésről lépésre útmutató +url: /hu/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel munkafüzet létrehozása – Teljes programozási útmutató + +Valaha is szükséged volt **create excel workbook**-ra, ami kifogástalanul néz ki közvetlenül a kódból? Lehet, hogy adatokat húzol ki egy adatbázisból, és szeretnéd, hogy a dátumok megfelelő formátumban jelenjenek meg anélkül, hogy később az Excelben kellene módosítani. Ez egy gyakori fájdalomforrás – különösen, amikor a kimenet egy ügyfél postafiókjába kerül, és elvárják, hogy minden használatra kész legyen. + +Ebben az útmutatóban egyetlen, önálló megoldáson keresztül vezetünk végig, amely **imports datatable to excel**, alkalmaz egy **set column style**-t, és végül **export data to excel**-t egy szépen formázott fájlként. Pontosan meg fogod látni, hogyan **format excel cells date**, hogy a táblázat egy professzionális jelentéshez hasonlóan olvasható legyen, és a végén egy teljes, futtatható példát kapsz. Nincs hiányzó rész, nincs „lásd a dokumentációt” rövidítés – csak tiszta kód, amit ma beilleszthetsz a projektedbe. + +--- + +## Mit fogsz megtanulni + +- Hogyan **create excel workbook**-ot készítsünk az Aspose.Cells könyvtár (vagy bármely kompatibilis API) használatával. +- A leggyorsabb módja a **import datatable to excel**-re manuális cella‑cella ciklusok nélkül. +- Technikák a **set column style** alkalmazására, beleértve egy dátumformátum beállítását egy adott oszlopra. +- Hogyan **export data to excel** egyetlen `Save` hívással. +- Gyakori buktatók, amikor **format excel cells date**-t próbálsz, és hogyan kerüld el őket. + +### Előfeltételek + +- .NET 6+ (vagy .NET Framework 4.6+). +- Aspose.Cells for .NET telepítve (`Install-Package Aspose.Cells`). +- Egy `DataTable`, amely készen áll az exportálásra – az adatforrásod lehet SQL, CSV, vagy bármi, ami `DataTable`-ré alakítható. + +Ha már magabiztos vagy a C#-ban, és megvannak ezek az elemek, akkor már indulhatsz. Ellenkező esetben a fenti „Előfeltételek” szakasz egy gyors ellenőrzőlistát ad. + +--- + +## 1. lépés – Excel munkafüzet példány létrehozása + +Az első dolog, amit megteszel, amikor programozott módon **create excel workbook**-ot szeretnél, az a munkafüzet objektum példányosítása. Gondolj rá úgy, mint egy üres jegyzet megnyitására, ahová később az adataidat írod. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Miért fontos ez:** +> `Workbook` osztály az Aspose.Cells minden műveletének belépési pontja. Előre létrehozni egy tiszta vásznat ad, és később betölthetsz egy meglévő fájlt, ha adatot szeretnél hozzáfűzni ahelyett, hogy a semmiből kezdenél. + +--- + +## 2. lépés – A DataTable előkészítése az importáláshoz + +Mielőtt **import datatable to excel**-t végrehajtanánk, szükségünk van egy `DataTable`-ra. Valós projektekben ez gyakran a `SqlDataAdapter.Fill` vagy a `DataTable.Load` eredménye. A tisztaság kedvéért egy módszert fogunk felállítani, amely egy kész táblát ad vissza. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tip:** Ha a dátumaid karakterláncként vannak tárolva, először konvertáld őket `DateTime`-ra – különben a **format excel cells date** lépés nem fog a várt módon működni. + +--- + +## 3. lépés – Stílusok definiálása minden oszlophoz (Set Column Style) + +Most jön az a rész, ahol **set column style**-t alkalmazunk. Létrehozunk egy `Style` objektumokból álló tömböt – egyet minden oszlophoz. Az első oszlop egy beépített dátumformátumot kap (code 14), míg a többi az általános formátumot (code 0) használja. + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Miért használjunk style objektumokat?** +> Egy stílus egyszeri alkalmazása és újrahasználata sokkal hatékonyabb, mint minden egyes cellára külön beállítani a formátumot. Emellett garantálja, hogy az egész oszlop ugyanazt a **format excel cells date** szabályt kövesse, ami elengedhetetlen a konzisztencia érdekében, amikor a fájlt különböző nyelvi beállításokkal nyitják meg. + +--- + +## 4. lépés – A DataTable importálása stílusokkal a munkalapra + +Miután a munkafüzet készen áll és a stílusok definiálva vannak, most **import datatable to excel**-t hajtunk végre. Az `ImportDataTable` metódus végzi a nehéz munkát: beírja az oszlopfejléceket, a sorokat, és alkalmazza a megadott stílusokat. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Mi történik a háttérben?** +> - `true` azt mondja az Aspose.Cells-nek, hogy az oszlopneveket is vegye fel az első sorba. +> - `0, 0` a kezdő sor- és oszlopindexek (bal‑felső sarok). +> - `columnStyles` minden oszlopot a felkészített stílussal párosít, biztosítva, hogy a **format excel cells date** szabály a dátumoszlopra legyen alkalmazva. + +--- + +## 5. lépés – A munkafüzet mentése (exportálása) fizikai fájlba + +Végül a **export data to excel**-t úgy hajtjuk végre, hogy a munkafüzetet lemezre mentjük. Az útvonalat bármilyen mappára módosíthatod, vagy akár közvetlenül egy HTTP válaszba streamelheted a fájlt egy web API-hoz. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tipp:** Használd a `workbook.Save(Stream, SaveFormat.Xlsx)`-t, amikor a fájlt hálózaton keresztül kell elküldeni lemezre írás nélkül. + +--- + +## Teljes működő példa (Minden lépés egyben) + +Az alábbiakban a teljes, futtatható program látható. Másold be egy konzolos alkalmazásba, állítsd be a kimeneti útvonalat, és néhány másodperc alatt egy szépen formázott Excel fájlod lesz. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Várható kimenet:** +Amikor megnyitod a `StyledTable.xlsx`-t, az A oszlop dátumokat mutat, például `03/19/2026` (a helyi beállításoktól függően), míg a B és C oszlopok a termékneveket és mennyiségeket egyszerű szöveg/szám formában jelenítik meg. Nincs szükség további formázási lépésekre – a **create excel workbook** folyamat befejeződött. + +--- + +## Gyakran Ismételt Kérdések és Szélsőséges Esetek + +### 1️⃣ Mi van, ha a DataTable-om több mint három oszlopot tartalmaz? + +Adj hozzá több `Style` objektumot a `columnStyles` tömbhöz, és állítsd be a `Number` tulajdonságot minden olyan oszlopnál, amelynek speciális formátumra van szüksége (pl. pénznem, százalék). Az `ImportDataTable` metódus pozíció szerint párosítja a stílusokat. + +### 2️⃣ Alkalmazhatok egyedi dátumformátumot a beépített 14 helyett? + +Természetesen. Cseréld le a `columnStyles[i].Number = 14;`-t a következőre: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Hogyan **export data to excel**-t hajthatok végre egy web API-ban anélkül, hogy lemezre írnám? + +Használj egy `MemoryStream`-et: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Mi van, ha a felhasználó helyi beállítása más dátumelválasztót vár? + +A beépített dátumformátum (ID 14) figyelembe veszi a munkafüzet nyelvi beállításait. Ha egy rögzített formátumra van szükséged a nyelvi beállítástól függetlenül, használd a `Custom` tulajdonságot, ahogyan fent is láttad. + +### 5️⃣ Működik ez .NET Core-dal? + +Igen – az Aspose.Cells támogatja a .NET Standard 2.0‑t és későbbi verziókat, így ugyanaz a kód fut .NET 6, .NET 7 vagy bármely kompatibilis futtatókörnyezet alatt. + +--- + +## Legjobb Gyakorlatok (Pro tippek) + +- **Stílusok újrahasználata**: Stílus létrehozása oszloponként olcsó, de az azonos oszlopoknál ugyanazt a stílusobjektumot újrahasználva memória takarítható meg. +- **Kerüld a cella‑cella ciklusokat**: Az `ImportDataTable` erősen optimalizált; a manuális ciklusok lassabbak és hibára hajlamosabbak. +- **Állítsd be a munkafüzet kultúráját korán**, ha konzisztens szám/dátum elválasztókra van szükség a környezetek között: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Ellenőrizd a DataTable-t** importálás előtt – a null dátumok kivételt dobhatnak, amikor a dátumstílus alkalmazásra kerül. +- **Kapcsold be a számításokat** ha importálás után képleteket adsz hozzá: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Összegzés + +Most már egy teljes, vég‑től‑végig recepttel rendelkezel a **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, és **format excel cells date** feladatok elvégzéséhez – mindezt egy tucat C# sor alatt. A megközelítés gyors, megbízható, és a formázási kérdéseket a kódban tartja, így a végső táblázat már a felhasználók számára készen áll, amint megnyitják. + +Ready for the next challenge? Try adding conditional formatting, inserting charts, or converting the + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/hungarian/net/row-and-column-management/_index.md index c584ed1b96..4edbe9ad43 100644 --- a/cells/hungarian/net/row-and-column-management/_index.md +++ b/cells/hungarian/net/row-and-column-management/_index.md @@ -66,6 +66,8 @@ Tanuld meg, hogyan jelenítheted meg a sorokat és oszlopokat az Excelben az Asp Ismerje meg, hogyan törölhet oszlopokat egy Excel-fájlban az Aspose.Cells for .NET használatával. Kövesse részletes, lépésről lépésre szóló útmutatónkat az Excel-fájlok módosításának egyszerűsítéséhez. ### [Sor törlése az Aspose.Cells .NET-ben](./delete-row-aspose-cells/) Tanuld meg, hogyan törölhetsz egy sort Excelben az Aspose.Cells for .NET segítségével. Ez a lépésenkénti útmutató ismerteti az előfeltételeket, a kódimportálást és a zökkenőmentes adatkezelés részletes bemutatását. +### [Excel-fájl betöltése C# – Sorok törlése és adott sorok eltávolítása](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Tanulja meg, hogyan törölhet sorokat és eltávolíthat konkrét sorokat egy Excel-fájl betöltése után C#-ban az Aspose.Cells segítségével. ### [Több sor törlése az Aspose.Cells .NET-ben](./delete-multiple-rows-aspose-cells/) Tanuld meg, hogyan törölhetsz több sort Excelben az Aspose.Cells for .NET segítségével. Ez a részletes, lépésről lépésre haladó útmutató tartalmazza az előfeltételeket, a kódolási példákat és a fejlesztőknek szóló GYIK-et. ### [Oszlop beszúrása az Aspose.Cells .NET-be](./insert-column-aspose-cells/) diff --git a/cells/hungarian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/hungarian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..dad2409773 --- /dev/null +++ b/cells/hungarian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-21 +description: Excel fájl betöltése C#-ban és adat sorok eltávolítása az Aspose.Cells + segítségével. Tanulja meg, hogyan törölhet sorokat, hogyan távolíthat el konkrét + sorokat, és percek alatt sajátítsa el a C# Excel sorok törlését. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: hu +og_description: Excel fájl betöltése C#‑ban és sorok gyors törlése, meghatározott + sorok eltávolítása, valamint C# Excel sor törlés kezelése az Aspose.Cells segítségével. + Teljes lépésről‑lépésre útmutató. +og_title: Excel-fájl betöltése C# – Sorok törlése és meghatározott sorok eltávolítása +tags: +- C# +- Excel +- Aspose.Cells +title: Excel fájl betöltése C# – Sorok törlése és meghatározott sorok eltávolítása +url: /hu/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel fájl betöltése C# – Sorok törlése és adott sorok eltávolítása + +Valaha szükséged volt **load Excel file C#**-ra, majd eltávolítani a felesleges sorokat? Lehet, hogy egy adat dumpot takarítasz ki, vagy egy sablonod van, ahol bizonyos soroknak el kell tűnniük, mielőtt a munkafüzetet az ügyfélnek küldenéd. Bármelyik esetben is, a probléma ugyanaz: van egy `.xlsx` fájl a lemezen, meg akarod nyitni .NET-ben, és **sorok törlése** anélkül, hogy bármilyen rejtett táblát vagy listaobjektumot tönkretennél. + +A lényeg, hogy az Aspose.Cells ezt gyerekjátékká teszi. Ebben az útmutatóban egy teljes, azonnal futtatható példát láthatsz, amely pontosan bemutatja, hogyan kell **sorok törlése**, hogyan **adott sorok eltávolítása**, és miért lehet fontos a **c# excel row deletion**. A végére egy tiszta `output.xlsx` fájlt kapsz, amely csak a kívánt sorokat tartalmazza. + +## Mit fed le ez az útmutató + +- Excel munkafüzet betöltése lemezről az Aspose.Cells használatával. +- Sorok tartományának törlése (pl. 5‑10. sorok) a ListObject fejlécek figyelembevételével. +- A módosított munkafüzet mentése vissza a fájlrendszerbe. +- Gyakori buktatók, például a táblán belüli sorok véletlen törlése, és tippek a kezelésükhöz. +- Teljes, futtatható kódminta, amelyet ma beilleszthetsz egy konzolos alkalmazásba. + +> **Prerequisites** +> • .NET 6+ (vagy .NET Framework 4.6+). +> • Aspose.Cells for .NET telepítve NuGet-en keresztül (`Install-Package Aspose.Cells`). +> • Alapvető ismeretek C#-ról és az Excel fogalmakról (munkalapok, cellák, táblák). + +Ha azon gondolkodsz, **miért kellene az Aspose.Cells-t használni** a `Microsoft.Office.Interop.Excel` helyett, a válasz a sebesség, a COM-igény hiánya, és az a lehetőség, hogy szervereken Office telepítése nélkül fusson. Ráadásul az API egyszerű a sor‑törlési feladatokhoz. + +--- + +## 1. lépés: Excel munkafüzet betöltése C#‑ban + +Mielőtt bármit törölnél, be kell tölteni a munkafüzetet a memóriába. A `Workbook` osztály képviseli az egész Excel fájlt. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Miért fontos:** +A fájl betöltése egy objektumgráfot hoz létre, amely tükrözi az Excel felépítését – munkalapok, cellák, táblák stb. A `ws` hivatkozás megtartásával közvetlenül manipulálhatod a sorokat, anélkül, hogy fájlzárolás vagy COM‑interop problémákba ütköznél. + +--- + +## 2. lépés: Csak adatot tartalmazó sorok törlése + +Most, hogy a munkafüzet a memóriában van, törölheted a sorokat. A `Cells.DeleteRows(startRow, totalRows)` metódus egy folytonos blokkot távolít el. Példánkban a 5‑10. sorokat szüntetjük meg. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Hogyan működik:** +- A `startRow` nullától indexelt, így az `5` valójában az Excel 6. sorára mutat. Ennek megfelelően állítsd be. +- Ha a munkalap tartalmaz egy **ListObject**‑et (Excel tábla), amelynek fejléce a 4. sorban van, az Aspose.Cells megvédi a fejléct, és csak az alatta lévő adat sorokat törli. Ez a beépített védelem megakadályozza a strukturált táblák megsérülését – gyakori edge case, amikor **adat sorok eltávolítása** történik. + +> **Pro tip:** Ha nem folytonos sorokat kell törölni (pl. 3., 7., 12. sorok), iterálj egy fordított sorindex-gyűjteményen, és minden egyes sorra hívd a `DeleteRows(rowIndex, 1)`‑t. A lentről felfelé történő törlés megőrzi a maradék sorok eredeti indexeit. + +--- + +## 3. lépés: Módosított munkafüzet mentése + +Miután a nem kívánt sorok eltűntek, egyszerűen írd vissza a munkafüzetet a lemezre. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +A `Save` metódus automatikusan a kiterjesztésből (`.xlsx` ebben az esetben) határozza meg a fájlformátumot. Ha más formátumra van szükséged – CSV, PDF stb. – csak módosítsd a kiterjesztést, vagy add meg a `SaveFormat` enumot. + +### Várt eredmény + +Nyisd meg az `output.xlsx` fájlt Excelben, és láthatod, hogy a 5‑14. sorok (az eredeti 5‑10. sorok) eltűntek. Minden egyéb adat felfelé tolódik, és a törölt sorokra hivatkozó képletek automatikusan frissülnek az Aspose.Cells által. + +--- + +## Gyakran Ismételt Kérdések (FAQ) + +### Hogyan töröljek sorokat feltétel alapján (pl. minden sor, ahol az A oszlop üres)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +A ciklus visszafelé fut, hogy elkerülje az indexeltolódást. Ez a minta válaszol a szélesebb **c# excel row deletion** kérdésre, amikor feltételes logikára van szükség. + +### Mi van, ha a munkalap több ListObject‑et tartalmaz? + +Az Aspose.Cells minden ListObject‑et önállóan kezel. Ha bármelyik tábla fejléce érintett lenne a törlési tartományban, az API `InvalidOperationException`‑t dob. Ennek megkerüléséhez vagy módosítsd a tartományt, vagy ideiglenesen töröld a ListObject `ShowTableStyleFirstColumn` tulajdonságát, hajtsd végre a törlést, majd állítsd vissza. + +### Törölhetek sorokat a teljes munkafüzet betöltése nélkül? + +Igen – az Aspose.Cells kínál egy **streaming API**‑t (`Workbook.LoadOptions`), amely darabokban olvassa be az adatokat. Azonban a sorok törlése alapvetően a munkalap szerkezetét igényli, így a céllapot még mindig be kell tölteni a memóriába. Nagyon nagy fájlok (>500 MB) esetén érdemes kötegekben feldolgozni, vagy a **cell‑by‑cell** API‑t használni. + +--- + +## Teljes, futtatható példa + +Az alábbi teljes programot lefordíthatod és futtathatod konzolos alkalmazásként. Cseréld le a `YOUR_DIRECTORY`‑t a gépeden lévő tényleges mappára. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**A kód futtatása:** +1. Nyiss egy terminált vagy a Visual Studio‑t. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Cseréld le a `Program.cs`‑t a fenti kódrészletre. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +A konzol kimenetben látnod kell a törlés megerősítését és a mentett fájl helyét. + +--- + +## Gyakori buktatók és megoldások + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| **Véletlenül egy ListObject fejlécének törlése** | A `DeleteRows` nem ellenőrzi a rejtett táblafejléceket, ha a tartomány átfed. | Győződj meg róla, hogy a kezdő sor **a** tábla fejléc után legyen, vagy használd a `ListObject` API‑t a táblán belüli sorok törléséhez (`ListObject.DeleteRows`). | +| **Sorindexek egyel eltolódnak** | Az Aspose.Cells nullától indexelt, míg az Excel felhasználók 1‑től számolnak. | Kódoláskor mindig vonj le 1‑et az Excel sor számából. | +| **Képletek hibásak a törlés után** | Sorok törlése `#REF!` hibákat okozhat, ha a képletek a törölt sorokra hivatkoznak. | Az Aspose.Cells automatikusan frissíti a legtöbb képletet, de ellenőrizd a külső hivatkozásokat és a névvel definiált tartományokat. | +| **Teljesítménycsökkenés hatalmas fájloknál** | Sok sor egyenkénti törlése belső újraindexelést indít. | Csoportos törlések (egyetlen nagy tartomány törlése) ahelyett, hogy sok egyes sor törlést végeznél. Használd a `DeleteRows(start, count)`‑t ahol csak lehet. | + +--- + +## Következő lépések és kapcsolódó témák + +- **Adatértékek alapján sorok eltávolítása:** Kombináld a FAQ‑ban bemutatott feltételes ciklust a `DeleteRows`‑szel. +- **Tömeges sor beszúrása:** Használd az `InsertRows`‑t helyőrző sorok hozzáadásához, mielőtt adatot töltesz fel. +- **Táblákkal (ListObjects) való munka:** Fedezd fel a `ListObject` metódusokat a strukturált táblák sor‑szintű műveleteihez. +- **CSV‑exportálás sorok törlése után:** Hívd meg a `workbook.Save("output.csv", SaveFormat.Csv)`‑t, hogy tiszta CSV‑t kapj a törölt sorok nélkül. + +--- + +## Összegzés + +Áttekintettük a **load excel file c#** gyakorlati szcenárióját, bemutattuk, **hogyan töröljünk sorokat**, és részleteztük a **adott sorok eltávolítása** és **adat sorok eltávolítása** finomságait az Aspose.Cells segítségével. A munkafüzet betöltésével, a `DeleteRows` meghívásával és a mentéssel megbízható **c# excel row deletion** érhető el a COM‑interop terhe nélkül. + +Próbáld ki egy valós adathalmazon – például tisztítsd meg egy értékesítési jelentést, vagy távolítsd el a tesztsorokat egy sablonból. Ha már magabiztos vagy, kísérletezz feltételes törlésekkel és táblákra szabott műveletekkel. Az API elég robusztus egyszerű szkriptekhez és vállalati szintű kötegelt feldolgozókhoz egyaránt. + +Jó kódolást, és nyugodtan hagyj megjegyzést, ha elakadsz! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/hungarian/net/worksheet-operations/_index.md index b1380426bd..429316c313 100644 --- a/cells/hungarian/net/worksheet-operations/_index.md +++ b/cells/hungarian/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Tanuld meg, hogyan állíthatsz be grafikus hátteret ODS fájlokban az Aspose.C Tanulja meg, hogyan frissítheti a megosztott munkafüzetek módosítási naplójának előzményeit az Aspose.Cells for .NET használatával. Egyszerűsítse az együttműködést és tartsa karban az átlátható dokumentumnyilvántartást. ### [Használja az OpenXml Sheet_SheetId tulajdonságát a munkalapon](./utilize-sheet-sheetid-property/) Engedd szabadjára az Excel erejét az Aspose.Cells for .NET segítségével. Tanuld meg a munkalap-azonosítók hatékony kezelését lépésről lépésre bemutató útmutatónkkal. +### [Munkalapok létrehozása – Lépésről lépésre útmutató dinamikus Excel generáláshoz](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Ismerd meg, hogyan hozhatsz létre munkalapokat dinamikusan az Aspose.Cells for .NET segítségével, részletes lépésről lépésre útmutatóval. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/hungarian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..5e0900f78f --- /dev/null +++ b/cells/hungarian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-03-21 +description: Tanulja meg, hogyan hozhat létre munkalapokat, generálhat Excel-fájlokat + dinamikus munkalapnevekkel, és mentheti a munkafüzetet XLSX formátumban az Aspose.Cells + használatával C#‑ban. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: hu +og_description: Hogyan hozhatunk létre munkalapokat Excelben az Aspose.Cells használatával, + generálhatunk dinamikus munkalapnevekkel rendelkező Excel-fájlokat, és menthetjük + a munkafüzetet XLSX formátumban. +og_title: Munkalapok létrehozása – Teljes C# oktatóanyag +tags: +- Aspose.Cells +- C# +- Excel automation +title: Munkalapok létrehozása – Lépésről lépésre útmutató a dinamikus Excel-generáláshoz +url: /hu/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan hozzunk létre munkalapokat – Teljes C# útmutató + +Gondoltad már valaha, **hogyan hozzunk létre munkalapokat** menet közben anélkül, hogy minden alkalommal manuálisan megnyitnád az Excelt? Nem vagy egyedül. Sok fejlesztő szembesül nehézséggel, amikor **Excel lapokat kell generálni** adatforrásokból, és minden lapnak jelentős, dinamikus nevet szeretne adni. A jó hír? Az Aspose.Cells segítségével automatizálhatod az egész folyamatot, **process master sheet**, és végül **save workbook as XLSX** csak néhány kódsorral. + +Ebben az útmutatóban egy valós példán keresztül vezetünk végig: egy üres munkafüzettel indulva, egy smart‑marker token beillesztésével, amely megmondja az Aspose-nak, mely részletes lapokat kell létrehozni, egy elnevezési minta konfigurálásával, hogy minden lap egyedi nevet kapjon, majd végül az eredmény lemezre mentésével. A végére egy kész‑C# programod lesz, amely munkalapokat hoz létre, dinamikus munkalapnevekkel rendelkező Excel lapokat generál, és a munkafüzetet XLSX formátumban menti – mindezt anélkül, hogy a felhasználói felületet érintenéd. + +> **Előfeltételek** +> • .NET 6+ (or .NET Framework 4.6+). +> • Aspose.Cells for .NET (az ingyenes próba működik ebben a demóban). +> • Alap C# ismeretek – nincs szükség mély Excel interop trükkökre. + +--- + +## Áttekintés arról, mit fogunk építeni + +- **Master sheet** tartalmaz egy smart‑marker helyőrzőt (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor**, amely egy adatforrást olvas (pl. egy `DataTable`) és minden részleghez új munkalapot hoz létre. +- **Dynamic worksheet names** a `Dept_{0}` mintát követve, ahol a `{0}` a részleg nevét helyettesíti. +- **Final XLSX file** a megadott mappába mentve. + +Ennyi. Egyszerű, mégis elég erőteljes számlák, jelentések vagy bármilyen több‑lapos Excel kimenet számára. + +![Diagram, amely bemutatja, hogyan dolgozza fel a master sheet-et több dinamikus munkalap létrehozásához](/images/how-to-create-worksheets-diagram.png "How to create worksheets diagram") + +*Alt text: illusztráció arról, hogyan hozhatók létre munkalapok dinamikus munkalapnevekkel az Aspose.Cells használatával.* + +## Step 1: A projekt beállítása és az Aspose.Cells hozzáadása + +### Miért fontos ez + +Mielőtt bármilyen kód futna, a fordítónak tudnia kell, hogy hol találhatók a `Workbook`, `Worksheet` és `SmartMarkerProcessor` osztályok. A NuGet csomag hozzáadása biztosítja, hogy a legújabb, teljes funkcionalitású API-d legyen. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro tip:** Ha Visual Studio-t használsz, jobb‑klikk a projektre → *Manage NuGet Packages* → keresd meg a *Aspose.Cells*-t és telepítsd a legújabb stabil verziót. + +--- + +## Step 2: Új munkafüzet és a master sheet létrehozása + +### Mit csinálunk + +Egy tiszta munkafüzettel kezdünk, majd lekérjük az első munkalapot (index 0). Ez a lap fogja betölteni a **master sheet**-et, amely a smart‑marker tokent tartalmazza. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +A `Workbook` osztály az összes munkalap tárolója. Alapértelmezés szerint egy *Sheet1* nevű lapot hoz létre; átnevezve „Master”-re a végső fájl könnyebben áttekinthető lesz. + +## Step 3: Smart‑Marker token beillesztése a részletes lap nevéhez + +### Miért használjunk smart‑marker‑t? + +A smart markerek lehetővé teszik, hogy az Aspose.Cells helyettesítse a helyőrzőket adatokal futásidőben. A `«DetailSheetNewName:Dept»` token azt mondja a processzornak: *„Amikor ezt látod, hozz létre egy új részletes lapot minden sorhoz a `Dept` oszlopban.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +A tokent bárhol elhelyezheted; mi a **A1** cellát választottuk az átláthatóság kedvéért. Amikor a processor fut, a token helyére a tényleges részleg neve kerül, és egy megfelelő munkalapot hoz létre. + +## Step 4: Az adatforrás előkészítése + +### Hogyan irányítja az adat a lapok létrehozását + +Az Aspose.Cells bármilyen `IEnumerable` adatforrással működik. Ebben a demóban egy `Dept` nevű egyetlen oszlopú `DataTable`-t használunk. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Mi van, ha több oszlopod van?** +> A processor figyelmen kívül hagyja a felesleges oszlopokat, hacsak nem hivatkozol rájuk további smart markerekben. Ez könnyűsúlyúvá teszi a lapgenerálást. + +## Step 5: A SmartMarkerProcessor és a névminta konfigurálása + +### Dinamikus munkalapnevek működés közben + +Azt szeretnénk, hogy minden új lap `Dept_Finance`, `Dept_HR` stb. néven legyen. A `DetailSheetNewName` opció lehetővé teszi, hogy egy mintát definiáljunk, ahol a `{0}` a tényleges részleg nevével helyettesítődik. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Ha egy részleg kétszer jelenik meg, az Aspose automatikusan számjegy‑utótagot fűz hozzá (pl. `Dept_Finance_1`), hogy elkerülje a duplikált lapneveket. + +## Step 6: A master sheet feldolgozása részletes lapok létrehozásához + +### A **process master sheet** lényege + +A `Process` hívása végzi a nehéz munkát: átvizsgálja a master sheet-et smart markerek után, új munkalapokat hoz létre, lemásolja a master elrendezést, és minden lapot feltölt a sor adataival. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Ez a hívás után a munkafüzet egy master sheet-et és négy részletes lapot tartalmaz – mindegyik a mintánknak megfelelően elnevezve, és a részleg nevét az A1 cellában tartalmazva. + +## Step 7: A munkafüzet mentése XLSX formátumban + +### Utolsó lépés—**save workbook as XLSX** + +Most, hogy a munkalapok léteznek, a fájlt lemezre írjuk. Bármilyen útvonalat választhatsz; csak győződj meg róla, hogy a könyvtár létezik. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Opening `DetailSheets.xlsx` will show: + +| Lap neve | A1 cella (Tartalom) | +|----------|---------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Edge case:** Ha a kimeneti mappa nem létezik, a `Save` `DirectoryNotFoundException`-t dob. A hívást tekerd be try‑catch blokkba vagy hozd létre a mappát előre. + +--- + +## Teljes működő példa + +Összeállítva, itt a teljes program, amelyet beilleszthetsz egy konzolos alkalmazásba: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Futtasd a programot, nyisd meg a keletkezett fájlt, és pontosan azt a elrendezést fogod látni, amit korábban leírtunk. Nincs manuális másolás‑beillesztés, nincs COM interop – csak tiszta C# kód, amely **generates Excel sheets** dinamikus munkalapnevekkel. + +## Gyakori kérdések és buktatók + +| Kérdés | Válasz | +|--------|--------| +| *Használhatok DataSet-et több táblával?* | Igen. Add meg a megfelelő táblát a `Process`-nek, vagy használj egy táblák szótárát. | +| *Mi van, ha több smart‑marker-re van szükségem a master sheet-en?* | Helyezz el további tokeneket, például `«DetailSheetNewName:Region»`, és szükség esetén konfigurálj egy külön névmintát. | +| *Marad a master sheet a végső fájlban?* | Alapértelmezés szerint igen. Ha nincs rá szükséged, hívd meg a `workbook.Worksheets.RemoveAt(0)`-t a feldolgozás után. | +| *Hogyan kezeli az Aspose a nagyon nagy adatállományokat?* | Hatékonyan streameli az adatokat, de ha memóriahatáron ütközöl, érdemes növelni a `MemorySetting`-et. | +| *Exportálhatok CSV‑be az XLSX helyett?* | Természetesen – használd a `workbook.Save("file.csv", SaveFormat.Csv)`. Ugyanaz a lap‑létrehozási logika érvényes. | + +## Következő lépések + +Most, hogy tudod, **hogyan hozzunk létre munkalapokat** dinamikusan, érdemes felfedezni: + +- **Saving workbook as XLSX** jelszóvédelemmel (`workbook.Protect("pwd")`). +- **Generating Excel sheets** JSON vagy XML forrásokból a `JsonDataSource` vagy `XmlDataSource` használatával. +- **Applying styles** minden generált lapra (betűtípusok, színek) a `Style` objektumok segítségével. +- **Merging cells** vagy képletek automatikus beszúrása összegző jelentésekhez. + +Ezek a kiegészítések mind a **process master sheet** koncepcióra épülnek, így a váltás zökkenőmentes lesz. + +## Összegzés + +Megtettük a teljes folyamatot: egy munkafüzet inicializálásától, a smart‑marker beillesztésén, a **dynamic worksheet names** konfigurálásán, a master sheet **generate Excel sheets** feldolgozásán, egészen a **saving the workbook as XLSX**-ig. A példa teljes, futtatható, és bemutatja a legjobb gyakorlatokat mind a teljesítmény, mind a karbantarthatóság szempontjából. + +Próbáld ki, finomítsd a névmintát, tápláld valós üzleti adatokkal, és nézd, ahogy az Excel automatizáció felrepül. Ha bármilyen problémába ütközöl, írj egy megjegyzést alább – 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/indonesian/net/calculation-engine/_index.md b/cells/indonesian/net/calculation-engine/_index.md index 2f4a9cc90b..ba0cf0f381 100644 --- a/cells/indonesian/net/calculation-engine/_index.md +++ b/cells/indonesian/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ Pelajari cara membuat dan mengintegrasikan mesin kalkulasi kustom dalam aplikasi ### [Mengoptimalkan Waktu Perhitungan Excel dengan Opsi Rekursif di Aspose.Cells untuk .NET](./optimize-calculation-time-recursive-aspose-cells-net) Pelajari cara mengoptimalkan waktu kalkulasi Excel menggunakan opsi rekursif di Aspose.Cells untuk .NET. Panduan ini mencakup penyiapan, kiat kinerja, dan aplikasi praktis. +### [Cara Menghitung Workbook di C# – Panduan Sortir & Rumus](./how-to-calculate-workbook-in-c-sort-formula-guide/) +Panduan langkah demi langkah menghitung workbook di C# dengan teknik penyortiran dan penggunaan rumus untuk meningkatkan kinerja. ## Manfaat diff --git a/cells/indonesian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/indonesian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..06987c408d --- /dev/null +++ b/cells/indonesian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Cara menghitung workbook di C# dengan Aspose.Cells – pelajari cara membuat + workbook Excel, mengisi sel Excel, menghitung formula Excel, dan menggunakan fungsi + penyortiran. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: id +og_description: Cara menghitung workbook di C# dengan cepat. Tutorial ini menunjukkan + cara membuat workbook Excel, mengisi sel Excel, menghitung formula Excel, dan menggunakan + fungsi sortir. +og_title: Cara Menghitung Workbook di C# – Panduan Lengkap Penyortiran +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Cara Menghitung Workbook di C# – Panduan Sortir & Rumus +url: /id/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Menghitung Workbook di C# – Panduan Sort & Formula + +Pernah bertanya‑tanya **bagaimana cara menghitung nilai workbook** secara langsung tanpa membuka Excel? Anda tidak sendirian. Dalam banyak skenario otomatisasi, Anda perlu membuat file Excel, menaruh beberapa angka di dalamnya, mengurutkannya, dan mengambil hasilnya kembali ke aplikasi .NET Anda—semua secara programatik. + +Dalam panduan ini kita akan melangkah melalui semua itu: kita akan **membuat workbook Excel**, **mengisi sel Excel**, menambahkan formula **SORT**, dan akhirnya **menghitung formula Excel** sehingga Anda dapat membaca array yang sudah diurutkan langsung dari C#. Pada akhir tutorial Anda akan memiliki potongan kode yang dapat dijalankan dan dapat disisipkan ke proyek apa pun yang merujuk ke Aspose.Cells (atau perpustakaan serupa). + +## Prasyarat + +- .NET 6+ (kode ini juga bekerja pada .NET Framework 4.7.2) +- Aspose.Cells untuk .NET (paket NuGet percobaan gratis `Aspose.Cells`) +- Pemahaman dasar tentang sintaks C# +- Tidak perlu memiliki instalasi Microsoft Excel; perpustakaan yang melakukan semua pekerjaan berat untuk Anda + +Jika Anda sudah nyaman dengan hal‑hal di atas, mari kita mulai. + +## Cara Menghitung Workbook – Menginisialisasi Workbook + +Hal pertama yang harus Anda lakukan adalah membuat objek workbook baru. Anggap saja Anda membuka file Excel yang benar‑benar kosong. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Mengapa ini penting:** Kelas `Workbook` adalah titik masuk untuk setiap operasi—tanpa itu Anda tidak dapat menambahkan sheet, sel, atau formula. Menginisialisasinya dengan benar memastikan Anda bekerja dengan kanvas yang bersih. + +## Membuat Workbook Excel dan Mengakses Worksheet + +Setelah workbook ada, kita perlu memastikan bahwa kita mengarah ke worksheet yang tepat. Kebanyakan perpustakaan secara default membuat satu sheet bernama “Sheet1”, tetapi Anda dapat mengganti namanya atau menambah lebih banyak sheet jika diinginkan. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Tips pro:** Menamai sheet sejak awal membantu ketika Anda nanti merujuknya dalam formula (`'Data'!A1:A10`). Hal ini juga mempermudah proses debugging. + +## Mengisi Sel Excel dengan Data + +Selanjutnya, kita akan **mengisi sel Excel** dengan angka‑angka yang ingin diurutkan. Contoh ini hanya menggunakan dua sel, tetapi Anda dapat memperluas rentang ke puluhan baris. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Mengapa kita memakai `PutValue`** – Metode ini secara otomatis mendeteksi tipe data (int, double, string, dll.) dan menyimpannya dengan tepat, sehingga Anda tidak perlu melakukan casting manual. + +## Menerapkan Fungsi SORT melalui Formula + +Fungsi `SORT` di Excel melakukan apa yang namanya suguhkan: mengembalikan array yang sudah diurutkan tanpa mengubah data asli. Kita akan menaruh formula itu di sel `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Catatan kasus tepi:** `SORT` mengembalikan hasil berupa **array**. Pada versi Excel lama (sebelum Office 365) ini memerlukan kombinasi Ctrl+Shift+Enter. Dengan Aspose.Cells Anda langsung mendapatkan array tersebut saat menghitung workbook. + +## Menghitung Formula Excel untuk Mendapatkan Hasil + +Pada titik ini workbook hanya tahu *apa* yang harus dihitung, bukan *bahwa* harus melakukannya. Memanggil `CalculateFormula` memicu mesin untuk mengevaluasi setiap formula, termasuk `SORT` kita. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Output konsol yang diharapkan** + +``` +Sorted array: {2, 5} +``` + +> **Apa yang baru saja terjadi?** +> 1. Workbook membuat mesin perhitungan internal. +> 2. Formula `SORT` memeriksa rentang `A1:A2`. +> 3. Mesin menghasilkan array baru, yang kemudian kami ambil dari `B1`. + +Jika Anda mengubah nilai di `A1` dan `A2` (atau memperluas rentang) dan menjalankan kembali `CalculateFormula`, output akan otomatis terupdate—tanpa kode tambahan. + +## Menggunakan Fungsi Sort pada Dataset Lebih Besar (Opsional) + +Sebagian besar skenario dunia nyata melibatkan lebih dari dua baris. Berikut ini penyesuaian singkat yang bekerja untuk jumlah entri berapa pun: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Mengapa Anda mungkin memerlukannya:** Mengurutkan rentang besar memungkinkan Anda membuat papan peringkat, mengurutkan data keuangan, atau sekadar membersihkan CSV yang diimpor sebelum diproses lebih lanjut. + +## Kesalahan Umum & Cara Menghindarinya + +| Masalah | Mengapa Terjadi | Solusi | +|---------|----------------|--------| +| **`#VALUE!` di B1** | Formula `SORT` merujuk ke rentang yang kosong atau tidak berisi angka. | Pastikan setiap sel dalam rentang sumber berisi angka atau teks yang dapat diurutkan. | +| **Pemotongan array** | Mencoba membaca array dari satu sel tanpa melakukan casting. | Cast `worksheet.Cells["B1"].Value` ke `object[]` (atau tipe yang sesuai). | +| **Penurunan performa** | Menghitung ulang workbook besar setelah setiap perubahan kecil. | Panggil `CalculateFormula` hanya setelah selesai memodifikasi sheet, atau gunakan `CalculateFormulaOptions` untuk membatasi ruang lingkup. | + +## Contoh Lengkap yang Siap Pakai (Copy‑Paste) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Screenshot hasil** +> ![how to calculate workbook result in Excel](https://example.com/images/sorted-result.png "how to calculate workbook result in Excel") + +Gambar di atas menunjukkan workbook setelah perhitungan—sel **B1** berisi array yang sudah diurutkan `{2, 5}`. + +## Kesimpulan + +Kita baru saja membahas **cara menghitung nilai workbook** secara programatik: membuat workbook Excel, mengisi sel Excel, menyisipkan formula `SORT`, dan akhirnya **menghitung formula Excel** untuk mengekstrak data yang sudah diurutkan. Pendekatan ini bekerja untuk contoh sederhana dengan dua sel dan dapat diskalakan dengan mulus ke dataset yang lebih besar. + +Apa selanjutnya? Cobalah menggabungkan ini dengan fungsi lain seperti `FILTER`, `UNIQUE`, atau bahkan logika gaya VBA khusus melalui `WorksheetFunction`. Anda juga dapat menyimpan workbook ke disk (`workbook.Save("Sorted.xlsx")`) dan membukanya di Excel untuk verifikasi visual. + +Silakan bereksperimen—ganti angka, ubah rentang, atau rangkaikan beberapa formula sekaligus. Otomatisasi adalah tentang iterasi cepat, dan kini Anda memiliki fondasi yang kuat untuk dibangun. + +Selamat coding, semoga workbook Anda selalu menghitung tepat seperti yang Anda harapkan! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/indonesian/net/conversion-and-rendering/_index.md index 8422e4e5c5..b6b118a5bf 100644 --- a/cells/indonesian/net/conversion-and-rendering/_index.md +++ b/cells/indonesian/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Pelajari cara mengonversi Excel ke PDF dengan mudah menggunakan Aspose.Cells dal Pelajari cara mengonversi lembar kerja Excel ke SVG menggunakan Aspose.Cells untuk .NET dengan panduan langkah demi langkah ini. Sempurna untuk pengembang .NET yang ingin mengubah Excel ke SVG. ### [Mengonversi Excel ke MHTML di .NET](./converting-excel-to-mhtml/) Pelajari cara mengonversi file Excel ke format MHTML secara efisien di .NET dengan Aspose.Cells, yang akan meningkatkan kemampuan pelaporan dan berbagi data Anda. +### [Buat Gambar dari Excel – Ekspor Pivot ke PNG dalam C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Pelajari cara mengekspor tabel pivot Excel menjadi gambar PNG menggunakan Aspose.Cells di C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/indonesian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..c8ad10bd4d --- /dev/null +++ b/cells/indonesian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Buat gambar dari Excel di C# menggunakan Aspose.Cells. Pelajari cara + mengonversi Excel menjadi gambar, mengekspor pivot, dan menyimpan gambar sebagai + PNG dengan contoh lengkap yang dapat dijalankan. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: id +og_description: Buat gambar dari Excel di C# dengan cepat. Panduan ini menunjukkan + cara mengonversi Excel menjadi gambar, mengekspor pivot, dan menyimpan gambar sebagai + PNG dengan kode yang jelas. +og_title: Buat Gambar dari Excel – Ekspor Pivot ke PNG dalam C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Buat Gambar dari Excel – Ekspor Pivot ke PNG dalam C# +url: /id/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Membuat Gambar dari Excel – Ekspor Pivot ke PNG dalam C# + +Pernah perlu **membuat gambar dari Excel** tetapi tidak yakin API mana yang harus dipanggil? Anda tidak sendirian—banyak pengembang mengalami kebuntuan saat mencoba mengubah pivot table yang aktif menjadi PNG yang dapat dibagikan. + +Dalam tutorial ini kami akan menelusuri solusi lengkap yang siap‑jalan yang **mengonversi Excel ke gambar**, menunjukkan **cara mengekspor pivot**, dan menjelaskan **cara menyimpan gambar** sebagai file PNG. Pada akhir tutorial Anda akan memiliki satu metode yang melakukan seluruh pekerjaan, plus tips untuk kasus tepi yang mungkin Anda temui. + +## Apa yang Anda Butuhkan + +- **Aspose.Cells for .NET** (paket NuGet `Aspose.Cells`). Ini adalah pustaka komersial tetapi menawarkan mode evaluasi gratis—sempurna untuk pengujian. +- .NET 6+ (atau .NET Framework 4.6+). +- Sebuah workbook Excel sederhana (`Pivot.xlsx`) yang berisi setidaknya satu pivot table. +- IDE apa pun yang Anda suka—Visual Studio, Rider, atau bahkan VS Code. + +Itu saja. Tanpa DLL tambahan, tanpa interop COM, dan tanpa trik otomatisasi Excel yang berantakan. + +Sekarang, mari kita selami kodenya. + +## Langkah 1: Memuat Workbook – Membuat Gambar dari Excel + +Hal pertama yang kami lakukan adalah membuka file Excel yang berisi pivot table. Langkah ini penting karena renderer bekerja terhadap objek `Workbook` yang berada di memori. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Mengapa ini penting:* Memuat workbook memberi kami akses ke **pivot** dan semua pemformatan yang akan dihormati ketika kami kemudian **mengonversi Excel ke gambar**. Jika Anda melewatkannya, renderer tidak memiliki apa‑apa untuk diproses. + +## Langkah 2: Mengonfigurasi Opsi Ekspor – Mengonversi Excel ke Gambar + +Selanjutnya kami memberi tahu Aspose bagaimana gambar akhir harus terlihat. Kelas `ImageOrPrintOptions` memungkinkan kami memilih PNG, mengatur DPI, dan bahkan mengontrol warna latar belakang. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Mengapa ini penting:* Dengan mengatur DPI tinggi kami memastikan **ekspor Excel ke PNG** terlihat tajam, bahkan ketika pivot berisi banyak baris. Anda dapat menurunkan DPI jika ukuran file menjadi masalah. + +## Langkah 3: Merender Worksheet – Cara Mengekspor Pivot + +Sekarang masuk ke inti proses: mengubah worksheet (dengan pivotnya) menjadi gambar. Kelas `WorksheetRender` melakukan pekerjaan berat tersebut. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Mengapa ini penting:* Di sinilah kami **cara mengekspor pivot** ke format visual. Renderer menghormati semua pemformatan pivot, slicer, dan gaya bersyarat, sehingga PNG terlihat persis seperti yang Anda lihat di Excel. + +## Langkah 4: Menyatukan Semua – Cara Menyimpan Gambar + +Akhirnya, kami mengekspos satu metode publik yang mengikat semua bagian bersama. Ini adalah metode yang akan Anda panggil dari aplikasi, layanan, atau alat konsol Anda. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Contoh Lengkap yang Berfungsi + +Buat proyek konsol baru, tambahkan paket NuGet `Aspose.Cells`, lalu letakkan `Program.cs` berikut: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Hasil yang diharapkan:** Setelah Anda menjalankan program, `PivotImage.png` akan muncul di folder yang Anda tentukan, menampilkan snapshot pixel‑perfect dari pivot table. + +![Contoh membuat gambar dari Excel](https://example.com/placeholder.png "Contoh membuat gambar dari Excel") + +*Alt text:* contoh membuat gambar dari excel yang menampilkan pivot table yang diekspor sebagai PNG. + +## Pertanyaan Umum & Kasus Tepi + +### Bagaimana jika workbook saya memiliki beberapa worksheet? + +Helper saat ini mengambil `Worksheets[0]`. Untuk menargetkan sheet tertentu, berikan nama sheet: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNGnya blur—bagaimana cara memperbaikinya? + +Tingkatkan `HorizontalResolution` dan `VerticalResolution` di `GetImageOptions`. Nilai 300–600 DPI biasanya menghasilkan hasil yang tajam. Ingat, DPI yang lebih tinggi berarti ukuran file yang lebih besar. + +### Pivot saya melampaui satu halaman—apakah saya bisa mengekspor semua halaman? + +Ya. Loop melalui `renderer.PageCount` dan panggil `ToImage(pageIndex, ...)` untuk setiap halaman, atau atur `OnePagePerSheet = false` untuk mendapatkan gambar terpisah per halaman. + +### Saya hanya membutuhkan sebagian sheet (misalnya rentang tertentu)? + +Gunakan `ImageOrPrintOptions` untuk mengatur `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Dengan cara itu Anda **mengonversi Excel ke gambar** hanya untuk area yang Anda butuhkan. + +### Apakah ini bekerja dengan file .xls (Excel 97‑2003)? + +Tentu saja. Aspose.Cells mengabstraksi format file, sehingga Anda dapat memberikan `.xls`, `.xlsx`, `.xlsm`, atau bahkan `.ods` dan tetap **mengekspor excel ke png**. + +## Pro Tips & Gotchas + +- **Lisensi penting**: Dalam mode evaluasi Aspose menambahkan watermark. Pasang lisensi yang tepat untuk produksi. +- **Penggunaan memori**: Merender workbook besar dapat memakan banyak memori. Segera dispose objek `Workbook` atau bungkus dalam blok `using`. +- **Keamanan thread**: `Workbook` tidak thread‑safe. Buat instance baru per permintaan jika Anda berada di layanan web. +- **Fleksibilitas format gambar**: Jika Anda membutuhkan JPEG atau BMP, cukup ubah `ImageFormat` di `GetImageOptions`. + +## Kesimpulan + +Anda kini memiliki resep lengkap, ujung‑ke‑ujung untuk **membuat gambar dari Excel**, khususnya untuk **mengekspor pivot** sebagai PNG berkualitas tinggi. Potongan kode di atas menunjukkan kode lengkap yang dapat dijalankan, menjelaskan **cara menyimpan gambar**, dan mencakup variasi seperti banyak sheet atau area cetak khusus. + +Langkah selanjutnya? Coba rangkaian exporter ini dengan layanan email untuk mengirim PNG secara otomatis, atau bereksperimen dengan `ImageOrPrintOptions` untuk menghasilkan PDF alih‑alih PNG. Pola yang sama berlaku untuk tugas **mengonversi excel ke gambar** di banyak format. + +Ada pertanyaan lain? Tinggalkan komentar, 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/converting-excel-files-to-other-formats/_index.md b/cells/indonesian/net/converting-excel-files-to-other-formats/_index.md index 353f7c2101..86e3b45666 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. +### [Simpan Excel sebagai Docx dengan C# – Panduan Lengkap Langkah demi Langkah](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Pelajari cara menyimpan file Excel menjadi dokumen Docx menggunakan C# dengan panduan langkah demi langkah yang lengkap. ### [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/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/indonesian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..210bc0250a --- /dev/null +++ b/cells/indonesian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Simpan Excel sebagai Docx di C# — pelajari cara mengonversi Excel ke + Word, menyematkan diagram, dan memuat workbook Excel di C# menggunakan Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: id +og_description: Menyimpan Excel sebagai Docx di C# dijelaskan dalam kalimat pertama. + Ikuti tutorial ini untuk mengonversi Excel ke Word, menyisipkan diagram, dan memuat + workbook Excel di C#. +og_title: Simpan Excel sebagai Docx dengan C# – Panduan Lengkap +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Simpan Excel sebagai Docx dengan C# – Panduan Lengkap Langkah demi Langkah +url: /id/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Simpan Excel sebagai Docx dengan C# – Panduan Lengkap Langkah‑per‑Langkah + +Pernah perlu **menyimpan Excel sebagai Docx** tetapi tidak tahu harus mulai dari mana? Anda tidak sendirian—banyak pengembang mengalami hal yang sama ketika ingin *mengonversi Excel ke Word* sambil mempertahankan grafik. Dalam tutorial ini kami akan menelusuri kode yang tepat, menjelaskan mengapa setiap baris penting, dan menunjukkan cara menyematkan grafik Excel tanpa kehilangan kualitas. + +Kami juga akan menambahkan beberapa tips tambahan tentang **load Excel workbook C#**, sehingga pada akhir tutorial Anda akan merasa nyaman mengonversi Excel ke Docx dalam proyek .NET apa pun. Tanpa referensi yang samar, hanya contoh konkret yang dapat dijalankan dan langsung Anda salin‑tempel. + +--- + +## Apa yang Dibahas dalam Panduan Ini + +- Memuat file `.xlsx` yang sudah ada dengan Aspose.Cells (atau perpustakaan kompatibel lainnya). +- Manipulasi opsional pada lembar kerja atau grafik sebelum konversi. +- Menyimpan workbook sebagai file `.docx` sambil mempertahankan grafik yang disematkan. +- Memverifikasi hasil dan menangani kasus tepi umum seperti workbook besar atau tipe grafik yang tidak didukung. + +Jika Anda bertanya-tanya **mengapa Anda ingin mengonversi Excel ke Docx**, pikirkan laporan yang harus Anda kirim ke pemangku kepentingan non‑teknis—dokumen Word diterima secara universal, dan mereka menjaga fidelitas visual grafik Anda. Mari kita mulai. + +--- + +## Prasyarat – Load Excel Workbook C# + +Sebelum menulis kode apa pun, pastikan Anda memiliki hal‑hal berikut: + +| Persyaratan | Alasan | +|-------------|--------| +| **.NET 6.0 atau lebih baru** | Runtime modern, kinerja lebih baik, dan dukungan penuh untuk Aspose.Cells. | +| **Aspose.Cells untuk .NET** (paket NuGet `Aspose.Cells`) | Menyediakan kelas `Workbook` yang digunakan untuk membaca Excel dan mengekspor ke DOCX. | +| **Visual Studio 2022** (atau IDE lain yang Anda sukai) | Memudahkan debugging dan IntelliSense. | +| **File Excel dengan grafik** (`AdvancedCharts.xlsx`) | Untuk melihat fitur *embed excel charts* beraksi. | + +Anda dapat menginstal perpustakaan melalui Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** Jika Anda menggunakan pipeline CI/CD, tambahkan paket ke `*.csproj` Anda sehingga pemulihan paket terjadi secara otomatis. + +--- + +## Langkah 1 – Muat Workbook Excel (Mulai Simpan Excel sebagai Docx) + +Hal pertama yang kami lakukan adalah memuat workbook sumber. Di sinilah frasa **load excel workbook c#** berperan. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Mengapa ini penting:** Memuat file memberi Anda akses ke setiap lembar kerja, grafik, dan gaya. Tanpa langkah ini, tidak ada yang dapat dikonversi, dan API tidak dapat mempertahankan grafik yang disematkan. + +--- + +## Langkah 2 – (Opsional) Sesuaikan Workbook Sebelum Konversi + +Anda mungkin ingin mengganti nama sheet, menyembunyikan kolom, atau bahkan mengubah judul grafik. Langkah ini opsional tetapi menunjukkan betapa fleksibelnya konversi. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Kasus tepi:** Beberapa tipe grafik lama (misalnya Radar) mungkin tidak terrender dengan sempurna di Word. Uji grafik spesifik Anda setelah konversi. + +--- + +## Langkah 3 – Simpan Workbook sebagai Dokumen Word (Aksi Inti “Save Excel as Docx”) + +Sekarang saatnya aksi utama: kita **menyimpan Excel sebagai Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Saat dijalankan, Aspose.Cells menulis setiap lembar kerja sebagai tabel di dalam file Word dan menyematkan setiap grafik sebagai gambar beresolusi tinggi. Hasilnya adalah file `.docx` yang dapat diedit sepenuhnya dan tampak persis seperti tampilan Excel asli. + +> **Mengapa memilih DOCX daripada PDF?** DOCX memungkinkan penerima mengedit teks atau mengganti grafik nanti, sedangkan PDF hanyalah snapshot statis. + +--- + +## Langkah 4 – Verifikasi Output dan Atasi Masalah Umum + +Setelah konversi selesai, buka `ChartsInWord.docx` di Microsoft Word: + +1. **Periksa bahwa setiap lembar kerja muncul sebagai bagian terpisah** – Anda harus melihat tabel yang mencerminkan data Excel Anda. +2. **Pastikan grafik disematkan** – mereka harus berupa gambar yang dapat dipilih, bukan placeholder yang rusak. +3. **Jika ada grafik yang hilang**, pastikan tipe grafik tersebut didukung oleh Aspose.Cells (lihat [daftar kompatibilitas resmi](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tip:** Untuk workbook besar, pertimbangkan meningkatkan `MemorySetting` pada Aspose.Cells untuk menghindari `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Contoh Lengkap yang Siap Pakai (Copy‑Paste) + +Berikut adalah program lengkap, siap untuk dikompilasi. Ganti `YOUR_DIRECTORY` dengan jalur folder yang sebenarnya di mesin Anda. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Hasil yang diharapkan:** Dokumen Word (`ChartsInWord.docx`) yang berisi semua lembar kerja sebagai tabel dan setiap grafik sebagai gambar beresolusi tinggi yang disematkan. Buka di Word, dan Anda akan melihat tata letak visual yang persis sama dengan yang ada di Excel. + +--- + +## Pertanyaan yang Sering Diajukan (FAQ) + +**T: Bisakah saya mengonversi beberapa file Excel dalam sebuah loop?** +J: Tentu saja. Bungkus logika konversi dalam loop `foreach (var file in Directory.GetFiles(...))` dan gunakan pola instance `Workbook` yang sama. + +**T: Apakah ini juga bekerja dengan file `.xls`?** +J: Ya—Aspose.Cells mendukung format lama. Cukup ubah ekstensi sumber; pemanggilan `SaveFormat.Docx` tetap sama. + +**T: Bagaimana jika saya ingin mempertahankan rumus saat mengonversi?** +J: Word tidak mendukung rumus Excel secara native. Konversi akan meratakan rumus menjadi nilai yang telah dihitung. Jika Anda memerlukan perhitungan hidup, pertimbangkan menyematkan workbook sebagai objek OLE. + +**T: Apakah ada cara mengontrol resolusi gambar grafik?** +J: Gunakan `ImageOrPrintOptions` sebelum menyimpan: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Menyematkan Grafik Excel Langsung ke Word (Lebih dari Simpan Excel sebagai Docx) + +Jika Anda ingin grafik tetap dapat diedit di Word, Anda dapat menyematkan seluruh lembar Excel sebagai objek OLE: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Teknik ini *embed excel charts* sebagai objek hidup, memungkinkan pengguna akhir mengklik dua kali untuk mengeditnya di Excel langsung dari Word. Ini menjadi alternatif yang berguna ketika Anda memerlukan interaktivitas. + +--- + +## Kesimpulan + +Anda kini memiliki solusi menyeluruh, dari awal hingga akhir, untuk **save Excel as docx** menggunakan C#. Tutorial ini mencakup memuat workbook, penyesuaian opsional, operasi penyimpanan, langkah verifikasi, dan bahkan pandangan singkat tentang menyematkan grafik untuk skenario yang dapat diedit. Dengan mengikuti kode di atas, Anda dapat **mengonversi Excel ke Word**, mempertahankan setiap grafik, dan menangani file besar dengan elegan. + +Siap untuk tantangan berikutnya? Cobalah mengotomatisasi konversi batch, integrasikan logika ini ke dalam API ASP.NET Core, atau jelajahi **convert Excel to docx** untuk dasbor multi‑sheet. Keterampilan yang baru Anda kuasai menjadi fondasi bagi proyek otomatisasi dokumen apa pun. + +Punya pertanyaan atau workbook rumit yang menolak untuk dikonversi? Tinggalkan komentar, dan kami akan membantu memecahkan masalah bersama. Selamat coding! + +![Diagram yang menunjukkan alur dari workbook Excel ke file Word DOCX – ilustrasi proses save excel as docx](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..cf777979c4 100644 --- a/cells/indonesian/net/document-properties/_index.md +++ b/cells/indonesian/net/document-properties/_index.md @@ -34,7 +34,9 @@ Pelajari cara mengakses properti dokumen di Excel menggunakan Aspose.Cells for . ### [Mengakses Nilai Properti Dokumen di .NET](./accessing-value-of-document-properties/) 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. +Pelajari cara menambahkan properti dokumen di Excel menggunakan Aspose.Cells untuk .NET dengan panduan langkah demi detail terperinci ini. +### [Cara Menyimpan XLSB – Menambahkan Properti Kustom di C#](./how-to-save-xlsb-add-custom-property-in-c/) +Pelajari cara menyimpan file XLSB dan menambahkan properti kustom menggunakan Aspose.Cells for .NET dengan contoh kode C# yang mudah diikuti. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/indonesian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..4536d6b252 --- /dev/null +++ b/cells/indonesian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: Pelajari cara menyimpan file xlsb di C# sambil menambahkan properti khusus + seperti ProjectId. Panduan ini menunjukkan cara membuat workbook Excel, menambahkan + properti khusus, dan memverifikasinya. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: id +og_description: Temukan cara menyimpan file xlsb dan menambahkan properti khusus seperti + ProjectId menggunakan C#. Panduan langkah demi langkah dengan kode lengkap. +og_title: Cara Menyimpan XLSB – Tambahkan Properti Kustom di C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Cara Menyimpan XLSB – Tambahkan Properti Kustom di C# +url: /id/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Menyimpan XLSB – Menambahkan Properti Kustom di C# + +Pernah bertanya-tanya **how to save xlsb** file sambil menyisipkan sepotong metadata di dalamnya? Mungkin Anda sedang membangun mesin pelaporan yang membutuhkan ProjectId tersembunyi, atau Anda hanya ingin menandai lembar kerja untuk pemrosesan selanjutnya. **How to save xlsb** bukanlah ilmu roket, tetapi menggabungkannya dengan properti kustom menambahkan sedikit twist yang sering terlewatkan oleh banyak pengembang. + +Dalam tutorial ini kami akan membahas cara membuat workbook Excel, menambahkan properti kustom (ya, *add custom property*), menyimpan file sebagai workbook biner **XLSB**, dan akhirnya memuatnya kembali untuk membuktikan properti tersebut tetap ada. Sepanjang proses kami juga akan menyentuh nilai **how to add custom property** seperti ProjectId, sehingga Anda akan memiliki pola yang dapat digunakan kembali untuk proyek di masa depan. + +> **Pro tip:** Jika Anda sudah menggunakan library Aspose.Cells (kode di bawah ini melakukannya), Anda mendapatkan dukungan native untuk properti kustom tanpa masalah interop COM. + +--- + +## Prasyarat + +- .NET 6+ (atau .NET Framework 4.6+). +- Aspose.Cells untuk .NET – instal melalui NuGet: `Install-Package Aspose.Cells`. +- Pengetahuan dasar C# – tidak ada yang rumit, hanya beberapa pernyataan `using`. + +Itu saja. Tidak perlu instalasi Office, tidak ada interop, hanya kode managed murni. + +--- + +## Langkah 1: Cara Menyimpan XLSB – Membuat Workbook Excel + +Hal pertama yang harus Anda lakukan adalah membuat objek workbook baru. Anggap saja seperti membuka file Excel kosong yang hanya berada di memori sampai Anda memutuskan untuk menuliskannya ke disk. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Mengapa memulai dengan workbook? Karena **create excel workbook** adalah fondasi untuk manipulasi selanjutnya—apakah Anda nanti menyisipkan formula, diagram, atau properti kustom. Kelas `Workbook` mengabstraksi seluruh file, sementara `Worksheets` memberi Anda akses ke tab individu. + +--- + +## Langkah 2: Menambahkan Properti Kustom ke Worksheet + +Sekarang bagian yang menyenangkan—**add custom property**. Di Aspose.Cells Anda dapat melampirkan properti langsung ke worksheet (atau ke workbook itu sendiri). Di sini kami akan menyimpan ProjectId numerik yang dapat dibaca layanan downstream tanpa menyentuh sel yang terlihat. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? Cukup panggil `CustomProperties.Add(name, value)`. API secara otomatis menangani XML di baliknya, jadi Anda tidak perlu khawatir tentang detail tingkat rendah. Ini adalah cara paling aman untuk menyematkan metadata yang tidak terlihat oleh pengguna akhir. + +--- + +## Langkah 3: Menyimpan Workbook sebagai XLSB + +Dengan workbook siap dan properti kustom terlampir, saatnya **how to save xlsb**. Format XLSB menyimpan data dalam representasi biner, yang biasanya lebih kecil dan lebih cepat dibuka dibandingkan XLSX klasik. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Menyimpan sebagai XLSB semudah mengirim `SaveFormat.Xlsb` ke metode `Save`. Jika Anda bertanya-tanya apakah ini akan menghapus properti kustom—yakinkanlah, Aspose.Cells mempertahankan properti tingkat workbook maupun worksheet dalam file biner. + +--- + +## Langkah 4: Memverifikasi Properti Kustom + +Kebiasaan yang baik adalah memuat ulang file dan memastikan properti tersebut bertahan setelah siklus. Ini juga menunjukkan **how to add custom property** nanti jika Anda perlu memperbaruinya. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Jika konsol mencetak `12345`, Anda telah berhasil **how to save xlsb** *dan* **add project id** dalam satu langkah. Properti tersebut berada di dalam metadata internal file, tidak terlihat di UI tetapi dapat dibaca sepenuhnya oleh kode. + +--- + +## Tips Tambahan: Menambahkan Beberapa Properti & Kasus Tepi + +### Menambahkan Lebih Dari Satu Properti + +Anda dapat menumpuk sebanyak mungkin properti yang Anda inginkan: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Memperbarui Properti yang Sudah Ada + +Jika properti sudah ada, cukup berikan nilai baru: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Menangani Properti yang Hilang + +Mencoba membaca properti yang tidak ada akan melempar `KeyNotFoundException`. Lindungi terhadap hal itu: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Kompatibilitas Lintas Versi + +XLSB bekerja pada Excel 2007 + dan pada versi web Excel. Namun, versi Office lama (< 2007) tidak dapat membuka file XLSB. Jika Anda membutuhkan kompatibilitas yang lebih luas, pertimbangkan menyimpan salinan kedua sebagai XLSX. + +### Pertimbangan Kinerja + +File XLSB biner biasanya 30‑50 % lebih kecil daripada XLSX, dan mereka memuat lebih cepat. Untuk kumpulan data besar (ratusan ribu baris), peningkatan kecepatan dapat terasa. + +--- + +## Contoh Lengkap yang Berfungsi + +Berikut adalah seluruh program yang dapat Anda salin‑tempel ke proyek konsol. Ini mencakup semua langkah, penanganan error, dan komentar yang Anda perlukan untuk langsung berjalan. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Output yang Diharapkan** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Jika Anda melihat di atas, Anda telah menguasai **how to save xlsb**, **add custom property**, dan **add project id**—semuanya dalam potongan kode yang rapi dan dapat digunakan kembali. + +--- + +## Pertanyaan yang Sering Diajukan + +**Q: Apakah ini bekerja dengan .NET Core?** +A: Tentu saja. Aspose.Cells kompatibel dengan .NET Standard, sehingga kode yang sama berjalan pada .NET 5/6/7 dan pada .NET Framework. + +**Q: Bisakah saya menambahkan properti kustom ke seluruh workbook bukan hanya satu sheet?** +A: Ya. Gunakan `workbook.CustomProperties.Add("Key", value);` untuk melampirkannya pada level workbook. + +**Q: Bagaimana jika saya perlu menyimpan string besar (misalnya JSON) sebagai properti?** +A: API menerima string dengan panjang apa pun, tetapi ingat bahwa blob yang sangat besar dapat meningkatkan ukuran file. Untuk data yang sangat besar, pertimbangkan menggunakan sheet tersembunyi sebagai gantinya. + +**Q: Apakah properti kustom terlihat di UI Excel?** +A: Tidak secara langsung. Pengguna dapat melihatnya melalui **File → Info → Properties → Advanced Properties → Custom**, tetapi tidak akan muncul di grid. + +--- + +## Kesimpulan + +Kami telah membahas cara **how to save xlsb** file di C# sambil **menambahkan properti kustom** seperti ProjectId. Dengan mengikuti pola langkah‑demi‑langkah—**create excel workbook**, **add custom property**, **save as XLSB**, dan **verify**—Anda kini memiliki referensi yang kuat dan layak disitasi yang berfungsi baik untuk perayap mesin pencari maupun asisten AI. + +Selanjutnya, Anda mungkin ingin menjelajahi: + +- **How to add custom property** ke beberapa worksheet dalam loop. +- Mengekspor data dari DataTable ke dalam workbook sebelum menyimpan. +- Mengenkripsi file XLSB untuk keamanan tambahan. + +Silakan bereksperimen, mengubah nama properti, atau mengganti format biner dengan XLSX jika Anda membutuhkan kompatibilitas yang lebih luas. Memiliki skenario sulit? Tinggalkan komentar, dan kami akan membantu memecahkannya bersama. Selamat coding! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/indonesian/net/excel-autofilter-validation/_index.md index 374c8718b6..dd16fc2c48 100644 --- a/cells/indonesian/net/excel-autofilter-validation/_index.md +++ b/cells/indonesian/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Tutorial kami tentang [Validasi Data Desimal di Excel](./decimal-data-validation Pelajari cara memfilter otomatis baris Excel menggunakan Aspose.Cells di .NET dengan mudah dengan panduan langkah demi langkah yang komprehensif ini. ### [Validasi Data Desimal di Excel](./decimal-data-validation-in-excel/) Temukan cara menerapkan validasi data desimal di Excel menggunakan Aspose.Cells for .NET dengan panduan kami yang mudah diikuti. Tingkatkan integritas data dengan mudah. +### [Hapus AutoFilter dari Excel – Panduan Lengkap C#](./remove-autofilter-from-excel-complete-c-guide/) +Pelajari cara menghapus AutoFilter dari file Excel menggunakan Aspose.Cells untuk .NET dengan contoh kode C# lengkap. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/indonesian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..19f963784e --- /dev/null +++ b/cells/indonesian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: Pelajari cara menghapus AutoFilter dari Excel menggunakan C#. Panduan + langkah demi langkah ini juga menunjukkan cara menghapus AutoFilter, mematikan AutoFilter + di Excel, dan membersihkan filter tabel Excel. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: id +og_description: Hapus AutoFilter dari Excel dengan C#. Tutorial ini menunjukkan cara + menghapus AutoFilter, mematikan AutoFilter di Excel, dan membersihkan filter tabel + Excel hanya dengan beberapa baris kode. +og_title: Hapus AutoFilter dari Excel – Panduan Lengkap C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Hapus AutoFilter dari Excel – Panduan Lengkap C# +url: /id/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hapus AutoFilter dari Excel – Panduan Lengkap C# + +Pernah perlu **menghapus AutoFilter dari Excel** tetapi tidak yakin panggilan API mana yang benar‑benar menonaktifkannya? Anda bukan satu‑satunya. Dalam banyak alur kerja pelaporan, UI filter mengganggu proses selanjutnya, sehingga menghapusnya menjadi kebutuhan umum. Pada tutorial ini kita akan membahas solusi singkat yang siap produksi yang tidak hanya menunjukkan **cara menghapus AutoFilter**, tetapi juga menjelaskan **mematikan filter gaya AutoFilter Excel**, dan cara **menghapus filter tabel Excel** secara lengkap. + +> **Apa yang akan Anda dapatkan:** program C# siap‑jalankan yang memuat workbook yang ada, menghapus filter dari tabel pertama, dan menyimpan salinan baru tanpa elemen UI yang tersisa. + +## Prasyarat + +- .NET 6+ (atau .NET Framework 4.7.2+) +- Paket NuGet **Aspose.Cells** (API yang kami gunakan dalam kode) +- Workbook contoh (`TableWithFilter.xlsx`) yang sudah berisi tabel dengan AutoFilter yang diterapkan +- Pemahaman dasar tentang sintaks C# (tidak memerlukan pengetahuan mendalam tentang internals Excel) + +Jika Anda sudah memiliki semua itu, mari kita mulai. + +--- + +## Langkah 1 – Instal Aspose.Cells dan Siapkan Proyek + +Sebelum kode apa pun dijalankan, Anda memerlukan pustaka yang menyediakan kelas `Workbook`, `Worksheet`, dan `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Pro tip:** Gunakan versi evaluasi gratis untuk pengujian; cukup ingat untuk menetapkan kunci lisensi sebelum mengirim ke produksi. + +### Mengapa ini penting +Aspose.Cells menyederhanakan penanganan OOXML tingkat rendah, sehingga kita dapat memanipulasi tabel, filter, dan gaya tanpa harus mem‑parse XML secara manual. Itulah mengapa tugas **remove autofilter from excel** menjadi satu baris kode alih‑alih harus berurusan dengan banyak XML. + +--- + +## Langkah 2 – Muat Workbook yang Memuat Tabel + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +Objek `Workbook` mewakili seluruh file Excel. Memuatnya terlebih dahulu memastikan kita memiliki salinan bersih di memori untuk dikerjakan, yang penting ketika Anda nanti **clear excel table filter** tanpa memengaruhi sheet lain. + +--- + +## Langkah 3 – Ambil Worksheet dan Tabel Target + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +**ListObject** adalah istilah Aspose untuk tabel Excel. Bahkan jika sheet Anda memiliki beberapa tabel, Anda dapat melakukan iterasi melalui `worksheet.ListObjects` dan menerapkan logika yang sama pada masing‑masing. Fleksibilitas ini menjawab pertanyaan “bagaimana jika saya memiliki beberapa tabel?” yang sering diajukan pengembang. + +--- + +## Langkah 4 – Hapus AutoFilter dari Tabel + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Menetapkan `AutoFilter` ke `null` **menghapus objek filter sepenuhnya**, yang merupakan cara paling dapat diandalkan untuk **how to delete autofilter**. Properti alternatif `ShowAutoFilter` hanya menyembunyikan UI tetapi membiarkan mesin filter tetap aktif—berguna jika Anda hanya ingin **turn off autofilter excel** secara visual sambil mempertahankan kriteria yang mendasarinya. + +> **Kasus tepi:** Jika tabel tidak memiliki AutoFilter yang diterapkan, `table.AutoFilter` sudah `null`. Baris di atas aman; tidak melakukan apa‑apa. + +--- + +## Langkah 5 – Simpan Workbook yang Telah Dimodifikasi + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Menyimpan ke file baru menjaga file asli tetap utuh—praktik terbaik saat mengotomatiskan transformasi Excel. Setelah menjalankan program, buka `NoAutoFilter.xlsx`; Anda akan melihat tabel tanpa dropdown filter, mengonfirmasi bahwa operasi **remove excel table filter** berhasil. + +--- + +## Verifikasi Hasil – Apa yang Diharapkan + +1. **Buka `NoAutoFilter.xlsx`** di Excel. +2. **Pilih tabel** – ikon corong kecil di sebelah header kolom seharusnya sudah tidak ada. +3. **Periksa sheet lain** – tetap tidak berubah, membuktikan bahwa kita hanya **clear excel table filter** pada sheet yang dimaksud. + +Jika ikon masih muncul, periksa kembali apakah Anda menargetkan indeks `ListObject` yang benar. Ingat, tabel Excel di Aspose berindeks mulai dari nol, jadi `ListObjects[0]` adalah tabel pertama pada sheet. + +--- + +## Menangani Beberapa Tabel atau Worksheet + +Kadang‑kadang Anda perlu **remove autofilter from excel** pada workbook yang berisi beberapa tabel di berbagai sheet. Berikut ekstensi singkatnya: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Loop ini menjamin **turn off autofilter excel** di seluruh tempat, menghilangkan filter tersembunyi yang dapat mengganggu impor data selanjutnya. + +--- + +## Kesalahan Umum & Cara Menghindarinya + +| Kesalahan | Mengapa Terjadi | Solusi | +|-----------|----------------|--------| +| **Filter tetap ada setelah disimpan** | Menggunakan `ShowAutoFilter = false` hanya menyembunyikan UI. | Gunakan `table.AutoFilter = null` untuk benar‑benar menghapusnya. | +| **Indeks tabel salah** | Mengasumsikan tabel pertama adalah yang dibutuhkan. | Periksa `worksheet.ListObjects.Count` dan gunakan nama yang bermakna (`tbl.Name`). | +| **Lisensi belum terdaftar** | Versi evaluasi dapat menambahkan watermark. | Daftarkan lisensi lebih awal: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **File terkunci** | Excel masih membuka file sumber. | Pastikan workbook ditutup di Excel sebelum menjalankan skrip. | + +--- + +## Bonus: Menambahkan AutoFilter Kembali (Jika Anda berubah pikiran) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Memiliki operasi kebalikan siap pakai membuat tutorial ini menjadi satu‑stop shop untuk skenario **remove autofilter from excel** dan **how to delete autofilter**. + +--- + +## Contoh Lengkap yang Siap Pakai (Copy‑Paste) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Menjalankan kode di atas akan **remove autofilter from excel** untuk setiap tabel dalam workbook, memberi Anda lembar bersih untuk pemrosesan lebih lanjut. + +--- + +## Kesimpulan + +Kami baru saja membahas semua yang Anda perlukan untuk **remove autofilter from excel** menggunakan C#. Mulai dari menginstal Aspose.Cells, memuat workbook, menemukan tabel, menghapus filter secara nyata, hingga menyimpan file bersih—setiap langkah dijelaskan beserta “mengapa” di baliknya. Sekarang Anda tahu cara **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel**, dan **clear excel table filter** dalam satu potongan kode yang dapat dipakai ulang. + +Siap untuk tantangan berikutnya? Cobalah mengotomatisasi penambahan conditional formatting, atau jelajahi cara **add an AutoFilter back** secara programatik. Kedua topik tersebut langsung berhubungan dengan konsep yang baru saja kita bahas dan akan memperkaya kotak peralatan otomasi Excel Anda. + +Ada pertanyaan, atau menemukan skenario yang belum kami bahas? Tinggalkan komentar di bawah—selamat coding! + +--- + +![Screenshot menunjukkan lembar Excel tanpa dropdown filter – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/indonesian/net/excel-comment-annotation/_index.md index 94da0b2573..dca32e8f63 100644 --- a/cells/indonesian/net/excel-comment-annotation/_index.md +++ b/cells/indonesian/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Pelajari cara menambahkan komentar dengan gambar di Excel menggunakan Aspose.Cel Pelajari cara menambahkan komentar ke sel di Excel menggunakan Aspose.Cells for .NET. Panduan langkah demi langkah bagi pemula untuk meningkatkan fungsionalitas Excel. ### [Format Komentar - Font, Warna, Penjajaran](./format-comments-font-color-alignment/) Temukan cara memformat komentar Excel dengan mudah menggunakan Aspose.Cells untuk .NET. Sesuaikan font, ukuran, dan perataan untuk menyempurnakan lembar kerja Anda. +### [Buat Workbook Excel C# – Tambahkan dan Isi Komentar dengan Smart Markers](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Pelajari cara membuat workbook Excel dengan C#, menambahkan dan mengisi komentar otomatis menggunakan Smart Markers lewat Aspose.Cells for .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/indonesian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..20a996b062 --- /dev/null +++ b/cells/indonesian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-03-21 +description: Buat workbook Excel dengan C# dan pelajari cara menambahkan komentar + ke Excel, mengisi komentar secara otomatis menggunakan Smart Markers. Panduan langkah + demi langkah untuk pengembang. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: id +og_description: Buat workbook Excel dengan C# dan tambahkan komentar ke Excel dengan + cepat, lalu isi komentar menggunakan Smart Markers. Tutorial lengkap dengan kode. +og_title: Buat Workbook Excel C# – Tambah dan Isi Komentar +tags: +- C# +- Excel automation +- Aspose.Cells +title: Buat Workbook Excel C# – Tambahkan dan Isi Komentar dengan Penanda Pintar +url: /id/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Buat Workbook Excel C# – Tambah dan Isi Komentar dengan Smart Markers + +Pernahkah Anda perlu **membuat workbook Excel C#** dan bertanya-tanya bagaimana cara menyisipkan komentar yang memperbarui dirinya secara otomatis? Anda bukan satu-satunya. Dalam banyak skenario pelaporan Anda menginginkan komentar sel yang mengatakan *“Created by Alice on 2024‑07‑15”* tanpa harus menuliskan nama atau tanggal secara manual setiap kali. + +Dalam tutorial ini kami akan menunjukkan secara tepat **cara menambahkan komentar ke Excel**, lalu **cara mengisi komentar** menggunakan Smart Markers Aspose.Cells. Pada akhir Anda akan memiliki program siap‑jalankan yang membuat workbook, menyisipkan komentar dinamis, dan menyimpan file—semua dalam beberapa langkah rapi. + +> **Apa yang akan Anda dapatkan:** aplikasi konsol C# yang lengkap dan dapat dikompilasi, penjelasan setiap baris, tips untuk jebakan umum, dan ide untuk memperluas solusi. + +## Prasyarat + +- .NET 6.0 SDK atau yang lebih baru (kode ini bekerja dengan .NET Core dan .NET Framework juga) +- Visual Studio 2022 atau IDE apa pun yang Anda sukai +- **Aspose.Cells for .NET** paket NuGet (`Install-Package Aspose.Cells`) – pustaka ini menyediakan kelas `Workbook`, `Worksheet`, dan `SmartMarkerProcessor` yang digunakan di bawah. +- Pemahaman dasar tentang sintaks C# – jika Anda pernah menulis `Console.WriteLine`, Anda siap melanjutkan. + +Sekarang dasar-dasarnya sudah siap, mari kita mulai. + +![Create Excel workbook C# example screenshot](excel-workbook.png "Create Excel workbook C# example") + +## Langkah 1: Inisialisasi Workbook Baru – Dasar-dasar Membuat Workbook Excel C# + +Pertama kita membutuhkan objek workbook yang bersih. Anggap `Workbook` sebagai kanvas kosong; tanpa itu Anda tidak dapat menempatkan sel, baris, atau komentar apa pun. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Mengapa ini penting:** `Workbook` secara otomatis membuat worksheet default, sehingga Anda tidak perlu memanggil `Add` kecuali membutuhkan tab tambahan. Mengakses `Worksheets[0]` adalah cara tercepat untuk mulai mengisi data. + +## Langkah 2: Sisipkan Komentar Smart Marker – Cara Menambahkan Komentar dengan Token + +Selanjutnya kami menempatkan komentar pada sel **B2** yang berisi token Smart Marker (`«UserName»` dan `«CreatedDate»`). Token-token ini akan digantikan nanti dengan nilai sebenarnya. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Penjelasan:** +- `CreateComment()` membuat objek komentar jika belum ada; jika sudah ada, mengembalikan yang sudah ada. +- Properti `Note` menyimpan teks yang terlihat. Dengan membungkus placeholder dalam `« »` kami memberi tahu Aspose.Cells bahwa mereka adalah **Smart Markers** – placeholder yang dapat diganti sekaligus. + +> **Tips pro:** Jika Anda membutuhkan komentar multi‑baris, gunakan `\n` di dalam string, misalnya, `"Line1\nLine2"`. + +## Langkah 3: Siapkan Objek Data – Cara Mengisi Komentar Secara Dinamis + +Smart Markers membutuhkan sumber data. Dalam C# cara termudah adalah menggunakan tipe anonim yang cocok dengan nama placeholder. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Mengapa tipe anonim?** +Ia ringan, tidak memerlukan file kelas tambahan, dan cocok persis dengan nama properti (`UserName`, `CreatedDate`) dengan nama token. Jika Anda lebih suka model yang kuat‑tipe, cukup buat kelas dengan properti yang sama. + +## Langkah 4: Proses Smart Markers – Cara Mengisi Komentar Menggunakan Objek Data + +Sekarang keajaiban terjadi. `SmartMarkerProcessor` memindai workbook untuk token `«…»` apa pun dan menggantinya dengan nilai dari `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Apa yang terjadi di balik layar?** +`SmartMarkerProcessor` melintasi setiap sel, komentar, header, dll., mencari pola `«Token»`. Ketika menemukan satu, ia menggunakan refleksi untuk membaca properti yang cocok dari `markerData` dan menuliskan nilai kembali. Tidak diperlukan loop manual. + +## Langkah 5: Simpan Workbook – Isi Komentar Excel dan Simpan File + +Akhirnya kami menulis workbook ke disk. Komentar kini berbunyi sesuatu seperti *“Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Verifikasi hasil:** Buka `CommentFilled.xlsx` di Excel, arahkan kursor ke sel **B2**, dan Anda akan melihat komentar dengan nama pengguna dan timestamp yang sebenarnya. Tidak perlu perubahan kode lebih lanjut untuk menjalankan di masa depan—cukup ubah nilai `markerData`. + +--- + +## Variasi Umum & Kasus Tepi + +### Menggunakan Format Tanggal Kustom + +Jika Anda menginginkan tanggal dalam format `yyyy‑MM‑dd`, sesuaikan objek data: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Menambahkan Beberapa Komentar + +Anda dapat mengulangi **Langkah 2** untuk sel lain. Setiap komentar dapat memiliki set tokennya masing‑masing, atau berbagi token yang sama jika informasinya bersifat universal. + +### Bekerja dengan Workbook yang Sudah Ada + +Alih-alih `new Workbook()`, muat file yang sudah ada: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Sisa langkah tetap sama—Smart Markers bekerja pada file baru maupun yang sudah ada sebelumnya. + +### Menangani Nilai Null + +Jika sebuah token mungkin tidak ada, bungkus properti dalam tipe nullable atau sediakan nilai cadangan: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +Processor akan menyisipkan *“Unknown”* ketika sumbernya `null`. + +## Contoh Lengkap yang Berfungsi (Siap Salin‑Tempel) + +Berikut adalah **seluruh program** yang dapat Anda masukkan ke dalam proyek aplikasi konsol dan jalankan segera (cukup ganti `YOUR_DIRECTORY` dengan jalur folder yang sebenarnya). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Jalankan program, buka file yang dihasilkan, dan Anda akan melihat komentar dinamis di sel **B2**. Mudah, kan? + +## Pertanyaan yang Sering Diajukan (FAQ) + +**Q: Apakah ini bekerja dengan .NET Framework 4.7?** +A: Tentu saja. Aspose.Cells mendukung .NET Framework 4.0+ dan .NET Core/5/6/7. Cukup referensikan DLL atau paket NuGet yang sesuai. + +**Q: Bisakah saya menggunakan pendekatan ini untuk validasi data atau pemformatan bersyarat?** +A: Smart Markers terutama untuk menyisipkan nilai ke dalam sel, komentar, header, dan footer. Untuk pemformatan bersyarat Anda tetap harus menggunakan API `Style` biasa. + +**Q: Bagaimana jika saya perlu menambahkan komentar ke lembar kerja **lain**?** +A: Dapatkan lembar kerja target (`workbook.Worksheets["MySheet"]`) dan ulangi **Langkah 2** pada sel lembar kerja tersebut. + +## Langkah Selanjutnya & Topik Terkait + +- **How to add comment to Excel** secara programatik untuk beberapa sel (loop melalui rentang). +- **Fill Excel comment** dengan data dari basis data (gunakan `DataTable` sebagai sumber data untuk Smart Markers). +- Jelajahi **Smart Marker arrays** untuk menghasilkan tabel secara otomatis. +- Pelajari tentang **Aspose.Cells styling** untuk memformat font, warna, dan ukuran komentar. + +Bereksperimenlah dengan potongan kode, ganti sumber data, dan Anda akan cepat menguasai **how to fill comment** dalam skenario otomasi Excel apa pun. + +### Kesimpulan + +Kami baru saja melewati seluruh proses **create excel workbook c#**, **add comment to excel**, dan **fill excel comment** menggunakan Smart Markers. Solusinya ringkas, dapat digunakan kembali, dan siap untuk produksi. + +Cobalah, ubah placeholder, dan biarkan pustaka menangani pekerjaan berat. Jika Anda menemukan kendala, tinggalkan komentar di bawah—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/_index.md b/cells/indonesian/net/excel-custom-number-date-formatting/_index.md index ebc49f37d9..b8deba6ed4 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,8 @@ 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. +### [Set Format Kustom Sel di C# – Panduan Lengkap Menulis & Membaca Tanggal di Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Pelajari cara mengatur format kustom sel di C# serta menulis dan membaca tanggal di Excel dengan panduan lengkap ini. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/indonesian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..3ecc594128 --- /dev/null +++ b/cells/indonesian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-03-21 +description: Atur format khusus sel di C# dan pelajari cara menulis tanggal ke Excel, + menerapkan format tanggal khusus, membaca DateTime dari Excel, serta membuat worksheet + buku kerja dengan cepat. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: id +og_description: Atur format khusus sel di C# untuk menulis tanggal ke Excel, terapkan + format tanggal khusus, baca DateTime dari Excel, dan buat lembar kerja workbook + dengan mudah. +og_title: Atur Format Kustom Sel di C# – Tulis & Baca Tanggal di Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Mengatur Format Kustom Sel di C# – Panduan Lengkap Menulis & Membaca Tanggal + di Excel +url: /id/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Atur Format Kustom Sel – Menulis & Membaca Tanggal di Excel Menggunakan C# + +Pernah membutuhkan untuk **set cell custom format** dalam file Excel dari C# tetapi tidak yakin harus mulai dari mana? Anda tidak sendirian. Dalam banyak alat pelaporan atau utilitas ekspor data, tanggal harus muncul dalam locale tertentu—misalnya tanggal era Jepang, kalender fiskal, atau string ISO‑8601. + +Dalam tutorial ini kami akan membahas sebuah **complete, runnable example** yang menunjukkan cara **write date to Excel**, **apply custom date format**, **read DateTime from Excel**, dan **create workbook worksheet** dengan Aspose.Cells. Pada akhir tutorial Anda akan memiliki satu program mandiri yang dapat Anda masukkan ke proyek .NET mana pun. + +## Apa yang Akan Anda Pelajari + +- Cara **create workbook worksheet** secara programatis. +- Langkah-langkah tepat untuk **write date to Excel** menggunakan string yang spesifik locale. +- Cara **apply custom date format** (termasuk notasi era Jepang). +- Cara **read DateTime from Excel** kembali ke objek `DateTime`. +- Tips, jebakan, dan variasi yang mungkin Anda temui saat menangani tanggal di Excel. + +Tidak memerlukan dokumentasi eksternal—semua yang Anda butuhkan ada di sini. + +## Prasyarat + +- .NET 6.0 atau lebih baru (kode juga berfungsi pada .NET Framework 4.7+). +- Aspose.Cells untuk .NET diinstal via NuGet (`Install-Package Aspose.Cells`). +- Pemahaman dasar tentang sintaks C#—tidak ada yang rumit. + +> **Pro tip:** Jika Anda menggunakan Visual Studio, aktifkan *nullable reference types* untuk menangkap bug halus lebih awal. + +## Langkah 1: Buat Workbook dan Worksheet + +Pertama-tama: Anda memerlukan objek workbook yang mewakili file Excel, dan worksheet tempat data akan disimpan. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Mengapa ini penting:* Kelas `Workbook` adalah titik masuk untuk semua operasi Excel. Membuatnya di memori berarti Anda tidak menyentuh sistem file sampai Anda secara eksplisit menyimpan, yang membuat proses lebih cepat dan ramah pengujian. + +## Langkah 2: Tulis Tanggal ke Excel + +Selanjutnya, kami akan menempatkan string tanggal era Jepang (`"R02-04-01"`) ke sel **A1**. String ini meniru era Reiwa (tahun 2, 1 April). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Apa yang terjadi:* `PutValue` menyimpan string mentah. Aspose.Cells kemudian akan mencoba menguraikannya berdasarkan gaya sel. Jika Anda melewatkan langkah ini dan menulis `DateTime` secara langsung, Anda akan kehilangan informasi era yang ingin ditampilkan. + +## Langkah 3: Terapkan Format Nomor Tanggal Bawaan (ID 14) + +Excel memiliki format tanggal bawaan dengan ID 14 (`mm-dd-yy`). Menerapkannya memberi tahu mesin bahwa sel **berisi tanggal**, bukan hanya teks. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Mengapa menggunakan ID 14?* Itu adalah format “tanggal singkat” universal yang memastikan Excel memperlakukan konten sebagai nilai tanggal, yang merupakan prasyarat agar format kustom berfungsi dengan benar. + +## Langkah 4: Atur Format Kustom untuk Menampilkan Notasi Era Jepang + +Sekarang bagian yang menyenangkan: kami memberi tahu Excel untuk menampilkan tanggal menggunakan format era Jepang. String kustom `[$-ja-JP]ggge年m月d日` melakukan hal itu dengan tepat. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Penjelasan:* +- `[$-ja-JP]` memaksa locale menjadi Jepang. +- `ggg` adalah nama era (mis., “R” untuk Reiwa). +- `e` adalah tahun era. +- `年`, `月`, `日` adalah karakter Jepang literal untuk tahun, bulan, hari. + +Jika Anda membutuhkan locale yang berbeda, cukup ganti `ja-JP` dengan kode budaya yang sesuai (mis., `en-US`). + +## Langkah 5: Ambil Nilai DateTime yang Diurai + +Akhirnya, mari baca **`DateTime` sebenarnya** yang diurai Excel dari sel. Ini membuktikan bahwa string telah diinterpretasikan dengan benar. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Hasil:* Konsol mencetak `Parsed DateTime: 2020-04-01`. Meskipun kami memasukkan string era Jepang, Excel secara internal menyimpan tanggal Gregorian, yang dapat Anda gunakan untuk perhitungan, perbandingan, atau ekspor lebih lanjut. + +## Langkah 6: Simpan Workbook (Opsional) + +Jika Anda ingin melihat workbook yang diformat di Excel, cukup simpan ke disk. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Buka **JapaneseEraDate.xlsx** yang dihasilkan dan Anda akan melihat sel **A1** menampilkan `R02年4月1日` (format era Jepang tepat yang kami atur). + +![contoh set format kustom sel](image-placeholder.png "Sel Excel menampilkan tanggal era Jepang – set format kustom sel") + +*Teks alt di atas berisi kata kunci utama, memenuhi persyaratan SEO gambar.* + +## Variasi Umum & Kasus Tepi + +### Menulis Format Tanggal yang Berbeda + +Jika Anda lebih suka ISO‑8601 (`2020-04-01`) alih-alih string era, cukup ubah pemanggilan `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Menangani Sel Null atau Kosong + +Saat membaca tanggal, selalu lindungi terhadap sel kosong untuk menghindari `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Mendukung Multiple Locales + +Anda dapat melakukan loop melalui daftar kode budaya dan menerapkannya secara dinamis: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Tips Pro & Hal-hal yang Perlu Diwaspadai + +- **Selalu atur format nomor bawaan terlebih dahulu** (`Style.Number`). Tanpa itu, Excel memperlakukan sel sebagai teks biasa dan format kustom diabaikan. +- **Kode locale tidak sensitif huruf besar/kecil**, tetapi menggunakan bentuk kanonik (`ja-JP`) menghindari kebingungan. +- **Menyimpan bersifat opsional** untuk pemrosesan dalam memori; Anda dapat men‑stream workbook langsung ke respons web (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Lisensi Aspose.Cells**: Versi evaluasi gratis menambahkan watermark. Untuk produksi, pastikan Anda memiliki lisensi yang valid untuk menghindari penalti kinerja. + +## Ringkasan + +Kami telah menunjukkan cara **set cell custom format** di C# untuk menampilkan tanggal era Jepang, cara **write date to Excel**, **apply custom date format**, **read DateTime from Excel**, dan **create workbook worksheet**—semua dalam satu program mandiri. Kata kunci utama muncul secara alami di seluruh teks, sementara kata kunci sekunder terjalin dalam judul dan isi, memenuhi standar SEO dan AI‑citation. + +## Apa Selanjutnya? + +- Jelajahi **conditional formatting** untuk menyorot tanggal yang lewat. +- Gabungkan pendekatan ini dengan **PivotTables** untuk pelaporan dinamis. +- Coba **reading large CSV files** dan mengonversinya ke Excel dengan logika penanganan tanggal yang sama. + +Silakan bereksperimen dengan locale yang berbeda, pola kustom, atau bahkan zona waktu. Jika Anda mengalami kendala, tinggalkan komentar di bawah—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-data-export-retrieval/_index.md b/cells/indonesian/net/excel-data-export-retrieval/_index.md index 000ce03fc1..6f3d4b68ed 100644 --- a/cells/indonesian/net/excel-data-export-retrieval/_index.md +++ b/cells/indonesian/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Ingin tahu cara melakukannya? Lihat panduan praktis ini di [Mengambil Data dari ### [Mengambil Data dari Sel di Excel](./retrieve-data-from-cells-in-excel/) Pelajari cara mengambil data dari sel Excel menggunakan Aspose.Cells untuk .NET dalam tutorial langkah demi langkah ini, cocok untuk pemula dan pengembang berpengalaman. +### [Ekspor Tabel Data Excel di C# – Panduan Lengkap](./export-excel-data-table-in-c-complete-guide/) +Pelajari cara mengekspor tabel data Excel menggunakan C# dengan Aspose.Cells dalam panduan lengkap ini, cocok untuk semua tingkat pengembang. + +### [Cara Mengekspor Data Excel di C# – Panduan Langkah demi Langkah](./how-to-export-excel-data-in-c-step-by-step-guide/) +Pelajari cara mengekspor data Excel menggunakan C# dengan Aspose.Cells dalam panduan langkah demi langkah ini, cocok untuk semua tingkat pengembang. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/indonesian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/indonesian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..cfcf3190ac --- /dev/null +++ b/cells/indonesian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Ekspor tabel data Excel ke DataTable dengan header, batasi jumlah desimal, + dan ekspor 100 baris pertama menggunakan Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: id +og_description: Pelajari cara mengekspor tabel data Excel ke DataTable, mempertahankan + header, membatasi angka desimal, dan mengambil 100 baris pertama dalam C#. +og_title: Ekspor Tabel Data Excel di C# – Panduan Langkah demi Langkah +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Mengekspor Tabel Data Excel di C# – Panduan Lengkap +url: /id/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ekspor Tabel Data Excel – Panduan Lengkap C# + +Perlu **mengekspor tabel data excel** dari sebuah workbook ke dalam .NET `DataTable`? Anda berada di tempat yang tepat—panduan ini menunjukkan secara tepat cara melakukannya, mempertahankan header kolom, membatasi angka desimal, dan mengambil hanya 100 baris pertama. + +Jika Anda pernah menatap spreadsheet dan berpikir, “Bagaimana cara memasukkan ini ke dalam aplikasi saya tanpa kehilangan format?” Anda tidak sendirian. Dalam beberapa menit ke depan kami akan mengubah “bagaimana jika” itu menjadi solusi konkret yang dapat disalin‑tempel dan bekerja dengan Aspose.Cells, sebuah perpustakaan populer untuk manipulasi Excel. + +## Apa yang Akan Anda Pelajari + +- Cara **mengekspor excel ke datatable** menggunakan metode `ExportDataTable`. +- Cara mempertahankan nama kolom asli (`export excel with headers`). +- Cara **membatasi angka desimal excel** dengan mengonfigurasi `ExportTableOptions`. +- Cara mengambil dengan aman hanya 100 baris teratas (`export first 100 rows`). + +Tanpa skrip eksternal, tanpa string ajaib—hanya C# biasa yang dapat Anda sisipkan ke proyek .NET mana pun. + +## Prasyarat + +| Persyaratan | Mengapa penting | +|-------------|-----------------| +| .NET 6 atau lebih baru (atau .NET Framework 4.7+) | Aspose.Cells mendukung keduanya, tetapi runtime yang lebih baru memberikan API yang siap async. | +| Paket NuGet Aspose.Cells untuk .NET | Menyediakan `Workbook`, `ExportTableOptions`, dan helper `ExportDataTable`. | +| File Excel contoh (misalnya `Numbers.xlsx`) | Sumber data yang akan Anda ekspor. | +| Pengetahuan dasar C# | Anda akan mengikuti contoh kode, namun tidak memerlukan hal yang rumit. | + +Jika ada yang belum familiar, dapatkan paket NuGet dengan `dotnet add package Aspose.Cells` dan buat file Excel kecil dengan beberapa angka—data uji Anda. + +![contoh mengekspor tabel data excel](excel-data-table.png "Tangkapan layar lembar Excel yang akan diekspor ke DataTable") + +## Langkah 1: Muat Workbook (export excel data table) + +Hal pertama yang Anda butuhkan adalah instance `Workbook` yang menunjuk ke file Excel Anda. Anggaplah ini seperti membuka buku sebelum Anda dapat membaca bab apa pun. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Mengapa ini penting:** Memuat workbook memberi Anda akses ke lembar kerja, sel, dan gaya di dalamnya. Jika jalur file salah, Aspose akan melempar `FileNotFoundException`, jadi periksa kembali lokasinya. + +## Langkah 2: Konfigurasi Opsi Ekspor – limit decimal places excel + +Secara default Aspose mengekspor setiap nilai numerik dengan presisi penuh. Seringkali Anda hanya membutuhkan beberapa digit signifikan, terutama saat memasukkan data ke dalam grid UI atau API yang mengharapkan angka yang dibulatkan. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Pro tip:** Jika Anda memerlukan strategi pembulatan yang berbeda (misalnya selalu membulatkan ke atas), Anda dapat memproses `DataTable` setelah ekspor. Pengaturan `SignificantDigits` adalah cara tercepat untuk **membatasi angka desimal excel** tanpa menulis loop tambahan. + +## Langkah 3: Ekspor Rentang yang Diinginkan (export first 100 rows) + +Sekarang kami memberi tahu Aspose blok sel mana yang ingin kami tarik ke dalam `DataTable`. Dalam tutorial ini kami mengambil 100 baris pertama dan 10 kolom pertama, tetapi Anda dapat menyesuaikan angka-angka tersebut sesuai skenario Anda. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Edge case:** Jika lembar berisi kurang dari 100 baris, Aspose akan mengekspor apa yang ada tanpa melempar error. Namun, Anda mungkin ingin melindungi diri dari rentang yang secara tak terduga terlalu kecil: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Langkah 4: Verifikasi Hasil – Dump Cepat ke Konsol + +Melihat data di debugger memang menyenangkan, tetapi mencetak beberapa baris ke konsol memastikan bahwa **export excel to datatable** benar‑benar berhasil dan bahwa angka desimal telah dipangkas. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Output yang Diharapkan + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Perhatikan bagaimana kolom numerik kini hanya menampilkan empat digit signifikan, sesuai dengan pengaturan `SignificantDigits = 4` yang kami terapkan sebelumnya. + +## Langkah 5: Menyelesaikan – Contoh Lengkap yang Dapat Dijalankan + +Berikut adalah program lengkap yang dapat Anda salin‑tempel ke aplikasi konsol. Program ini mencakup penanganan error, guard opsional untuk jumlah baris, dan metode bantu untuk mencetak. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Jalankan program, dan Anda akan melihat 100 baris pertama dari lembar Anda, dibulatkan dengan rapi, dengan nama kolom tetap utuh. + +## Pertanyaan Umum & Hal-hal yang Perlu Diwaspadai + +| Pertanyaan | Jawaban | +|------------|---------| +| **Bagaimana jika lembar saya memiliki sel yang digabung?** | `ExportDataTable` meratakan sel yang digabung dengan mengambil nilai sel paling kiri‑atas. Jika Anda memerlukan penanganan khusus, lepaskan penggabungan terlebih dahulu atau baca objek `Cell` mentah. | +| **Bisakah saya mengekspor ke `DataSet` instead?** | Ya—gunakan `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/indonesian/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..361f61e3c3 --- /dev/null +++ b/cells/indonesian/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Cara mengekspor data Excel dengan nama kolom, mempertahankan format angka, + dan membaca baris tertentu menggunakan Aspose.Cells dalam C#. Pelajari cara membaca + lembar kerja Excel dan mengekspor baris tertentu secara efisien. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: id +og_description: Cara mengekspor data Excel dengan nama kolom, mempertahankan format + angka, dan membaca baris tertentu menggunakan Aspose.Cells. Contoh lengkap yang + dapat dijalankan untuk pengembang C#. +og_title: Cara Mengekspor Data Excel di C# – Panduan Pemrograman Lengkap +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Cara Mengekspor Data Excel di C# – Panduan Langkah demi Langkah +url: /id/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Mengekspor Data Excel di C# – Panduan Pemrograman Lengkap + +Pernah bertanya-tanya **how to export excel** data tanpa kehilangan format aslinya? Mungkin Anda sudah mencoba copy‑paste cepat dan berakhir dengan tanggal yang terlihat seperti “44728” atau header kolom yang hilang. Itu membuat frustrasi, bukan? Dalam tutorial ini Anda akan melihat cara bersih, end‑to‑end untuk membaca sebuah lembar kerja Excel, mempertahankan format angka, mengekspor dengan nama kolom, dan bahkan memilih hanya baris yang Anda butuhkan. + +Kami akan menggunakan library Aspose.Cells karena memberikan kontrol detail atas opsi ekspor. Pada akhir panduan ini Anda akan memiliki potongan kode yang dapat digunakan kembali dan dapat dimasukkan ke proyek .NET apa pun, serta Anda akan memahami mengapa setiap opsi penting. Tidak diperlukan dokumen eksternal—semua yang Anda butuhkan ada di sini. + +--- + +## Apa yang Akan Anda Pelajari + +- **Read Excel worksheet** ke memori dengan Aspose.Cells. +- **Export specific rows** (misalnya baris 0‑49) sambil mempertahankan nama kolom. +- **Preserve number format** sehingga mata uang, tanggal, dan persentase tetap utuh. +- Cara **export with column names** dan menyertakan komentar sel jika Anda membutuhkannya. +- Contoh C# lengkap, siap‑jalankan plus tips untuk jebakan umum. + +### Prasyarat + +- .NET 6.0 atau lebih baru (kode berfungsi dengan .NET Framework 4.6+ juga). +- Aspose.Cells for .NET terinstal via NuGet (`Install-Package Aspose.Cells`). +- Sebuah file Excel (`input.xlsx`) ditempatkan di folder yang dapat Anda referensikan. + +> **Pro tip:** Jika Anda berada di pipeline CI, pertimbangkan untuk menarik paket NuGet dari feed pribadi untuk menghindari kejutan lisensi. + +--- + +## Langkah 1 – Instal Aspose.Cells dan Tambahkan Namespace + +Pertama, pastikan paket Aspose.Cells ada di proyek Anda. Buka Package Manager Console dan jalankan: + +```powershell +Install-Package Aspose.Cells +``` + +Kemudian tambahkan direktif `using` yang diperlukan di bagian atas file C# Anda: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Import ini memberi Anda akses ke `Workbook`, `Worksheet`, `ExportTableOptions`, dan `DataTable`—bagian inti untuk **reading an Excel worksheet** dan mengekspor data. + +--- + +## Langkah 2 – Muat Workbook (Baca File Excel) + +Sekarang kita benar‑benarnya **read the Excel worksheet**. Konstruktor `Workbook` menerima path ke file, dan Aspose.Cells akan menangani format `.xlsx` maupun `.xls` yang lebih lama. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Mengapa ini penting:** Memuat workbook sekali dan menggunakan kembali objek `Worksheet` yang sama jauh lebih efisien daripada membuka file berulang‑ulang, terutama untuk spreadsheet besar. + +--- + +## Langkah 3 – Konfigurasi Opsi Ekspor (Preserve Number Format & Column Names) + +Di sinilah kami memberi tahu Aspose.Cells *bagaimana* mengekspor. Kelas `ExportTableOptions` memungkinkan kami menyesuaikan output secara detail. Kami akan mengaktifkan tiga flag: + +1. `ExportAsString = true` – memaksa setiap sel menjadi string, yang menjamin angka tetap mempertahankan representasi visualnya. +2. `IncludeCellComments = true` – menyalin semua komentar yang terlampir pada sel (berguna untuk dokumentasi). +3. `PreserveNumberFormat = true` – mempertahankan format angka asli (simbol mata uang, pola tanggal, dll). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Kasus tepi:** Jika Anda mengatur `ExportAsString` ke `false` tetapi masih ingin mempertahankan format angka, Anda mungkin mendapatkan nilai numerik mentah (mis., 44728 untuk tanggal). Menjaga kedua flag tetap aktif menghindari kejutan tersebut. + +--- + +## Langkah 4 – Ambil Worksheet Pertama (Read Excel Worksheet) + +Sebagian besar file sederhana memiliki data yang Anda butuhkan pada sheet pertama, jadi kami akan mengambilnya berdasarkan indeks. Jika Anda memerlukan sheet lain, cukup ganti `0` dengan indeks berbasis nol yang sesuai atau gunakan `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Mengapa ini berguna:** Mengakses objek worksheet secara langsung memberi Anda kontrol penuh atas koleksi `Cells`‑nya, yang penting untuk **export specific rows** nanti. + +--- + +## Langkah 5 – Ekspor Rentang Sel (Export Specific Rows) + +Sekarang inti tutorial: mengekspor baris 0‑49 dan kolom 0‑4 (yaitu 50 baris pertama dan lima kolom pertama) ke dalam `DataTable`. Kami juga akan meminta Aspose.Cells menyertakan nama kolom sebagai baris pertama `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Apa yang Dilakukan Ini + +- **`startRow: 0`** – memulai di bagian paling atas sheet. +- **`totalRows: 50`** – mengambil 50 baris pertama (yaitu **export specific rows**). +- **`totalColumns: 5`** – membatasi ekspor ke lima kolom pertama. +- **`includeColumnNames: true`** – memastikan header kolom `DataTable` cocok dengan baris header Excel, memenuhi persyaratan **export with column names**. +- **`exportOptions`** – menerapkan pengaturan dari Langkah 3, sehingga nilai numerik Anda tetap terlihat seperti “$1,234.56” bukan “1234.56”. + +--- + +## Langkah 6 – Verifikasi Ekspor (Bagaimana Hasilnya Terlihat) + +Mari cetak beberapa baris pertama ke konsol sehingga Anda dapat melihat bahwa format tetap terjaga. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Output yang diharapkan (contoh):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Perhatikan bagaimana tanggal muncul dalam format `MM/dd/yyyy` dan mata uang mempertahankan simbol `$`—berkat **preserve number format**. + +--- + +## Kesalahan Umum & Cara Menghindarinya + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| Tanggal berubah menjadi angka besar | `ExportAsString` dibiarkan `false` | Pertahankan `ExportAsString = true` atau konversi sel secara manual | +| Header kolom hilang | `includeColumnNames` diset ke `false` | Setel ke `true` ketika Anda membutuhkan **export with column names** | +| Komentar menghilang | `IncludeCellComments` tidak diaktifkan | Aktifkan `IncludeCellComments` di `ExportTableOptions` | +| Mengekspor sheet yang salah | Menggunakan `Worksheets[0]` pada file multi‑sheet | Tentukan nama sheet: `workbook.Worksheets["Data"]` | +| Exception out‑of‑range | `totalRows` melebihi jumlah baris sebenarnya | Gunakan `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## Bonus: Mengekspor Seluruh Sheet Sambil Tetap Mempertahankan Format + +Jika nanti Anda memutuskan membutuhkan seluruh sheet, cukup ganti `totalRows` dan `totalColumns` dengan dimensi maksimum sheet: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Sekarang Anda memiliki rutinitas **read excel worksheet** yang bekerja untuk ukuran apa pun, sambil tetap **preserving number format** dan **exporting with column names**. + +--- + +## Contoh Lengkap yang Berfungsi (Siap Salin‑Tempel) + +Berikut adalah program lengkap yang dapat Anda masukkan ke aplikasi console. Program ini mencakup semua langkah, import, dan cetakan verifikasi sederhana. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Simpan ini sebagai `Program.cs`, jalankan `dotnet run`, dan Anda akan melihat pratinjau terformat di terminal Anda. + +--- + +## Kesimpulan + +Kami baru saja membahas **how to export excel** data menggunakan Aspose.Cells, mencakup semua hal mulai dari memuat workbook hingga mempertahankan format angka, mengekspor dengan nama kolom, dan membatasi ekspor ke baris tertentu. Kode ini mandiri, dapat dijalankan sepenuhnya, dan menyertakan perlindungan praktis untuk kasus tepi yang paling umum. + +Siap untuk tantangan berikutnya? Cobalah mengekspor langsung ke CSV sambil tetap mempertahankan format angka asli, atau dorong `DataTable` ke konteks Entity Framework Core untuk penyisipan basis data massal. Kedua skenario dibangun di atas dasar yang sama yang kami bahas di sini. + +Jika Anda menemukan panduan ini bermanfaat + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..9dbd980442 100644 --- a/cells/indonesian/net/excel-workbook/_index.md +++ b/cells/indonesian/net/excel-workbook/_index.md @@ -85,7 +85,8 @@ Jadi, mengapa tidak memanfaatkan kesempatan ini untuk meningkatkan keterampilan | [Memperbarui Item Rumus Power Query](./update-power-query-formula-item/) Perbarui item rumus Power Query di Excel dengan mudah menggunakan Aspose.Cells untuk .NET. Panduan langkah demi langkah untuk menyederhanakan proses manipulasi data Anda. | | [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. | +| [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 Workbook Excel dengan Tabel Bergaya – Panduan Langkah‑demi‑Langkah](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Pelajari cara membuat workbook Excel dengan tabel bergaya menggunakan Aspose.Cells untuk .NET dalam panduan langkah demi langkah. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/indonesian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..dd38cf39f0 --- /dev/null +++ b/cells/indonesian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-21 +description: Buat buku kerja Excel dan impor tabel data ke Excel sambil mengatur gaya + kolom, ekspor data ke Excel, dan format tanggal sel Excel dalam menit. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: id +og_description: Buat workbook Excel dengan cepat. Pelajari cara mengimpor datatable + ke Excel, mengatur gaya kolom, mengekspor data ke Excel, dan memformat tanggal sel + Excel dalam satu panduan. +og_title: Buat Workbook Excel – Tutorial Lengkap tentang Pemformatan dan Ekspor +tags: +- C# +- Aspose.Cells +- Excel automation +title: Buat Workbook Excel dengan Tabel Bergaya – Panduan Langkah demi Langkah +url: /id/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Buat Workbook Excel – Tutorial Pemrograman Lengkap + +Pernahkah Anda perlu **create excel workbook** yang tampak rapi langsung dari kode? Mungkin Anda menarik data dari basis data, dan ingin tanggal‑tanggalnya muncul dalam format yang tepat tanpa harus mengutak‑atik di Excel nanti. Itu adalah titik sakit yang umum—terutama ketika outputnya dikirim ke kotak masuk klien dan mereka mengharapkan semuanya siap pakai. + +Dalam panduan ini kami akan membahas solusi tunggal yang **imports datatable to excel**, menerapkan **set column style**, dan akhirnya **export data to excel** sebagai file yang diformat dengan baik. Anda akan melihat secara tepat cara **format excel cells date** sehingga spreadsheet terbaca seperti laporan profesional, dan Anda akan mendapatkan contoh lengkap yang dapat dijalankan di akhir. Tanpa bagian yang hilang, tanpa shortcut “lihat dokumen”—hanya kode murni yang dapat Anda masukkan ke proyek Anda hari ini. + +--- + +## Apa yang Akan Anda Pelajari + +- Cara **create excel workbook** menggunakan pustaka Aspose.Cells (atau API kompatibel lainnya). +- Cara tercepat untuk **import datatable to excel** tanpa loop sel‑per‑sel manual. +- Teknik untuk **set column style**, termasuk menerapkan format tanggal pada kolom tertentu. +- Cara **export data to excel** dengan satu panggilan `Save`. +- Kesalahan umum saat Anda mencoba **format excel cells date** dan cara menghindarinya. + +### Prasyarat + +- .NET 6+ (atau .NET Framework 4.6+). +- Aspose.Cells untuk .NET terpasang (`Install-Package Aspose.Cells`). +- Sebuah `DataTable` yang siap diekspor—sumber data Anda bisa berupa SQL, CSV, atau apa pun yang dapat diubah menjadi `DataTable`. + +Jika Anda sudah nyaman dengan C# dan memiliki semua komponen tersebut, Anda siap melanjutkan. Jika tidak, bagian “Prasyarat” di atas memberikan daftar periksa singkat. + +--- + +## Langkah 1 – Buat Instance Workbook Excel + +Hal pertama yang Anda lakukan ketika ingin **create excel workbook** secara programatis adalah menginstansiasi objek workbook. Anggap ini sebagai membuka buku catatan kosong di mana Anda akan menuliskan data nanti. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Mengapa ini penting:** +> Kelas `Workbook` adalah titik masuk untuk setiap operasi di Aspose.Cells. Membuatnya di awal memberi Anda kanvas bersih, dan Anda dapat memuat file yang sudah ada nanti jika perlu menambahkan data alih‑alih memulai dari nol. + +--- + +## Langkah 2 – Siapkan DataTable untuk Diimpor + +Sebelum kita dapat **import datatable to excel**, kita memerlukan sebuah `DataTable`. Dalam proyek nyata ini biasanya berasal dari `SqlDataAdapter.Fill` atau `DataTable.Load`. Untuk kejelasan, kami akan menyiapkan metode stub yang mengembalikan tabel siap pakai. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tip:** Jika tanggal Anda disimpan sebagai string, konversikan terlebih dahulu ke `DateTime`—jika tidak, langkah **format excel cells date** tidak akan berfungsi sebagaimana mestinya. + +--- + +## Langkah 3 – Definisikan Gaya untuk Setiap Kolom (Set Column Style) + +Sekarang tiba saatnya kita **set column style**. Kami akan membuat array objek `Style`—satu per kolom. Kolom pertama mendapatkan format tanggal bawaan (kode 14), sementara kolom lainnya tetap dengan format umum (kode 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Mengapa menggunakan objek style?** +> Menerapkan style sekali dan menggunakannya kembali jauh lebih efisien daripada mengatur format pada setiap sel secara individual. Ini juga menjamin seluruh kolom mematuhi aturan **format excel cells date** yang sama, yang penting untuk konsistensi saat file dibuka di locale yang berbeda. + +--- + +## Langkah 4 – Impor DataTable dengan Gaya ke Worksheet + +Dengan workbook siap dan style telah didefinisikan, kini kita **import datatable to excel**. Metode `ImportDataTable` melakukan pekerjaan berat: menulis header kolom, baris‑baris, dan menerapkan style yang kami berikan. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Apa yang terjadi di balik layar?** +> - `true` memberi tahu Aspose.Cells untuk menyertakan nama kolom sebagai baris pertama. +> - `0, 0` adalah indeks baris dan kolom awal (pojok kiri‑atas). +> - `columnStyles` menyelaraskan setiap kolom dengan style yang kami siapkan, memastikan aturan **format excel cells date** diterapkan pada kolom tanggal. + +--- + +## Langkah 5 – Simpan (Ekspor) Workbook ke File Fisik + +Akhirnya, kami **export data to excel** dengan menyimpan workbook ke disk. Anda dapat mengubah jalur ke folder mana pun, atau bahkan mengalirkan file langsung ke respons HTTP untuk API web. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** Gunakan `workbook.Save(Stream, SaveFormat.Xlsx)` ketika Anda perlu mengirim file melalui jaringan tanpa menulis ke disk. + +--- + +## Contoh Kerja Penuh (Semua Langkah Digabung) + +Berikut adalah program lengkap yang siap dijalankan. Salin‑tempel ke aplikasi console, sesuaikan jalur output, dan Anda akan memiliki file Excel yang diformat dengan baik dalam hitungan detik. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Output yang Diharapkan:** +Saat Anda membuka `StyledTable.xlsx`, kolom A menampilkan tanggal seperti `03/19/2026` (tergantung locale Anda), sementara kolom B dan C menampilkan nama produk dan kuantitas sebagai teks/angka biasa. Tidak ada langkah format tambahan yang diperlukan—proses **create excel workbook** Anda selesai. + +--- + +## Pertanyaan yang Sering Diajukan & Kasus Tepi + +### 1️⃣ Bagaimana jika DataTable saya memiliki lebih dari tiga kolom? +Tambahkan lebih banyak objek `Style` ke array `columnStyles`, dan sesuaikan properti `Number` untuk kolom mana pun yang memerlukan format khusus (misalnya, mata uang, persentase). Metode `ImportDataTable` akan mencocokkan setiap style berdasarkan posisi. + +### 2️⃣ Bisakah saya menerapkan format tanggal khusus alih‑alih kode bawaan 14? +Tentu saja. Ganti `columnStyles[i].Number = 14;` dengan: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Bagaimana cara **export data to excel** dalam API web tanpa menulis ke disk? +Gunakan `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Bagaimana jika locale pengguna mengharapkan pemisah tanggal yang berbeda? +Format tanggal bawaan (ID 14) menghormati pengaturan locale workbook. Jika Anda memerlukan format tetap terlepas dari locale, gunakan properti `Custom` seperti yang ditunjukkan di atas. + +### 5️⃣ Apakah ini bekerja dengan .NET Core? +Ya—Aspose.Cells mendukung .NET Standard 2.0 dan yang lebih baru, sehingga kode yang sama berjalan di .NET 6, .NET 7, atau runtime kompatibel lainnya. + +--- + +## Tips Praktik Terbaik (Pro Tips) + +- **Gunakan kembali style**: Membuat style per kolom memang murah, tetapi menggunakan kembali objek style yang sama untuk kolom identik menghemat memori. +- **Hindari loop sel‑per‑sel**: `ImportDataTable` sangat dioptimalkan; loop manual lebih lambat dan rawan kesalahan. +- **Setel budaya workbook lebih awal** jika Anda memerlukan pemisah angka/tanggal yang konsisten di semua lingkungan: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validasi DataTable** sebelum impor—tanggal null akan menyebabkan pengecualian saat style tanggal diterapkan. +- **Aktifkan perhitungan** jika Anda menambahkan formula setelah impor: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Kesimpulan + +Anda kini memiliki resep lengkap, ujung‑ke‑ujung untuk **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, dan **format excel cells date**—semua dalam kurang dari selusin baris kode C#. Pendekatan ini cepat, dapat diandalkan, dan menempatkan urusan format di dalam kode, sehingga spreadsheet akhir siap untuk pengguna bisnis begitu mereka membukanya. + +Siap untuk tantangan berikutnya? Coba tambahkan conditional formatting, sisipkan chart, atau konversi 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/indonesian/net/row-and-column-management/_index.md b/cells/indonesian/net/row-and-column-management/_index.md index f255afb65a..9684c1dbaf 100644 --- a/cells/indonesian/net/row-and-column-management/_index.md +++ b/cells/indonesian/net/row-and-column-management/_index.md @@ -76,6 +76,8 @@ Pelajari cara menyisipkan baris di Excel menggunakan Aspose.Cells for .NET denga Pelajari cara menyisipkan baris dengan format di Excel menggunakan Aspose.Cells untuk .NET. Ikuti panduan langkah demi langkah kami untuk penerapan yang mudah. ### [Sisipkan Beberapa Baris di Aspose.Cells .NET](./insert-multiple-rows-aspose-cells/) Pelajari cara menyisipkan beberapa baris di Excel menggunakan Aspose.Cells for .NET. Ikuti tutorial terperinci kami untuk manipulasi data yang lancar. +### [Muat File Excel C# – Cara Menghapus Baris dan Menghapus Baris Tertentu](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Pelajari cara memuat file Excel dengan C# dan menghapus baris tertentu menggunakan Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/indonesian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..655755d661 --- /dev/null +++ b/cells/indonesian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-21 +description: Muat file Excel C# dan hapus baris data dengan Aspose.Cells. Pelajari + cara menghapus baris, menghapus baris tertentu, dan kuasai penghapusan baris Excel + C# dalam hitungan menit. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: id +og_description: Muat file Excel dengan C# dan cepat menghapus baris, menghapus baris + tertentu, serta menangani penghapusan baris Excel di C# menggunakan Aspose.Cells. + Panduan lengkap langkah demi langkah. +og_title: Muat File Excel C# – Hapus Baris & Hapus Baris Tertentu +tags: +- C# +- Excel +- Aspose.Cells +title: Muat File Excel C# – Cara Menghapus Baris dan Menghapus Baris Tertentu +url: /id/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Muat File Excel C# – Cara Menghapus Baris dan Menghapus Baris Tertentu + +Pernahkah Anda perlu **load Excel file C#** lalu memangkas baris‑baris yang tidak diperlukan? Mungkin Anda sedang membersihkan dump data, atau memiliki template di mana baris‑baris tertentu harus dihapus sebelum mengirimkan workbook ke klien. Bagaimanapun, masalahnya tetap sama: Anda memiliki file `.xlsx` di disk, ingin membukanya di .NET, dan perlu **menghapus baris** tanpa merusak tabel tersembunyi atau objek daftar. + +Masalahnya—Aspose.Cells membuat ini menjadi sangat mudah. Dalam tutorial ini Anda akan melihat contoh lengkap yang siap dijalankan yang menunjukkan **cara menghapus baris**, **cara menghapus baris tertentu**, dan mengapa Anda mungkin peduli dengan **c# excel row deletion** sejak awal. Pada akhir tutorial Anda akan memiliki `output.xlsx` yang bersih dan hanya berisi baris‑baris yang Anda inginkan. + +## Apa yang Dibahas dalam Panduan Ini + +- Memuat workbook Excel dari disk menggunakan Aspose.Cells. +- Menghapus rentang baris (misalnya baris 5‑10) sambil menghormati header ListObject apa pun. +- Menyimpan workbook yang telah dimodifikasi kembali ke sistem file. +- Jebakan umum, seperti secara tidak sengaja menghapus baris di dalam tabel, serta tips untuk menanganinya. +- Contoh kode lengkap yang dapat dijalankan dan langsung Anda masukkan ke aplikasi console hari ini. + +> **Prasyarat** +> • .NET 6+ (atau .NET Framework 4.6+). +> • Aspose.Cells untuk .NET terpasang via NuGet (`Install-Package Aspose.Cells`). +> • Familiaritas dasar dengan C# dan konsep Excel (worksheet, sel, tabel). + +Jika Anda bertanya‑tanya **mengapa harus menggunakan Aspose.Cells** alih‑alih, misalnya, `Microsoft.Office.Interop.Excel`, jawabannya adalah kecepatan, tidak memerlukan COM, dan kemampuan menjalankan di server tanpa Office terpasang. Selain itu, API‑nya langsung untuk tugas penghapusan baris. + +--- + +## Langkah 1: Muat Workbook Excel di C# + +Sebelum Anda dapat menghapus apa pun, Anda harus memuat workbook ke memori. Kelas `Workbook` mewakili seluruh file Excel. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Mengapa ini penting:** +Memuat file membuat grafik objek yang mencerminkan struktur Excel—worksheet, sel, tabel, dan sebagainya. Dengan memegang referensi ke `ws`, Anda dapat memanipulasi baris secara langsung tanpa khawatir tentang penguncian file atau keanehan interop COM. + +--- + +## Langkah 2: Hapus Baris yang Hanya Berisi Data + +Setelah workbook berada di memori, Anda dapat menghapus baris. Metode `Cells.DeleteRows(startRow, totalRows)` menghapus blok berurutan. Pada contoh kami akan menghapus baris 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Cara kerjanya:** +- `startRow` menggunakan indeks berbasis nol, jadi `5` sebenarnya merujuk ke baris 6 di Excel. Sesuaikan sesuai kebutuhan. +- Jika worksheet berisi **ListObject** (tabel Excel) yang headernya berada di baris 4, Aspose.Cells akan melindungi header tersebut dan hanya menghapus baris data di bawahnya. Keamanan bawaan ini mencegah kerusakan tabel terstruktur—kasus tepi umum saat **remove data rows**. + +> **Tips pro:** Jika Anda perlu menghapus baris tidak berurutan (misalnya baris 3, 7, 12), lakukan perulangan pada koleksi indeks baris yang dibalik dan panggil `DeleteRows(rowIndex, 1)` untuk masing‑masing. Menghapus dari bawah ke atas mempertahankan indeks asli untuk baris‑baris yang tersisa. + +--- + +## Langkah 3: Simpan Workbook yang Telah Dimodifikasi + +Setelah baris yang tidak diinginkan dihapus, Anda cukup menulis kembali workbook ke disk. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +Metode `Save` secara otomatis menentukan format file dari ekstensi (`.xlsx` dalam kasus ini). Jika Anda memerlukan format lain—CSV, PDF, dll—cukup ubah ekstensi atau berikan enum `SaveFormat`. + +### Hasil yang Diharapkan + +Buka `output.xlsx` di Excel dan Anda akan melihat bahwa baris 5‑14 (yang semula baris 5‑10) telah hilang. Semua data lain naik ke atas secara otomatis, dan setiap formula yang merujuk ke baris yang dihapus juga disesuaikan oleh Aspose.Cells. + +--- + +## Pertanyaan yang Sering Diajukan (FAQ) + +### Bagaimana cara menghapus baris berdasarkan kondisi (misalnya semua baris di mana kolom A kosong)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +Perulangan dilakukan secara terbalik untuk menghindari pergeseran indeks. Pola ini menjawab pertanyaan **c# excel row deletion** yang lebih luas ketika Anda memerlukan logika bersyarat. + +### Bagaimana jika worksheet saya berisi beberapa ListObject? + +Aspose.Cells memperlakukan setiap ListObject secara independen. Jika header tabel mana pun akan terpengaruh oleh rentang penghapusan, API akan melempar `InvalidOperationException`. Untuk mengatasinya, sesuaikan rentang atau sementara nonaktifkan properti `ShowTableStyleFirstColumn` pada ListObject, lakukan penghapusan, lalu aktifkan kembali. + +### Bisakah saya menghapus baris tanpa memuat seluruh workbook ke memori? + +Ya—Aspose.Cells menyediakan **API streaming** (`Workbook.LoadOptions`) yang membaca data dalam potongan. Namun, penghapusan baris memang memerlukan struktur worksheet, sehingga Anda tetap harus memuat lembar target ke memori. Untuk file sangat besar (>500 MB), pertimbangkan pemrosesan batch atau gunakan **API sel‑per‑sel**. + +--- + +## Contoh Lengkap yang Dapat Dijalankan + +Berikut adalah program lengkap yang dapat Anda kompilasi dan jalankan sebagai aplikasi console. Ganti `YOUR_DIRECTORY` dengan jalur folder yang sebenarnya di mesin Anda. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Menjalankan kode:** +1. Buka terminal atau Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Ganti `Program.cs` dengan potongan di atas. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Anda akan melihat output console yang mengonfirmasi penghapusan dan lokasi file yang disimpan. + +--- + +## Jebakan Umum & Cara Menghindarinya + +| Jebakan | Mengapa Terjadi | Solusi | +|---------|----------------|--------| +| **Tidak sengaja menghapus header ListObject** | `DeleteRows` tidak memeriksa header tabel tersembunyi ketika rentang tumpang tindih. | Pastikan baris mulai **setelah** header tabel, atau gunakan API `ListObject` untuk menghapus baris di dalam tabel (`ListObject.DeleteRows`). | +| **Indeks baris meleset satu** | Aspose.Cells memakai indeks berbasis nol, sedangkan pengguna Excel berpikir berbasis satu. | Selalu kurangi 1 dari nomor baris Excel saat menulis kode. | +| **Formula rusak setelah penghapusan** | Menghapus baris dapat menyebabkan error `#REF!` bila formula merujuk ke baris yang dihapus. | Aspose.Cells otomatis memperbarui sebagian besar formula, tetapi periksa kembali referensi eksternal atau named range. | +| **Performa melambat pada file besar** | Menghapus banyak baris memicu proses re‑index internal. | Lakukan penghapusan batch (hapus satu rentang besar sekaligus) daripada banyak penghapusan baris tunggal. Gunakan `DeleteRows(start, count)` bila memungkinkan. | + +--- + +## Langkah Selanjutnya & Topik Terkait + +- **Hapus baris tertentu berdasarkan nilai sel:** Gabungkan loop bersyarat yang ditunjukkan di FAQ dengan `DeleteRows`. +- **Penyisipan baris massal:** Gunakan `InsertRows` untuk menambah baris placeholder sebelum mengisi data. +- **Bekerja dengan tabel (ListObjects):** Jelajahi metode `ListObject` untuk operasi tingkat baris di dalam tabel terstruktur. +- **Ekspor ke CSV setelah penghapusan baris:** Panggil `workbook.Save("output.csv", SaveFormat.Csv)` untuk menghasilkan CSV bersih tanpa baris yang dihapus. + +Masing‑masing topik ini memperluas alur kerja **load excel file c#** yang baru saja Anda kuasai, memungkinkan Anda menyesuaikan file Excel secara programatis. + +--- + +## Kesimpulan + +Kami telah menelusuri skenario praktis **load excel file c#**, mendemonstrasikan **cara menghapus baris**, serta membahas nuansa **remove specific rows** dan **remove data rows** menggunakan Aspose.Cells. Dengan memuat workbook, memanggil `DeleteRows`, dan menyimpan hasilnya, Anda memperoleh **c# excel row deletion** yang andal tanpa beban COM interop. + +Cobalah pada dataset nyata—mungkin bersihkan laporan penjualan atau buang baris uji dari template. Setelah nyaman, eksplorasi penghapusan bersyarat dan operasi yang sadar tabel. API‑nya cukup kuat untuk skrip sederhana maupun pemroses batch tingkat perusahaan. + +Selamat coding, dan jangan ragu tinggalkan komentar bila ada kendala! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/indonesian/net/worksheet-operations/_index.md index f0b122aa72..dcccbe6c32 100644 --- a/cells/indonesian/net/worksheet-operations/_index.md +++ b/cells/indonesian/net/worksheet-operations/_index.md @@ -63,7 +63,7 @@ Tanuld meg az Aspose.Cells for .NET használatával Excelben a hozzászóláslá ### [Hozzászólások olvasása a munkalapban](./read-threaded-comments/) Engedd szabadjára a hozzászólásláncokba rendezett megjegyzések olvasásának erejét az Excelben az Aspose.Cells for .NET segítségével. Merülj el ebben a lépésről lépésre szóló útmutatóban az egyszerű dokumentumkezelés érdekében. ### [Hozzászólások menetének eltávolítása a munkalapról](./remove-threaded-comments/) -Ezzel a lépésről lépésre haladó útmutatóval könnyedén eltávolíthatja a hozzászólásláncokba rendezett megjegyzéseket az Excel-munkafüzetekből az Aspose.Cells for .NET segítségével. Egyszerűsítse az Excel-kezelést. +Ezzel a lépésről lépésre haladó útmutatóval könnyen eltávolíthatja a hozzászólásláncokba rendezett megjegyzéseket az Excel-munkafüzetekből az Aspose.Cells for .NET segítségével. Egyszerűsítse az Excel-kezelést. ### [Színes háttér beállítása az ODS fájlban](./set-ods-colored-background/) Tanuld meg, hogyan állíthatsz be színes hátteret ODS fájlokban az Aspose.Cells for .NET használatával, lépésről lépésre bemutatott oktatóanyagokkal és tippekkel. ### [Grafikus háttér beállítása ODS fájlban](./set-ods-graphic-background/) @@ -71,7 +71,9 @@ Tanuld meg, hogyan állíthatsz be grafikus hátteret ODS fájlokban az Aspose.C ### [Verziós napló előzményeinek frissítése a megosztott munkafüzetben](./update-revision-log-history/) Tanulja meg, hogyan frissítheti a megosztott munkafüzetek módosítási naplójának előzményeit az Aspose.Cells for .NET használatával. Egyszerűsítse az együttműködést és tartsa karban az átlátható dokumentumnyilvántartást. ### [Használja az OpenXml Sheet_SheetId tulajdonságát a munkalapon](./utilize-sheet-sheetid-property/) -Engedd szabadjára az Excel erejét az Aspose.Cells for .NET segítségével. Tanuld meg a munkalap-azonosítók hatékony kezelését lépésről lépésre bemutató útmutatónkkal. +Engedd szabadjára az Excel erejét az Aspose.Cells for .NET segítségével. Tanuld meg a munkalap-azonosítók hatékony kezelését lépésről lépésre bemutató útmutatóval. +### [Cara Membuat Worksheet – Panduan Langkah demi Langkah untuk Generasi Excel Dinamis](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Pelajari cara membuat worksheet secara dinamis dengan panduan langkah demi langkah menggunakan Aspose.Cells for .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/indonesian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..ba53f2a650 --- /dev/null +++ b/cells/indonesian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,280 @@ +--- +category: general +date: 2026-03-21 +description: Pelajari cara membuat lembar kerja, menghasilkan lembar Excel dengan + nama lembar kerja dinamis, dan menyimpan buku kerja sebagai XLSX menggunakan Aspose.Cells + di C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: id +og_description: Cara membuat lembar kerja di Excel menggunakan Aspose.Cells, menghasilkan + lembar kerja Excel dengan nama lembar kerja dinamis, dan menyimpan buku kerja sebagai + XLSX. +og_title: Cara Membuat Lembar Kerja – Tutorial Lengkap C# +tags: +- Aspose.Cells +- C# +- Excel automation +title: Cara Membuat Worksheet – Panduan Langkah demi Langkah untuk Generasi Excel + Dinamis +url: /id/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Membuat Worksheet – Tutorial Lengkap C# + +Pernah bertanya-tanya **bagaimana cara membuat worksheet** secara dinamis tanpa harus membuka Excel secara manual setiap kali? Anda tidak sendirian. Banyak pengembang menemui kendala ketika harus **menghasilkan lembar Excel** dari sumber data dan menginginkan setiap lembar memiliki nama yang bermakna dan dinamis. Kabar baiknya? Dengan Aspose.Cells Anda dapat mengotomatisasi seluruh proses, **memproses master sheet**, dan akhirnya **menyimpan workbook sebagai XLSX** hanya dengan beberapa baris kode. + +Dalam tutorial ini kami akan membahas skenario dunia nyata: memulai dari workbook kosong, menyisipkan token smart‑marker yang memberi tahu Aspose sheet detail mana yang harus dibuat, mengonfigurasi pola penamaan sehingga setiap sheet mendapatkan nama unik, dan akhirnya menyimpan hasilnya ke disk. Pada akhir tutorial Anda akan memiliki program C# siap jalankan yang membuat worksheet, menghasilkan lembar Excel dengan nama worksheet dinamis, dan menyimpan workbook sebagai XLSX—tanpa menyentuh UI. + +> **Prasyarat** +> • .NET 6+ (atau .NET Framework 4.6+). +> • Aspose.Cells untuk .NET (versi percobaan gratis dapat digunakan untuk demo ini). +> • Pengetahuan dasar C#—tidak diperlukan trik interop Excel yang mendalam. + +--- + +## Gambaran Umum Apa yang Akan Kami Bangun + +- **Master sheet** yang berisi placeholder smart‑marker (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** yang membaca sumber data (misalnya `DataTable`) dan membuat worksheet baru untuk setiap departemen. +- **Nama worksheet dinamis** dengan pola `Dept_{0}` dimana `{0}` digantikan dengan nama departemen. +- **File XLSX akhir** yang disimpan ke folder yang Anda tentukan. + +Itu saja. Sederhana, namun cukup kuat untuk faktur, laporan, atau output Excel multi‑tab apa pun. + +--- + +![Diagram showing how a master sheet is processed to generate multiple dynamic worksheets](/images/how-to-create-worksheets-diagram.png "How to create worksheets diagram") + +*Alt text: ilustrasi cara membuat worksheet dengan nama worksheet dinamis menggunakan Aspose.Cells.* + +--- + +## Langkah 1: Siapkan Proyek dan Tambahkan Aspose.Cells + +### Mengapa ini penting +Sebelum kode apa pun dijalankan, kompiler harus mengetahui di mana kelas `Workbook`, `Worksheet`, dan `SmartMarkerProcessor` berada. Menambahkan paket NuGet memastikan Anda memiliki API terbaru yang lengkap. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Tips pro:** Jika Anda menggunakan Visual Studio, klik kanan proyek → *Manage NuGet Packages* → cari *Aspose.Cells* dan instal versi stabil terbaru. + +--- + +## Langkah 2: Buat Workbook Baru dan Master Sheet + +### Apa yang kami lakukan +Kami memulai dengan workbook bersih, lalu mengambil worksheet pertama (indeks 0). Sheet ini akan berfungsi sebagai **master sheet** yang menyimpan token smart‑marker. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +Kelas `Workbook` adalah wadah untuk semua worksheet. Secara default ia membuat satu sheet bernama *Sheet1*; mengganti namanya menjadi “Master” membuat file akhir lebih mudah dinavigasi. + +--- + +## Langkah 3: Sisipkan Token Smart‑Marker untuk Nama Sheet Detail + +### Mengapa menggunakan smart‑marker? +Smart marker memungkinkan Aspose.Cells mengganti placeholder dengan data pada saat runtime. Token `«DetailSheetNewName:Dept»` memberi tahu processor: *“Saat Anda menemukan ini, buat sheet detail baru untuk setiap baris di kolom `Dept`.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Anda dapat menempatkan token di mana saja; kami memilih **A1** untuk kejelasan. Saat processor dijalankan, token akan digantikan dengan nama departemen yang sebenarnya dan menghasilkan worksheet yang bersesuaian. + +--- + +## Langkah 4: Siapkan Sumber Data + +### Bagaimana data menggerakkan pembuatan sheet +Aspose.Cells dapat bekerja dengan sumber data `IEnumerable` apa pun. Untuk demo ini kami akan menggunakan `DataTable` dengan satu kolom bernama `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Bagaimana jika Anda memiliki lebih banyak kolom?** +> Processor akan mengabaikan kolom tambahan kecuali Anda merujuknya dalam smart marker lain. Ini membuat proses pembuatan sheet tetap ringan. + +--- + +## Langkah 5: Konfigurasikan SmartMarkerProcessor dan Pola Penamaan + +### Nama worksheet dinamis dalam aksi +Kami menginginkan setiap sheet baru bernama `Dept_Finance`, `Dept_HR`, dll. Opsi `DetailSheetNewName` memungkinkan kami mendefinisikan pola di mana `{0}` digantikan dengan nama departemen yang sebenarnya. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Jika sebuah departemen muncul dua kali, Aspose secara otomatis menambahkan sufiks numerik (misalnya `Dept_Finance_1`) untuk menghindari duplikasi nama sheet. + +--- + +## Langkah 6: Proses Master Sheet untuk Menghasilkan Sheet Detail + +### Inti dari **process master sheet** +Memanggil `Process` melakukan pekerjaan berat: ia memindai master sheet untuk smart marker, membuat worksheet baru, menyalin tata letak master, dan mengisi masing‑masing dengan data baris terkait. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Setelah pemanggilan ini, workbook berisi satu master sheet plus empat sheet detail—masing‑masing dinamai sesuai pola kami dan terisi dengan nama departemen di sel A1. + +--- + +## Langkah 7: Simpan Workbook sebagai XLSX + +### Langkah akhir—**save workbook as XLSX** +Sekarang worksheet sudah ada, kami menulis file ke disk. Anda dapat memilih jalur apa saja; pastikan direktori sudah ada. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Membuka `DetailSheets.xlsx` akan menampilkan: + +| Nama Sheet | Sel A1 (Konten) | +|------------|-----------------| +| Master | «DetailSheetNewName:Dept» (tidak berubah) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Kasus tepi:** Jika folder output tidak ada, `Save` akan melempar `DirectoryNotFoundException`. Bungkus pemanggilan dalam blok try‑catch atau buat folder terlebih dahulu. + +--- + +## Contoh Lengkap yang Berfungsi + +Menggabungkan semuanya, berikut program lengkap yang dapat Anda salin‑tempel ke aplikasi console: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Jalankan program, buka file yang dihasilkan, dan Anda akan melihat tata letak persis seperti yang dijelaskan sebelumnya. Tanpa menyalin‑tempel manual, tanpa interop COM—hanya kode C# bersih yang **menghasilkan lembar Excel** dengan **nama worksheet dinamis**. + +--- + +## Pertanyaan Umum & Hal-hal yang Perlu Diwaspadai + +| Pertanyaan | Jawaban | +|------------|---------| +| *Apakah saya dapat menggunakan DataSet dengan beberapa tabel?* | Ya. Kirim tabel yang sesuai ke `Process` atau gunakan kamus tabel. | +| *Bagaimana jika saya membutuhkan lebih dari satu smart‑marker pada master sheet?* | Letakkan token tambahan seperti `«DetailSheetNewName:Region»` dan konfigurasikan pola penamaan terpisah bila diperlukan. | +| *Apakah master sheet tetap ada di file akhir?* | Secara default, ya. Jika tidak diperlukan, panggil `workbook.Worksheets.RemoveAt(0)` setelah proses selesai. | +| *Bagaimana Aspose menangani set data yang sangat besar?* | Ia melakukan streaming data secara efisien, namun Anda mungkin ingin meningkatkan `MemorySetting` jika menemui batas memori. | +| *Bisakah saya mengekspor ke CSV alih-alih XLSX?* | Tentu—gunakan `workbook.Save("file.csv", SaveFormat.Csv)`. Logika pembuatan sheet yang sama tetap berlaku. | + +--- + +## Langkah Selanjutnya + +Setelah Anda menguasai **cara membuat worksheet** secara dinamis, Anda dapat menjelajahi: + +- **Menyimpan workbook sebagai XLSX** dengan proteksi password (`workbook.Protect("pwd")`). +- **Menghasilkan lembar Excel** dari sumber JSON atau XML menggunakan `JsonDataSource` atau `XmlDataSource`. +- **Menerapkan gaya** pada setiap sheet yang dihasilkan (font, warna) melalui objek `Style`. +- **Menggabungkan sel** atau menyisipkan formula secara otomatis untuk laporan ringkasan. + +Setiap ekstensi ini dibangun di atas konsep **process master sheet**, sehingga transisinya akan terasa mulus. + +--- + +## Kesimpulan + +Kami telah membahas seluruh alur: mulai dari inisialisasi workbook, menyisipkan smart‑marker, mengonfigurasi **nama worksheet dinamis**, memproses master sheet untuk **menghasilkan lembar Excel**, dan akhirnya **menyimpan workbook sebagai XLSX**. Contoh ini lengkap, dapat dijalankan, dan menampilkan praktik terbaik untuk kinerja serta pemeliharaan. + +Cobalah, ubah pola penamaan, beri data bisnis nyata, dan saksikan otomatisasi Excel Anda melesat. Jika menemukan kendala, tinggalkan komentar di bawah—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/italian/net/calculation-engine/_index.md b/cells/italian/net/calculation-engine/_index.md index 861724ad43..fbd6d25231 100644 --- a/cells/italian/net/calculation-engine/_index.md +++ b/cells/italian/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ Scopri come creare e integrare motori di calcolo personalizzati nelle tue applic ### [Ottimizza i tempi di calcolo di Excel con le opzioni ricorsive in Aspose.Cells per .NET](./optimize-calculation-time-recursive-aspose-cells-net) Scopri come ottimizzare i tempi di calcolo di Excel utilizzando le opzioni ricorsive in Aspose.Cells per .NET. Questa guida include informazioni su configurazione, suggerimenti per le prestazioni e applicazioni pratiche. +### [Come calcolare una cartella di lavoro in C# – Guida a ordinamento e formule](./how-to-calculate-workbook-in-c-sort-formula-guide/) +Scopri come calcolare e ordinare i dati in una cartella di lavoro Excel usando C# con esempi pratici di formule. ## Benefici diff --git a/cells/italian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/italian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..b5bfd86889 --- /dev/null +++ b/cells/italian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Come calcolare una cartella di lavoro in C# con Aspose.Cells – impara + a creare una cartella di lavoro Excel, popolare le celle Excel, calcolare le formule + Excel e utilizzare la funzione di ordinamento. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: it +og_description: Come calcolare rapidamente una cartella di lavoro in C#. Questo tutorial + mostra come creare una cartella di lavoro Excel, popolare le celle di Excel, calcolare + le formule di Excel e utilizzare la funzione di ordinamento. +og_title: Come calcolare la cartella di lavoro in C# – Guida completa all'ordinamento +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Come calcolare la cartella di lavoro in C# – Guida a ordinamento e formule +url: /it/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come calcolare il workbook in C# – Guida a SORT e Formula + +Ti sei mai chiesto **come calcolare il workbook** al volo senza aprire Excel? Non sei il solo. In molti scenari di automazione devi creare un file Excel, inserire alcuni numeri, ordinarli e riportare i risultati nella tua app .NET—tutto in modo programmatico. + +In questa guida vedremo esattamente questo: **creare un excel workbook**, **popolare le celle di Excel**, allegare una formula **SORT** e infine **calcolare le formule di Excel** così potrai leggere direttamente l'array ordinato da C#. Alla fine avrai uno snippet eseguibile da inserire in qualsiasi progetto che fa riferimento ad Aspose.Cells (o a una libreria simile). + +## Prerequisiti + +- .NET 6+ (il codice funziona anche su .NET Framework 4.7.2) +- Aspose.Cells per .NET (pacchetto NuGet di prova gratuita `Aspose.Cells`) +- Una conoscenza di base della sintassi C# +- Nessuna necessità di avere installata una copia di Microsoft Excel; la libreria si occupa di tutto il lavoro pesante per te + +Se ti senti a tuo agio con questi requisiti, immergiamoci. + +## Come calcolare il Workbook – Inizializzare il Workbook + +La prima cosa da fare è creare un nuovo oggetto workbook. Pensalo come aprire un file Excel nuovissimo, completamente vuoto. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Perché è importante:** La classe `Workbook` è il punto di ingresso per ogni operazione—senza di essa non puoi aggiungere fogli, celle o formule. Inizializzarla correttamente garantisce di partire da una base pulita. + +## Creare un Excel Workbook e accedere al Worksheet + +Ora che il workbook esiste, dobbiamo assicurarci di puntare al foglio corretto. La maggior parte delle librerie imposta di default un unico foglio chiamato “Sheet1”, ma puoi rinominarlo o aggiungerne altri se lo desideri. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Consiglio:** Dare un nome ai fogli fin dall'inizio aiuta quando li richiami più tardi nelle formule (`'Data'!A1:A10`). Inoltre rende il debug più semplice. + +## Popolare le celle di Excel con i dati + +Successivamente, **popoleremo le celle di Excel** con i numeri che vogliamo ordinare. L'esempio utilizza solo due celle, ma puoi estendere l'intervallo a decine di righe. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Perché usiamo `PutValue`** – Rileva automaticamente il tipo di dato (int, double, string, ecc.) e lo memorizza in modo appropriato, risparmiandoti conversioni manuali. + +## Applicare la funzione SORT tramite formula + +La funzione `SORT` di Excel fa esattamente quello che suggerisce il nome: restituisce un array ordinato senza modificare i dati originali. Inseriremo quella formula nella cella `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Nota caso limite:** `SORT` restituisce un risultato di **array**. Nelle versioni più vecchie di Excel (pre‑Office 365) questo richiedeva Ctrl+Shift+Enter. Con Aspose.Cells ottieni l'array automaticamente quando calcoli il workbook. + +## Calcolare le formule di Excel per ottenere i risultati + +A questo punto il workbook sa *cosa* calcolare, ma non *che* debba farlo. Chiamare `CalculateFormula` attiva il motore di calcolo per valutare ogni formula, inclusa la nostra `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Output della console previsto** + +``` +Sorted array: {2, 5} +``` + +> **Cosa è appena successo?** +> 1. Il workbook ha creato un motore di calcolo interno. +> 2. La formula `SORT` ha analizzato l'intervallo `A1:A2`. +> 3. Il motore ha prodotto un nuovo array, che abbiamo recuperato da `B1`. + +Se modifichi i valori in `A1` e `A2` (o estendi l'intervallo) e riesegui `CalculateFormula`, l'output si aggiorna automaticamente—senza codice aggiuntivo. + +## Utilizzare la funzione Sort su set di dati più grandi (Opzionale) + +La maggior parte degli scenari reali coinvolge più di due righe. Ecco una rapida modifica che funziona per qualsiasi numero di voci: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Perché potresti averne bisogno:** Ordinare ampi intervalli ti consente di generare classifiche, ordinare dati finanziari o semplicemente pulire CSV importati prima di ulteriori elaborazioni. + +## Problemi comuni e come evitarli + +| Problema | Perché accade | Soluzione | +|----------|----------------|-----------| +| **`#VALUE!` in B1** | La formula `SORT` fa riferimento a un intervallo vuoto o non numerico. | Assicurati che ogni cella nell'intervallo di origine contenga un numero o un testo che possa essere ordinato. | +| **Troncamento dell'array** | Tentativo di leggere un array da una singola cella senza casting. | Esegui il cast di `worksheet.Cells["B1"].Value` a `object[]` (o al tipo appropriato). | +| **Rallentamento delle prestazioni** | Ricalcolo di workbook enormi dopo ogni piccola modifica. | Chiama `CalculateFormula` solo dopo aver terminato le modifiche al foglio, oppure usa `CalculateFormulaOptions` per limitare l'ambito. | + +## Esempio completo funzionante (pronto per copia‑incolla) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Screenshot del risultato** +> ![risultato del calcolo del workbook in Excel](https://example.com/images/sorted-result.png "risultato del calcolo del workbook in Excel") + +L'immagine sopra mostra il workbook dopo il calcolo—la cella **B1** contiene l'array ordinato `{2, 5}`. + +## Conclusione + +Abbiamo appena coperto **come calcolare il workbook** in modo programmatico: creare un Excel workbook, popolare le celle di Excel, inserire una formula `SORT` e infine **calcolare le formule di Excel** per estrarre i dati ordinati. L'approccio funziona per esempi con due celle e scala agevolmente a set di dati più grandi. + +Qual è il prossimo passo? Prova a combinare questa tecnica con altre funzioni come `FILTER`, `UNIQUE` o anche logica personalizzata in stile VBA tramite `WorksheetFunction`. Puoi anche salvare il workbook su disco (`workbook.Save("Sorted.xlsx")`) e aprirlo in Excel per una verifica visiva. + +Sentiti libero di sperimentare—sostituisci i numeri, cambia l'intervallo o concatena più formule insieme. L'automazione consiste nel iterare rapidamente, e ora hai una solida base su cui costruire. + +Buon coding, e che i tuoi workbook calcolino sempre esattamente come ti aspetti! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/italian/net/conversion-and-rendering/_index.md index 9a7af86fbd..318bccdc52 100644 --- a/cells/italian/net/conversion-and-rendering/_index.md +++ b/cells/italian/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Impara a convertire Excel in PDF in modo semplice e avanzato con Aspose.Cells in Scopri come convertire un foglio di lavoro Excel in SVG utilizzando Aspose.Cells per .NET con questa guida passo passo. Perfetto per gli sviluppatori .NET che desiderano convertire Excel in SVG. ### [Conversione di Excel in MHTML in .NET](./converting-excel-to-mhtml/) Scopri come convertire in modo efficiente i file Excel nel formato MHTML in .NET con Aspose.Cells, potenziando le tue capacità di reporting e condivisione dei dati. +### [Crea immagine da Excel – Esporta Pivot in PNG in C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Impara a esportare una tabella pivot di Excel come immagine PNG usando Aspose.Cells in C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/italian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..e16605cdef --- /dev/null +++ b/cells/italian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Crea immagine da Excel in C# usando Aspose.Cells. Scopri come convertire + Excel in immagine, esportare pivot e salvare l'immagine come PNG con un esempio + completo e eseguibile. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: it +og_description: Crea un'immagine da Excel in C# rapidamente. Questa guida mostra come + convertire Excel in immagine, esportare la tabella pivot e salvare l'immagine come + PNG con codice chiaro. +og_title: Crea immagine da Excel – Esporta Pivot in PNG con C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Crea immagine da Excel – Esporta Pivot in PNG in C# +url: /it/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea immagine da Excel – Esporta Pivot in PNG in C# + +Ti è mai capitato di **creare immagine da Excel** ma non eri sicuro quale API utilizzare? Non sei solo—molti sviluppatori incontrano questo ostacolo quando provano a trasformare una tabella pivot live in un PNG condivisibile. + +In questo tutorial vedremo una soluzione completa, pronta‑da‑eseguire, che **converte Excel in immagine**, mostra **come esportare la pivot**, e spiega **come salvare l'immagine** come file PNG. Alla fine avrai un unico metodo che esegue l'intero lavoro, più consigli per i casi limite che potresti incontrare. + +## Cosa ti serve + +- **Aspose.Cells for .NET** (il pacchetto NuGet `Aspose.Cells`). È una libreria commerciale ma offre una modalità di valutazione gratuita—perfetta per i test. +- .NET 6+ (o .NET Framework 4.6+). +- Un semplice workbook Excel (`Pivot.xlsx`) che contiene almeno una tabella pivot. +- Qualsiasi IDE ti piaccia—Visual Studio, Rider, o anche VS Code funziona. + +Tutto qui. Nessun DLL extra, nessun interop COM e nessun trucco di automazione di Excel ingombrante. + +Ora, immergiamoci nel codice. + +## Passo 1: Carica il Workbook – Crea immagine da Excel + +La prima cosa che facciamo è aprire il file Excel che contiene la tabella pivot. Questo passaggio è cruciale perché il renderer lavora su un oggetto `Workbook` in memoria. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Perché è importante:* Caricare il workbook ci dà accesso alla **pivot** e a qualsiasi formattazione che sarà rispettata quando più tardi **convertiamo Excel in immagine**. Se lo salti, il renderer non avrà nulla su cui lavorare. + +## Passo 2: Configura le opzioni di esportazione – Converti Excel in immagine + +Successivamente indichiamo ad Aspose come vogliamo che l'immagine finale appaia. La classe `ImageOrPrintOptions` ci permette di scegliere PNG, impostare DPI e persino controllare il colore di sfondo. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Perché è importante:* Impostando un DPI alto garantiamo che l'**esportazione di Excel in PNG** sia nitida, anche quando la pivot contiene molte righe. Puoi ridurre il DPI se la dimensione del file è un problema. + +## Passo 3: Renderizza il foglio di lavoro – Come esportare la pivot + +Ora arriva il cuore del processo: trasformare il foglio di lavoro (con la sua pivot) in un'immagine. La classe `WorksheetRender` si occupa del lavoro pesante. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Perché è importante:* Qui è dove **esportiamo la pivot** in un formato visivo. Il renderer rispetta tutta la formattazione della pivot, i filtri e gli stili condizionali, così il PNG appare esattamente come vedi in Excel. + +## Passo 4: Metti tutto insieme – Come salvare l'immagine + +Infine, espone un unico metodo pubblico che collega tutti i componenti. Questo è il metodo che chiamerai dalla tua app, servizio o strumento da console. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Esempio completo funzionante + +Crea un nuovo progetto console, aggiungi il pacchetto NuGet `Aspose.Cells`, poi inserisci il seguente `Program.cs`: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Risultato atteso:** Dopo aver eseguito il programma, `PivotImage.png` apparirà nella cartella specificata, mostrando uno snapshot pixel‑perfect della tabella pivot. + +![Create image from Excel example](https://example.com/placeholder.png "Create image from Excel example") + +*Testo alternativo:* esempio di creazione immagine da Excel che mostra la tabella pivot esportata come PNG. + +## Domande comuni e casi limite + +### E se il mio workbook ha più fogli di lavoro? + +L'helper attualmente prende `Worksheets[0]`. Per puntare a un foglio specifico, passa il nome del foglio: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### Il PNG è sfocato—come lo risolvo? + +Aumenta `HorizontalResolution` e `VerticalResolution` in `GetImageOptions`. Valori tra 300–600 DPI solitamente producono risultati nitidi. Ricorda, DPI più alto significa dimensione del file maggiore. + +### La mia pivot si estende su più pagine—posso esportare tutte le pagine? + +Sì. Itera su `renderer.PageCount` e chiama `ToImage(pageIndex, ...)` per ogni pagina, oppure imposta `OnePagePerSheet = false` per ottenere immagini separate per pagina. + +### Ho bisogno solo di una parte del foglio (ad esempio, un intervallo specifico)? + +Usa `ImageOrPrintOptions` per impostare `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +In questo modo **converti Excel in immagine** solo per l'area di tuo interesse. + +### Funziona con file .xls (Excel 97‑2003)? + +Assolutamente. Aspose.Cells astrae il formato del file, così puoi fornire `.xls`, `.xlsx`, `.xlsm` o anche `.ods` e comunque **esportare excel in png**. + +## Consigli professionali e avvertenze + +- **La licenza è importante**: In modalità valutazione Aspose aggiunge una filigrana. Distribuisci una licenza corretta per la produzione. +- **Uso della memoria**: Renderizzare workbook grandi può richiedere molta memoria. Rilascia prontamente l'oggetto `Workbook` o avvolgilo in un blocco `using`. +- **Sicurezza dei thread**: `Workbook` non è thread‑safe. Crea una nuova istanza per ogni richiesta se sei in un servizio web. +- **Flessibilità del formato immagine**: Se ti serve JPEG o BMP, basta cambiare `ImageFormat` in `GetImageOptions`. + +## Conclusione + +Ora hai una ricetta solida, end‑to‑end, per **creare immagine da Excel**, specificamente per **esportare i dati della pivot** come PNG ad alta qualità. Lo snippet sopra mostra il codice completo e eseguibile, spiega **come salvare l'immagine** e copre variazioni come più fogli o aree di stampa personalizzate. + +Prossimi passi? Prova a concatenare questo esportatore con un servizio email per inviare automaticamente il PNG, o sperimenta con `ImageOrPrintOptions` per generare PDF invece di PNG. Lo stesso schema funziona per compiti di **convertire excel in immagine** in molti formati. + +Hai altre domande? Lascia un commento, 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/converting-excel-files-to-other-formats/_index.md b/cells/italian/net/converting-excel-files-to-other-formats/_index.md index 40c0bcbd1e..611fecc352 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 @@ -46,6 +46,8 @@ Aspose.Cells per .NET semplifica le trasformazioni dei documenti, consentendo ag Scopri come convertire CSV in JSON in .NET utilizzando Aspose.Cells. Guida passo passo per la trasformazione dei dati con esempi di codice facili da seguire. ### [Conversione di file Excel in DOCX tramite programmazione in .NET](./converting-excel-file-to-docx/) Scopri come convertire programmaticamente file Excel in DOCX utilizzando Aspose.Cells per .NET in questa guida dettagliata. Perfetto per la generazione di report e la condivisione di dati. +### [Salva Excel come Docx con C# – Guida completa passo‑passo](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Scopri come salvare un file Excel in formato DOCX usando C# con Aspose.Cells, passo dopo passo con esempi di codice. ### [Conversione di file Excel in HTML con tooltip in .NET](./converting-excel-file-to-html-with-tooltip/) Converti Excel in HTML con suggerimenti utilizzando Aspose.Cells per .NET in pochi semplici passaggi. Arricchisci le tue app web con dati Excel interattivi senza sforzo. ### [Conversione di file Excel in Markdown tramite programmazione in .NET](./converting-excel-file-to-markdown/) diff --git a/cells/italian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/italian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..2c750df4cd --- /dev/null +++ b/cells/italian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Salva Excel come Docx in C# — impara come convertire Excel in Word, incorporare + grafici e caricare una cartella di lavoro Excel in C# usando Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: it +og_description: Salva Excel come Docx in C# spiegato nella prima frase. Segui questo + tutorial per convertire Excel in Word, incorporare grafici e caricare una cartella + di lavoro Excel in C#. +og_title: Salva Excel come Docx con C# – Guida completa +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Salva Excel come Docx con C# – Guida completa passo passo +url: /it/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Save Excel as Docx con C# – Guida Completa Passo‑per‑Passo + +Ti è mai capitato di dover **save Excel as Docx** ma non sapevi da dove cominciare? Non sei solo—molti sviluppatori incontrano lo stesso ostacolo quando vogliono *convert Excel to Word* mantenendo intatti i grafici. In questo tutorial ti mostreremo il codice esatto di cui hai bisogno, spiegheremo perché ogni riga è importante e ti mostreremo come incorporare i grafici di Excel senza perdere qualità. + +Inseriremo anche qualche consiglio extra su scenari **load Excel workbook C#**, così alla fine ti sentirai a tuo agio nel convertire Excel in Docx in qualsiasi progetto .NET. Niente riferimenti vaghi, solo un esempio concreto e eseguibile che puoi copiare‑incollare subito. + +--- + +## Cosa Copre Questa Guida + +- Caricamento di un file `.xlsx` esistente con Aspose.Cells (o qualsiasi libreria compatibile). +- Manipolazione opzionale dei fogli di lavoro o dei grafici prima della conversione. +- Salvataggio della cartella di lavoro come file `.docx` preservando i grafici incorporati. +- Verifica dell'output e gestione dei casi limite comuni, come cartelle di lavoro grandi o tipi di grafico non supportati. + +Se ti chiedi **why you’d want to convert Excel to Docx**, pensa ai report che devi inviare a stakeholder non tecnici—i documenti Word sono universalmente accettati e mantengono la fedeltà visiva dei tuoi grafici. Immergiamoci. + +--- + +## Prerequisiti – Load Excel Workbook C# + +Prima di scrivere qualsiasi codice, assicurati di avere quanto segue: + +| Requirement | Reason | +|-------------|--------| +| **.NET 6.0 or later** | Runtime moderno, migliori prestazioni e pieno supporto per Aspose.Cells. | +| **Aspose.Cells for .NET** (NuGet package `Aspose.Cells`) | Fornisce la classe `Workbook` usata per leggere Excel e esportare in DOCX. | +| **Visual Studio 2022** (or any IDE you prefer) | Comodo per il debug e IntelliSense. | +| **An Excel file with charts** (`AdvancedCharts.xlsx`) | Per vedere la funzionalità *embed excel charts* in azione. | + +You can install the library via the Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +> **Consiglio:** Se sei su una pipeline CI/CD, aggiungi il pacchetto al tuo `*.csproj` così i restore avvengono automaticamente. + +--- + +## Passo 1 – Carica la Cartella di Lavoro Excel (Inizio di Save Excel as Docx) + +La prima cosa che facciamo è caricare la cartella di lavoro di origine. È qui che entra in gioco la frase **load excel workbook c#**. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Perché è importante:** Caricare il file ti dà accesso a ogni foglio di lavoro, grafico e stile. Senza questo passo, non c’è nulla da convertire e l'API non può preservare le tue grafiche incorporate. + +--- + +## Passo 2 – (Opzionale) Modifica la Cartella di Lavoro Prima della Conversione + +Potresti voler rinominare un foglio, nascondere una colonna o persino cambiare il titolo di un grafico. Questo passo è opzionale ma mostra quanto può essere flessibile la conversione. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Caso limite:** Alcuni tipi di grafico più vecchi (ad es., Radar) potrebbero non essere renderizzati perfettamente in Word. Testa i tuoi grafici specifici dopo la conversione. + +--- + +## Passo 3 – Salva la Cartella di Lavoro come Documento Word (L'Azione Principale “Save Excel as Docx”) + +Ora arriva il momento della verità: effettuiamo realmente **save Excel as Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Quando questo viene eseguito, Aspose.Cells scrive ogni foglio di lavoro come una tabella all'interno del file Word e incorpora ogni grafico come immagine ad alta risoluzione. Il risultato è un `.docx` completamente modificabile che appare esattamente come la visualizzazione originale di Excel. + +> **Perché scegliere DOCX invece di PDF?** DOCX consente ai destinatari di modificare il testo o sostituire i grafici in seguito, mentre PDF è un'istantanea statica. + +--- + +## Passo 4 – Verifica l'Output e Risolvi i Problemi Comuni + +Dopo che la conversione è terminata, apri `ChartsInWord.docx` in Microsoft Word: + +1. **Verifica che ogni foglio di lavoro appaia come una sezione separata** – dovresti vedere tabelle che rispecchiano i dati di Excel. +2. **Conferma che i grafici siano incorporati** – dovrebbero essere immagini selezionabili, non segnaposti rotti. +3. **Se un grafico manca, assicurati che il tipo di grafico sia supportato da Aspose.Cells** (vedi la [official compatibility list](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Consiglio:** Per cartelle di lavoro grandi, considera di aumentare il `MemorySetting` di Aspose.Cells per evitare `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Esempio Completo (Pronto per Copia‑Incolla) + +Di seguito trovi il programma completo, pronto per la compilazione. Sostituisci `YOUR_DIRECTORY` con il percorso reale della cartella sul tuo computer. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Risultato atteso:** Un documento Word (`ChartsInWord.docx`) che contiene tutti i fogli di lavoro come tabelle e ogni grafico come immagine incorporata ad alta risoluzione. Aprilo in Word e vedrai la disposizione visiva esatta che avevi in Excel. + +--- + +## Domande Frequenti (FAQ) + +**Q: Posso convertire più file Excel in un ciclo?** +A: Assolutamente. Avvolgi la logica di conversione in un ciclo `foreach (var file in Directory.GetFiles(...))` e riutilizza lo stesso pattern di istanza `Workbook`. + +**Q: Funziona anche con i file `.xls`?** +A: Sì—Aspose.Cells supporta i formati legacy. Basta cambiare l'estensione di origine; la stessa chiamata `SaveFormat.Docx` si applica. + +**Q: E se devo mantenere le formule durante la conversione?** +A: Word non supporta nativamente le formule di Excel. La conversione appiattisce le formule nei loro valori calcolati. Se ti servono calcoli in tempo reale, considera di incorporare la cartella di lavoro come oggetto OLE. + +**Q: C’è un modo per controllare la risoluzione delle immagini dei grafici?** +A: Usa `ImageOrPrintOptions` prima del salvataggio: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Incorporare i Grafici Excel Direttamente in Word (Oltre Save Excel as Docx) + +Se preferisci che il grafico rimanga modificabile in Word, puoi incorporare l'intero foglio Excel come oggetto OLE: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Questa tecnica *embed excel charts* come oggetti live, consentendo agli utenti finali di fare doppio clic per modificarli in Excel direttamente da Word. È un'alternativa pratica quando serve interattività. + +--- + +## Conclusione + +Ora hai una soluzione solida, end‑to‑end per **save Excel as docx** usando C#. Il tutorial ha coperto il caricamento della cartella di lavoro, le modifiche opzionali, l'operazione di salvataggio vera e propria, i passaggi di verifica e anche una rapida occhiata all'incorporamento dei grafici per scenari modificabili. Seguendo il codice sopra potrai **convert Excel to Word**, preservare ogni grafico e gestire file di grandi dimensioni con facilità. + +Pronto per la prossima sfida? Prova ad automatizzare una conversione batch, integra questa logica in un'API ASP.NET Core, o esplora **convert Excel to docx** per dashboard multi‑foglio. Le competenze appena acquisite sono una base per qualsiasi progetto di automazione dei documenti. + +Domande o una cartella di lavoro ostinata che rifiuta di convertire? Lascia un commento e risolveremo il problema insieme. Buon coding! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..97440f4c3f 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 – Aggiungere proprietà personalizzata in C#](./how-to-save-xlsb-add-custom-property-in-c/) +Scopri come salvare file XLSB aggiungendo una proprietà personalizzata usando Aspose.Cells per .NET in C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/italian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..1c902bd37c --- /dev/null +++ b/cells/italian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: Scopri come salvare file xlsb in C# aggiungendo una proprietà personalizzata + come ProjectId. Questa guida mostra come creare una cartella di lavoro Excel, aggiungere + una proprietà personalizzata e verificarla. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: it +og_description: Scopri come salvare file xlsb e aggiungere una proprietà personalizzata + come ProjectId usando C#. Guida passo‑passo con codice completo. +og_title: Come salvare XLSB – Aggiungere proprietà personalizzata in C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Come salvare XLSB – Aggiungere una proprietà personalizzata in C# +url: /it/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come salvare XLSB – Aggiungere una proprietà personalizzata in C# + +Ti sei mai chiesto **come salvare xlsb** file mentre nascondi un pezzo di metadati all'interno? Forse stai costruendo un motore di reporting che necessita di un ProjectId nascosto, o semplicemente vuoi etichettare i fogli di lavoro per l'elaborazione a valle. **Come salvare xlsb** non è una scienza missilistica, ma combinarlo con una proprietà personalizzata aggiunge una piccola complicazione che molti sviluppatori trascurano. + +In questo tutorial vedremo come creare una cartella di lavoro Excel, aggiungere una proprietà personalizzata (sì, *add custom property*), salvare il file come una cartella di lavoro binaria **XLSB**, e infine ricaricarlo per dimostrare che la proprietà è rimasta. Lungo il percorso parleremo anche di **come aggiungere custom property** come un ProjectId, così avrai a disposizione un modello riutilizzabile per progetti futuri. + +> **Consiglio professionale:** Se stai già usando la libreria Aspose.Cells (il codice qui sotto lo fa), ottieni il supporto nativo per le proprietà personalizzate senza alcun problema di interop COM. + +--- + +## Prerequisiti + +- .NET 6+ (o .NET Framework 4.6+). +- Aspose.Cells per .NET – installa via NuGet: `Install-Package Aspose.Cells`. +- Conoscenze di base di C# – niente di complicato, solo qualche istruzione `using`. + +Tutto qui. Nessuna installazione di Office, nessun interop, solo codice gestito puro. + +--- + +## Passo 1: Come salvare XLSB – Creare una cartella di lavoro Excel + +La prima cosa da fare è creare un nuovo oggetto workbook. Pensalo come aprire un file Excel vuoto che vive solo in memoria finché non decidi di scriverlo su disco. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Perché iniziare con un workbook? Perché **create excel workbook** è la base per qualsiasi manipolazione successiva—sia che tu inserisca formule, grafici o proprietà personalizzate. La classe `Workbook` astrae l'intero file, mentre `Worksheets` ti dà accesso alle singole schede. + +--- + +## Passo 2: Aggiungere una proprietà personalizzata al foglio di lavoro + +Ora arriva la parte divertente—**add custom property**. In Aspose.Cells puoi allegare una proprietà direttamente a un foglio di lavoro (o al workbook stesso). Qui memorizzeremo un ProjectId numerico che i servizi a valle possono leggere senza toccare le celle visibili. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**Come aggiungere custom property**? Basta chiamare `CustomProperties.Add(name, value)`. L'API gestisce automaticamente l'XML sottostante, così non devi preoccuparti dei dettagli di basso livello. Questo è il modo più sicuro per incorporare metadati non visibili all'utente finale. + +--- + +## Passo 3: Salvare il workbook come XLSB + +Con il workbook pronto e la proprietà personalizzata allegata, è il momento di **come salvare xlsb**. Il formato XLSB memorizza i dati in una rappresentazione binaria, solitamente più piccola e più veloce da aprire rispetto al classico XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Salvare come XLSB è semplice come passare `SaveFormat.Xlsb` al metodo `Save`. Se ti chiedi se questo rimuoverà la proprietà personalizzata—stai tranquillo, Aspose.Cells preserva sia le proprietà a livello di workbook sia quelle a livello di foglio nel file binario. + +--- + +## Passo 4: Verificare la proprietà personalizzata + +È buona abitudine ricaricare il file e confermare che la proprietà sia sopravvissuta al round‑trip. Questo dimostra anche **come aggiungere custom property** in seguito se devi aggiornarla. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Se la console stampa `12345`, hai eseguito con successo **come salvare xlsb** *e* **add project id** in un unico passaggio. La proprietà vive nei metadati interni del file, invisibile all'interfaccia utente ma perfettamente leggibile dal codice. + +--- + +## Suggerimenti aggiuntivi: Aggiungere più proprietà e casi particolari + +### Aggiungere più di una proprietà + +Puoi impilare quante proprietà vuoi: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Aggiornare una proprietà esistente + +Se una proprietà esiste già, basta assegnare un nuovo valore: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Gestire proprietà mancanti + +Tentare di leggere una proprietà inesistente genera una `KeyNotFoundException`. Proteggi il tuo codice da questo: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Compatibilità tra versioni + +XLSB funziona su Excel 2007 + e sulla versione web di Excel. Tuttavia, le versioni più vecchie di Office (< 2007) non possono aprire file XLSB. Se ti serve una compatibilità più ampia, considera di salvare una seconda copia come XLSX. + +### Considerazioni sulle prestazioni + +I file XLSB binari sono tipicamente dal 30 al 50 % più piccoli degli XLSX e si caricano più velocemente. Per set di dati di grandi dimensioni (centinaia di migliaia di righe), il guadagno di velocità può essere evidente. + +--- + +## Esempio completo funzionante + +Di seguito trovi l'intero programma che puoi copiare‑incollare in un progetto console. Include tutti i passaggi, la gestione degli errori e i commenti necessari per avviarti subito. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Output previsto** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Se vedi quanto sopra, hai padroneggiato **come salvare xlsb**, **add custom property**, e **add project id**—tutto in uno snippet ordinato e riutilizzabile. + +--- + +## Domande frequenti + +**D: Questo funziona con .NET Core?** +R: Assolutamente. Aspose.Cells è compatibile con .NET Standard, quindi lo stesso codice funziona su .NET 5/6/7 e su .NET Framework. + +**D: Posso aggiungere una proprietà personalizzata all'intero workbook invece che a un singolo foglio?** +R: Sì. Usa `workbook.CustomProperties.Add("Key", value);` per allegarla a livello di workbook. + +**D: E se devo memorizzare una stringa lunga (ad esempio JSON) come proprietà?** +R: L'API accetta stringhe di qualsiasi lunghezza, ma tieni presente che blob estremamente grandi possono aumentare la dimensione del file. Per dati massivi, considera invece un foglio nascosto. + +**D: La proprietà personalizzata è visibile nell'interfaccia di Excel?** +R: Non direttamente. Gli utenti possono visualizzarla tramite **File → Info → Properties → Advanced Properties → Custom**, ma non apparirà nella griglia. + +--- + +## Conclusione + +Abbiamo coperto **come salvare xlsb** file in C# aggiungendo una **custom property** come un ProjectId. Seguendo il modello passo‑a‑passo—**create excel workbook**, **add custom property**, **save as XLSB**, e **verify**—ora disponi di un riferimento solido e citabile che funziona sia per i crawler dei motori di ricerca sia per gli assistenti AI. + +Successivamente, potresti esplorare: + +- **How to add custom property** a più fogli di lavoro in un ciclo. +- Esportare dati da una DataTable nel workbook prima di salvare. +- Crittografare il file XLSB per maggiore sicurezza. + +Sentiti libero di sperimentare, modificare i nomi delle proprietà o sostituire il formato binario con XLSX se ti serve una compatibilità più ampia. Hai uno scenario complicato? Lascia un commento e risolveremo insieme. Buon coding! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/italian/net/excel-autofilter-validation/_index.md index 694c4c2954..24c2aabd8f 100644 --- a/cells/italian/net/excel-autofilter-validation/_index.md +++ b/cells/italian/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Il nostro tutorial su [Convalida dei dati decimali in Excel](./decimal-data-vali Scopri come filtrare automaticamente le righe di Excel utilizzando Aspose.Cells in .NET senza sforzo con questa guida completa passo dopo passo. ### [Convalida dei dati decimali in Excel](./decimal-data-validation-in-excel/) Scopri come implementare la convalida dei dati decimali in Excel utilizzando Aspose.Cells per .NET con la nostra guida intuitiva. Migliora l'integrità dei dati senza sforzo. +### [Rimuovi AutoFilter da Excel – Guida completa C#](./remove-autofilter-from-excel-complete-c-guide/) +Scopri come rimuovere l'AutoFilter da Excel utilizzando Aspose.Cells per .NET con questa guida completa in C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/italian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..92ca77755d --- /dev/null +++ b/cells/italian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: Scopri come rimuovere l'AutoFiltro da Excel usando C#. Questa guida passo + passo mostra anche come eliminare l'AutoFiltro, disattivare l'AutoFiltro in Excel + e cancellare il filtro della tabella Excel. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: it +og_description: Rimuovi AutoFilter da Excel con C#. Questo tutorial mostra come eliminare + AutoFilter, disattivare AutoFilter in Excel e cancellare il filtro della tabella + Excel in poche righe di codice. +og_title: Rimuovi AutoFilter da Excel – Guida completa C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Rimuovere l'AutoFiltro da Excel – Guida completa C# +url: /it/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Rimuovere AutoFilter da Excel – Guida Completa in C# + +Ti è mai capitato di dover **rimuovere AutoFilter da Excel** senza sapere quale chiamata API lo disattiva realmente? Non sei il solo. In molti flussi di reporting l'interfaccia del filtro ostacola l'elaborazione successiva, quindi eliminarla è una necessità comune. In questo tutorial vedremo una soluzione concisa, pronta per la produzione, che non solo mostra **come cancellare AutoFilter**, ma spiega anche **come disattivare i filtri in stile AutoFilter di Excel** e come **cancellare completamente il filtro di una tabella Excel**. + +> **Cosa otterrai:** un programma C# pronto all'uso che carica una cartella di lavoro esistente, rimuove il filtro dalla prima tabella e salva una nuova copia senza elementi UI residui. + +## Prerequisiti + +- .NET 6+ (o .NET Framework 4.7.2+) +- Il pacchetto NuGet **Aspose.Cells** (l'API che utilizziamo nel codice) +- Un file di esempio (`TableWithFilter.xlsx`) che contiene già una tabella con AutoFilter applicato +- Una conoscenza di base della sintassi C# (non servono approfondimenti interni di Excel) + +Se hai tutto questo, immergiamoci. + +--- + +## Step 1 – Installare Aspose.Cells e Configurare il Progetto + +Prima che qualsiasi codice venga eseguito, serve la libreria che ci fornisce le classi `Workbook`, `Worksheet` e `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Suggerimento:** Usa la versione di valutazione gratuita per i test; ricorda solo di impostare la chiave di licenza prima di passare in produzione. + +### Perché è importante +Aspose.Cells astrae la gestione a basso livello di OOXML, così possiamo manipolare tabelle, filtri e stili senza dover analizzare XML manualmente. Ecco perché le attività di **remove autofilter from excel** diventano una singola riga di codice anziché una serie di manipolazioni XML. + +--- + +## Step 2 – Caricare la Cartella di Lavoro che Contiene la Tabella + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +L'oggetto `Workbook` rappresenta l'intero file Excel. Caricarlo per primo garantisce una copia pulita in memoria su cui lavorare, fondamentale quando successivamente **clear excel table filter** senza influenzare altri fogli. + +--- + +## Step 3 – Ottenere il Foglio di Lavoro e la Tabella di Destinazione + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +Un **ListObject** è il termine di Aspose per una tabella Excel. Anche se il tuo foglio ha più tabelle, puoi iterare su `worksheet.ListObjects` e applicare la stessa logica a ciascuna. Questa flessibilità risponde alla domanda “e se ho diverse tabelle?” che molti sviluppatori si pongono. + +--- + +## Step 4 – Rimuovere l'AutoFilter dalla Tabella + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Impostare `AutoFilter` a `null` **rimuove completamente l'oggetto filtro**, il metodo più affidabile per **how to delete autofilter**. La proprietà alternativa `ShowAutoFilter` nasconde solo l'interfaccia UI lasciando attivo il motore di filtro—utile se vuoi solo **turn off autofilter excel** visivamente mantenendo i criteri sottostanti. + +> **Caso limite:** Se la tabella non ha un AutoFilter applicato, `table.AutoFilter` sarà già `null`. La riga sopra è sicura; semplicemente non fa nulla. + +--- + +## Step 5 – Salvare la Cartella di Lavoro Modificata + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Salvare in un nuovo file mantiene intatto l'originale—una buona pratica quando si automatizzano trasformazioni Excel. Dopo l'esecuzione del programma, apri `NoAutoFilter.xlsx`; vedrai la tabella senza menu a discesa dei filtri, confermando che l'operazione di **remove excel table filter** è riuscita. + +--- + +## Verifica del risultato – Cosa aspettarsi + +1. **Apri `NoAutoFilter.xlsx`** in Excel. +2. **Seleziona la tabella** – le icone a forma di imbuto accanto alle intestazioni di colonna dovrebbero essere sparite. +3. **Controlla gli altri fogli** – rimangono intatti, dimostrando che abbiamo **clear excel table filter** solo sul foglio desiderato. + +Se le icone sono ancora presenti, ricontrolla di aver indirizzato l'indice corretto di `ListObject`. Ricorda, le tabelle Excel sono indicizzate a zero in Aspose, quindi `ListObjects[0]` è la prima tabella del foglio. + +--- + +## Gestione di più tabelle o fogli di lavoro + +A volte è necessario **remove autofilter from excel** in cartelle di lavoro che contengono diverse tabelle su fogli differenti. Ecco una rapida estensione: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Questo ciclo garantisce di **turn off autofilter excel** ovunque, eliminando filtri nascosti che potrebbero ostacolare importazioni di dati successive. + +--- + +## Problemi comuni e come evitarli + +| Problema | Perché succede | Soluzione | +|----------|----------------|-----------| +| **Il filtro rimane dopo il salvataggio** | Usare `ShowAutoFilter = false` nasconde solo l'interfaccia. | Usa `table.AutoFilter = null` per eliminarlo davvero. | +| **Indice della tabella errato** | Supporre che la prima tabella sia quella desiderata. | Controlla `worksheet.ListObjects.Count` e usa nomi significativi (`tbl.Name`). | +| **Licenza mancante** | La versione di valutazione può inserire filigrane. | Registra la licenza subito: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **File bloccato** | Excel ha ancora il file di origine aperto. | Assicurati che la cartella di lavoro sia chiusa in Excel prima di eseguire lo script. | + +--- + +## Bonus: Aggiungere nuovamente un AutoFilter (se cambi idea) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Avere a disposizione l'operazione inversa rende il tutorial un punto di riferimento unico sia per scenari **remove autofilter from excel** sia per **how to delete autofilter**. + +--- + +## Esempio completo funzionante (pronto per copia‑incolla) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Eseguendo il codice sopra **remove autofilter from excel** per ogni tabella nella cartella di lavoro, otterrai un ambiente pulito per ulteriori elaborazioni. + +--- + +## Conclusione + +Abbiamo coperto tutto ciò che serve per **remove autofilter from excel** usando C#. Dall'installazione di Aspose.Cells, al caricamento della cartella di lavoro, alla localizzazione della tabella, alla cancellazione effettiva del filtro, fino al salvataggio del file pulito—ogni passaggio è stato spiegato con il “perché” alla base. Ora sai come **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel** e **clear excel table filter** in un unico snippet riutilizzabile. + +Pronto per la prossima sfida? Prova ad automatizzare l'aggiunta di formattazione condizionale, o esplora come **add an AutoFilter back** programmaticamente. Entrambi gli argomenti si basano direttamente sui concetti appena trattati e renderanno la tua cassetta degli attrezzi per l'automazione di Excel ancora più ricca. + +Hai domande o hai individuato uno scenario non coperto? Lascia un commento qui sotto—buona programmazione! + +--- + +![Screenshot che mostra un foglio Excel senza menu a discesa dei filtri – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/italian/net/excel-comment-annotation/_index.md index c5127e8b29..09e3fa6bde 100644 --- a/cells/italian/net/excel-comment-annotation/_index.md +++ b/cells/italian/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Scopri come aggiungere commenti alle immagini in Excel utilizzando Aspose.Cells Scopri come aggiungere commenti alle celle in Excel utilizzando Aspose.Cells per .NET. Guida passo passo per principianti per migliorare le funzionalità di Excel. ### [Commenti di formato - Carattere, colore, allineamento](./format-comments-font-color-alignment/) Scopri come formattare i commenti di Excel senza sforzo utilizzando Aspose.Cells per .NET. Personalizza carattere, dimensioni e allineamento per migliorare i tuoi fogli di calcolo. +### [Crea cartella di lavoro Excel C# – Aggiungi e compila commenti con Smart Markers](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Scopri come creare una cartella di lavoro Excel in C# e inserire commenti automaticamente usando gli Smart Markers di Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/italian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..36ec92e733 --- /dev/null +++ b/cells/italian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-21 +description: Crea una cartella di lavoro Excel in C# e impara come aggiungere commenti + a Excel, compilare i commenti automaticamente usando Smart Markers. Guida passo‑passo + per sviluppatori. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: it +og_description: Crea una cartella di lavoro Excel in C# e aggiungi rapidamente un + commento a Excel, quindi riempi il commento usando Smart Markers. Tutorial completo + con codice. +og_title: Crea una cartella di lavoro Excel in C# – Aggiungi e compila i commenti +tags: +- C# +- Excel automation +- Aspose.Cells +title: Creare una cartella di lavoro Excel in C# – Aggiungere e compilare commenti + con marcatori intelligenti +url: /it/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Creare un workbook Excel con C# – Aggiungere e compilare commenti con Smart Markers + +Ti è mai capitato di **creare un workbook Excel con C#** e di chiederti come inserire un commento che si aggiorna automaticamente? Non sei l'unico. In molti scenari di reporting si desidera un commento di cella che dica *“Created by Alice on 2024‑07‑15”* senza dover codificare manualmente nome e data ogni volta. + +In questo tutorial ti mostreremo esattamente **come aggiungere un commento a Excel**, poi **come compilare il commento** usando gli Smart Markers di Aspose.Cells. Alla fine avrai un programma pronto all'uso che crea un workbook, inserisce un commento dinamico e salva il file—tutto in pochi passaggi ordinati. + +> **Cosa otterrai:** un’app console C# completa e compilabile, una spiegazione di ogni riga, consigli per le difficoltà più comuni e idee per estendere la soluzione. + +## Prerequisiti + +- .NET 6.0 SDK o versioni successive (il codice funziona anche con .NET Core e .NET Framework) +- Visual Studio 2022 o qualsiasi IDE tu preferisca +- **Aspose.Cells for .NET** pacchetto NuGet (`Install-Package Aspose.Cells`) – questa libreria fornisce le classi `Workbook`, `Worksheet` e `SmartMarkerProcessor` usate di seguito. +- Familiarità di base con la sintassi C# – se hai già scritto un `Console.WriteLine`, sei pronto. + +Ora che le basi sono pronte, immergiamoci. + +![Screenshot di esempio di creazione di un workbook Excel C#](excel-workbook.png "Screenshot di esempio di creazione di un workbook Excel C#") + +## Passo 1: Inizializzare un nuovo Workbook – Nozioni di base per creare un workbook Excel con C# + +Per prima cosa ci serve un oggetto workbook pulito. Pensa al `Workbook` come a una tela vuota; senza di esso non puoi posizionare celle, righe o commenti. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Perché è importante:** `Workbook` crea automaticamente un foglio di lavoro predefinito, quindi non è necessario chiamare `Add` a meno che non ti servano schede aggiuntive. Accedere a `Worksheets[0]` è il modo più veloce per cominciare a popolare i dati. + +## Passo 2: Inserire un commento Smart Marker – Come aggiungere un commento con token + +Successivamente inseriamo un commento nella cella **B2** che contiene i token Smart Marker (`«UserName»` e `«CreatedDate»`). Questi token saranno sostituiti in seguito con i valori reali. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Spiegazione:** +- `CreateComment()` crea l’oggetto commento se non esiste; altrimenti restituisce quello già presente. +- La proprietà `Note` contiene il testo visibile. Avvolgendo i segnaposto in `« »` indichiamo ad Aspose.Cells che si tratta di **Smart Markers** – segnaposto che possono essere sostituiti tutti in una volta. + +> **Consiglio esperto:** Se ti serve un commento su più righe, usa `\n` all’interno della stringa, ad esempio `"Linea1\nLinea2"`. + +## Passo 3: Preparare l’oggetto dati – Come compilare il commento in modo dinamico + +Gli Smart Markers hanno bisogno di una fonte dati. In C# il modo più semplice è un tipo anonimo che corrisponde ai nomi dei segnaposto. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Perché un tipo anonimo?** +È leggero, non richiede file di classe aggiuntivi e corrisponde esattamente ai nomi delle proprietà (`UserName`, `CreatedDate`) ai token. Se preferisci un modello tipizzato, crea semplicemente una classe con le stesse proprietà. + +## Passo 4: Elaborare gli Smart Markers – Come compilare il commento usando l’oggetto dati + +Ora avviene la magia. Il `SmartMarkerProcessor` analizza il workbook alla ricerca di token `«…»` e li sostituisce con i valori presenti in `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Cosa succede dietro le quinte?** +`SmartMarkerProcessor` scorre ogni cella, commento, intestazione, ecc., cercando il pattern `«Token»`. Quando lo trova, usa il reflection per leggere la proprietà corrispondente da `markerData` e scrive il valore nel documento. Nessun ciclo manuale necessario. + +## Passo 5: Salvare il Workbook – Compilare il commento Excel e persistere il file + +Infine scriviamo il workbook su disco. Il commento ora mostra qualcosa del tipo *“Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Verifica del risultato:** Apri `CommentFilled.xlsx` in Excel, passa il mouse sopra la cella **B2** e vedrai il commento con il nome utente e il timestamp reali. Non servono ulteriori modifiche al codice per le esecuzioni future—basta cambiare i valori di `markerData`. + +--- + +## Varianti comuni e casi limite + +### Utilizzare un formato data personalizzato + +Se desideri la data nel formato `yyyy‑MM‑dd`, modifica l’oggetto dati: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Aggiungere più commenti + +Puoi ripetere il **Passo 2** per altre celle. Ogni commento può avere il proprio set di token, oppure condividere gli stessi se l’informazione è universale. + +### Lavorare con workbook esistenti + +Invece di `new Workbook()`, carica un file esistente: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Il resto dei passaggi rimane identico—gli Smart Markers funzionano sia su file nuovi sia su file pre‑esistenti. + +### Gestire valori null + +Se un token potrebbe mancare, avvolgi la proprietà in un tipo nullable o fornisci un valore di fallback: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +Il processore inserirà *“Unknown”* quando la sorgente è `null`. + +--- + +## Esempio completo funzionante (pronto per il copia‑incolla) + +Di seguito trovi il **programma intero** che puoi inserire in un progetto console e eseguire subito (sostituisci `YOUR_DIRECTORY` con un percorso reale). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Esegui il programma, apri il file generato e vedrai il commento dinamico nella cella **B2**. Facile, vero? + +--- + +## Domande frequenti (FAQ) + +**D: Funziona con .NET Framework 4.7?** +R: Assolutamente. Aspose.Cells supporta .NET Framework 4.0+ e .NET Core/5/6/7. Basta referenziare il DLL o il pacchetto NuGet appropriato. + +**D: Posso usare questo approccio per la convalida dei dati o la formattazione condizionale?** +R: Gli Smart Markers servono principalmente per inserire valori in celle, commenti, intestazioni e piè di pagina. Per la formattazione condizionale devi comunque usare le API `Style` tradizionali. + +**D: E se devo aggiungere un commento a un **foglio** diverso?** +R: Recupera il foglio di destinazione (`workbook.Worksheets["MySheet"]`) e ripeti il **Passo 2** sulle celle di quel foglio. + +--- + +## Prossimi passi e argomenti correlati + +- **Come aggiungere commenti a Excel** programmaticamente per più celle (ciclo su un intervallo). +- **Compilare commenti Excel** con dati provenienti da un database (usa un `DataTable` come fonte dati per gli Smart Markers). +- Esplora **gli array di Smart Marker** per generare tabelle automaticamente. +- Approfondisci **lo styling con Aspose.Cells** per formattare font, colore e dimensione del commento. + +Sperimenta con gli snippet, sostituisci la fonte dati e padroneggerai rapidamente **come compilare i commenti** in qualsiasi scenario di automazione Excel. + +--- + +### Conclusione + +Abbiamo appena percorso l’intero processo di **creare un workbook Excel con C#**, **aggiungere un commento a Excel** e **compilare il commento Excel** usando gli Smart Markers. La soluzione è compatta, riutilizzabile e pronta per la produzione. + +Provala, modifica i segnaposto e lascia che la libreria gestisca il lavoro pesante. Se incontri difficoltà, lascia un commento qui sotto—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/_index.md b/cells/italian/net/excel-custom-number-date-formatting/_index.md index c68e86c9ff..ae0ddab8a5 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,8 @@ 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. +### [Imposta Formato Personalizzato della Cella in C# – Guida Completa alla Scrittura e Lettura di Date in Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Scopri come impostare formati personalizzati per le date in Excel usando C# e Aspose.Cells, con esempi di scrittura e lettura. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/italian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..c072454f13 --- /dev/null +++ b/cells/italian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,209 @@ +--- +category: general +date: 2026-03-21 +description: Imposta il formato personalizzato della cella in C# e impara a scrivere + una data in Excel, applicare un formato data personalizzato, leggere DateTime da + Excel e creare rapidamente una cartella di lavoro e un foglio di lavoro. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: it +og_description: Imposta il formato personalizzato della cella in C# per scrivere la + data in Excel, applica un formato data personalizzato, leggi DateTime da Excel e + crea fogli di lavoro del workbook con facilità. +og_title: Imposta formato personalizzato della cella in C# – Scrivi e leggi le date + in Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Imposta Formato Personalizzato della Cella in C# – Guida Completa alla Scrittura + e Lettura di Date in Excel +url: /it/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Imposta Formato Personalizzato della Cella – Scrivi e Leggi Date in Excel con C# + +Hai mai dovuto **impostare un formato personalizzato della cella** in un file Excel da C# ma non sapevi da dove cominciare? Non sei solo. In molti strumenti di reporting o utility di esportazione i dati devono apparire in una locale specifica—ad esempio date dell'era giapponese, calendari fiscali o stringhe ISO‑8601. + +In questo tutorial percorreremo un **esempio completo e eseguibile** che mostra come **scrivere una data in Excel**, **applicare un formato data personalizzato**, **leggere DateTime da Excel** e **creare un foglio di lavoro** con Aspose.Cells. Alla fine avrai un unico programma autonomo da inserire in qualsiasi progetto .NET. + +## Cosa Imparerai + +- Come **creare un foglio di lavoro** programmaticamente. +- I passaggi esatti per **scrivere una data in Excel** usando una stringa locale‑specifica. +- Come **applicare un formato data personalizzato** (inclusa la notazione dell'era giapponese). +- Il modo per **leggere DateTime da Excel** e convertirlo in un oggetto `DateTime`. +- Suggerimenti, insidie e varianti che potresti incontrare nella gestione delle date in Excel. + +Nessuna documentazione esterna necessaria—tutto quello che ti serve è qui. + +## Prerequisiti + +- .NET 6.0 o successivo (il codice funziona anche su .NET Framework 4.7+). +- Aspose.Cells per .NET installato via NuGet (`Install-Package Aspose.Cells`). +- Una conoscenza di base della sintassi C#—nulla di complicato. + +> **Pro tip:** Se usi Visual Studio, abilita i *nullable reference types* per intercettare bug sottili in anticipo. + +## Passo 1: Crea un Workbook e un Worksheet + +Prima di tutto: ti serve un oggetto workbook che rappresenta il file Excel, e un worksheet dove risiederanno i dati. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Perché è importante:* La classe `Workbook` è il punto di ingresso per tutte le operazioni su Excel. Crearla in memoria significa non toccare il file system finché non salvi esplicitamente, il che rende il processo veloce e adatto ai test. + +## Passo 2: Scrivi la Data in Excel + +Successivamente, inseriremo una stringa di data dell'era giapponese (`"R02-04-01"`) nella cella **A1**. La stringa imita l'era Reiwa (anno 2, 1 aprile). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Cosa succede:* `PutValue` memorizza la stringa grezza. Aspose.Cells proverà poi a interpretarla in base allo stile della cella. Se salti questo passaggio e scrivi direttamente un `DateTime`, perderai l'informazione dell'era che vuoi visualizzare. + +## Passo 3: Applica il Formato Numerico Predefinito (ID 14) + +Excel dispone di un formato data predefinito con ID 14 (`mm-dd-yy`). Applicarlo indica al motore che la cella **contiene una data**, non solo testo. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Perché usare l'ID 14?* È il formato “data breve” universale che assicura che Excel tratti il contenuto come valore data, prerequisito necessario affinché qualsiasi formato personalizzato funzioni correttamente. + +## Passo 4: Imposta un Formato Personalizzato per Visualizzare la Notazione dell'Era Giapponese + +Ora la parte divertente: diciamo a Excel di visualizzare la data usando il formato dell'era giapponese. La stringa personalizzata `[$-ja-JP]ggge年m月d日` fa esattamente questo. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Spiegazione:* +- `[$-ja-JP]` forza la locale a giapponese. +- `ggg` è il nome dell'era (es. “R” per Reiwa). +- `e` è l'anno dell'era. +- `年`, `月`, `日` sono caratteri giapponesi letterali per anno, mese, giorno. + +Se ti serve una locale diversa, sostituisci semplicemente `ja-JP` con il codice cultura appropriato (es. `en-US`). + +## Passo 5: Recupera il Valore DateTime Analizzato + +Infine, leggiamo il **vero `DateTime`** che Excel ha analizzato dalla cella. Questo dimostra che la stringa è stata interpretata correttamente. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Risultato:* La console stampa `Parsed DateTime: 2020-04-01`. Anche se abbiamo inserito una stringa dell'era giapponese, Excel memorizza internamente la data gregoriana, che puoi usare per calcoli, confronti o ulteriori esportazioni. + +## Passo 6: Salva il Workbook (Opzionale) + +Se vuoi vedere il workbook formattato in Excel, basta salvarlo su disco. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Apri il file **JapaneseEraDate.xlsx** generato e vedrai la cella **A1** visualizzare `R02年4月1日` (il formato esatto dell'era giapponese che abbiamo impostato). + +![set cell custom format example](image-placeholder.png "Excel cell showing Japanese era date – set cell custom format") + +*Il testo alternativo sopra contiene la keyword principale, soddisfacendo il requisito SEO per le immagini.* + +## Varianti Comuni & Casi Limite + +### Scrivere un Formato Data Differente + +Se preferisci ISO‑8601 (`2020-04-01`) invece di una stringa dell'era, modifica semplicemente la chiamata `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Gestire Celle Null o Vuote + +Quando leggi una data, proteggi sempre contro celle vuote per evitare `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Supportare Molteplici Locali + +Puoi iterare su una lista di codici cultura e applicarli dinamicamente: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Pro Tips & Trucchi + +- **Imposta sempre prima un formato numerico predefinito** (`Style.Number`). Senza di esso, Excel tratta la cella come testo semplice e il formato personalizzato viene ignorato. +- **I codici locale non fanno distinzione tra maiuscole e minuscole**, ma usare la forma canonica (`ja-JP`) evita confusioni. +- **Il salvataggio è opzionale** per l'elaborazione in memoria; puoi inviare direttamente lo stream del workbook in una risposta web (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Licenze Aspose.Cells**: la versione di valutazione gratuita aggiunge una filigrana. Per la produzione, assicurati di avere una licenza valida per evitare penalità di performance. + +## Riepilogo + +Abbiamo mostrato come **impostare un formato personalizzato della cella** in C# per visualizzare date dell'era giapponese, come **scrivere una data in Excel**, **applicare un formato data personalizzato**, **leggere DateTime da Excel** e **creare un foglio di lavoro**—tutto in un unico programma autonomo. La keyword principale appare naturalmente nel testo, mentre le keyword secondarie sono integrate nei titoli e nel corpo, soddisfacendo sia gli standard SEO sia quelli di citazione AI. + +## Cosa Viene Dopo? + +- Esplora la **formattazione condizionale** per evidenziare date scadute. +- Combina questo approccio con **PivotTable** per report dinamici. +- Prova a **leggere grandi file CSV** e convertirli in Excel usando la stessa logica di gestione delle date. + +Sentiti libero di sperimentare con diverse locali, pattern personalizzati o anche fusi orari. Se incontri problemi, lascia un commento qui sotto—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-data-export-retrieval/_index.md b/cells/italian/net/excel-data-export-retrieval/_index.md index 132a0ed0de..287896041b 100644 --- a/cells/italian/net/excel-data-export-retrieval/_index.md +++ b/cells/italian/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Vuoi sapere come fare? Dai un'occhiata a questa pratica guida su [Recuperare dat ### [Recuperare dati dalle celle in Excel](./retrieve-data-from-cells-in-excel/) Scopri come recuperare dati dalle celle di Excel utilizzando Aspose.Cells per .NET in questo tutorial passo passo, perfetto sia per i principianti che per gli sviluppatori esperti. +### [Esporta tabella dati Excel in C# – Guida completa](./export-excel-data-table-in-c-complete-guide/) +Scopri come esportare una tabella di dati Excel in C# con Aspose.Cells per .NET, passo passo, ideale per sviluppatori di ogni livello. + +### [Come esportare dati Excel in C# – Guida passo‑passo](./how-to-export-excel-data-in-c-step-by-step-guide/) +Scopri come esportare dati Excel in C# con Aspose.Cells per .NET, passo passo, ideale per sviluppatori di ogni livello. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/italian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/italian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..a47e732bc0 --- /dev/null +++ b/cells/italian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Esporta la tabella dati di Excel in un DataTable con intestazioni, limita + i decimali e esporta le prime 100 righe usando Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: it +og_description: Scopri come esportare una tabella di dati Excel in un DataTable, mantenere + le intestazioni, limitare le cifre decimali e prelevare le prime 100 righe in C#. +og_title: Esporta la tabella dei dati Excel in C# – Guida passo passo +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Esporta la tabella dati di Excel in C# – Guida completa +url: /it/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Esporta Tabella Dati Excel – Guida Completa C# + +Hai bisogno di **esportare una tabella dati excel** da una cartella di lavoro in un .NET `DataTable`? Sei nel posto giusto—questa guida ti mostra esattamente come farlo, mantenere le intestazioni di colonna, limitare i decimali e prelevare solo le prime 100 righe. + +Se ti è mai capitato di fissare un foglio di calcolo e pensare, “Come faccio a portarlo nella mia app senza perdere la formattazione?” non sei solo. Nei prossimi minuti trasformeremo quel “cosa‑se” in una soluzione concreta, copia‑incolla, che funziona con Aspose.Cells, una libreria popolare per la manipolazione di Excel. + +## Cosa Imparerai + +- Come **esportare excel in datatable** usando il metodo `ExportDataTable`. +- Come mantenere i nomi originali delle colonne (`export excel with headers`). +- Come **limitare i decimali excel** configurando `ExportTableOptions`. +- Come recuperare in modo sicuro solo le prime 100 righe (`export first 100 rows`). + +Nessuno script esterno, nessuna stringa magica—solo C# puro che puoi inserire in qualsiasi progetto .NET. + +## Prerequisiti + +| Requisito | Perché è importante | +|-------------|----------------| +| .NET 6 o versioni successive (o .NET Framework 4.7+) | Aspose.Cells supporta entrambi, ma i runtime più recenti ti offrono API pronte per l'async. | +| Pacchetto NuGet Aspose.Cells per .NET | Fornisce `Workbook`, `ExportTableOptions` e l'helper `ExportDataTable`. | +| Un file Excel di esempio (ad es., `Numbers.xlsx`) | La fonte dei dati che esporti. | +| Conoscenza di base di C# | Seguirai gli snippet di codice, ma non è richiesto nulla di complesso. | + +Se qualcuno di questi termini ti è sconosciuto, aggiungi il pacchetto NuGet con `dotnet add package Aspose.Cells` e crea un piccolo file Excel con qualche numero—i tuoi dati di test. + +![esempio di esportazione tabella dati excel](excel-data-table.png "Screenshot di un foglio Excel che sarà esportato in un DataTable") + +## Passo 1: Carica la Cartella di Lavoro (export excel data table) + +La prima cosa di cui hai bisogno è un'istanza `Workbook` che punti al tuo file Excel. Pensala come aprire un libro prima di poter leggere i capitoli. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Perché è importante:** Caricare la cartella di lavoro ti dà accesso ai fogli, alle celle e agli stili. Se il percorso del file è errato, Aspose lancerà una `FileNotFoundException`, quindi verifica attentamente la posizione. + +## Passo 2: Configura le Opzioni di Esportazione – limit decimal places excel + +Per impostazione predefinita Aspose esporta ogni valore numerico con precisione completa. Spesso ti servono solo poche cifre significative, soprattutto quando i dati vengono inviati a una griglia UI o a un'API che si aspetta numeri arrotondati. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Consiglio esperto:** Se ti serve una strategia di arrotondamento diversa (ad es., sempre arrotondare per eccesso), puoi post‑processare il `DataTable` dopo l'esportazione. L'impostazione `SignificantDigits` è il modo più rapido per **limitare i decimali excel** senza scrivere loop aggiuntivi. + +## Passo 3: Esporta l'Intervallo Desiderato (export first 100 rows) + +Ora diciamo ad Aspose quale blocco di celle vogliamo trasferire in un `DataTable`. In questo tutorial preleviamo le prime 100 righe e le prime 10 colonne, ma puoi regolare questi numeri in base al tuo scenario. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Caso limite:** Se il foglio contiene meno di 100 righe, Aspose esporterà semplicemente ciò che esiste senza generare errori. Tuttavia, potresti voler proteggerti da un intervallo inaspettatamente piccolo: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Passo 4: Verifica il Risultato – Dump Rapido su Console + +Vedere i dati nel debugger è utile, ma stampare qualche riga sulla console conferma che l'**export excel to datatable** abbia effettivamente funzionato e che i decimali siano stati ridotti. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Output Atteso + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Nota come le colonne numeriche mostrino ora solo quattro cifre significative, corrispondenti all'impostazione `SignificantDigits = 4` applicata in precedenza. + +## Passo 5: Raccogli Tutto – Esempio Completo e Eseguibile + +Di seguito trovi il programma completo che puoi copiare‑incollare in un'app console. Include la gestione degli errori, il controllo opzionale del conteggio delle righe e il metodo di supporto per la stampa. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Esegui il programma e vedrai le prime 100 righe del tuo foglio, arrotondate correttamente, con i nomi delle colonne intatti. + +## Domande Frequenti & Trappole + +| Domanda | Risposta | +|----------|--------| +| **E se il mio foglio ha celle unite?** | `ExportDataTable` appiattisce le celle unite prendendo il valore della cella in alto a sinistra. Se ti serve una gestione personalizzata, separa prima le unioni o leggi gli oggetti `Cell` grezzi. | +| **Posso esportare in un `DataSet` invece?** | Sì—usa `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/italian/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..02294845ef --- /dev/null +++ b/cells/italian/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Come esportare i dati di Excel con i nomi delle colonne, preservare il + formato numerico e leggere righe specifiche usando Aspose.Cells in C#. Impara a + leggere il foglio di lavoro Excel ed esportare le righe specifiche in modo efficiente. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: it +og_description: Come esportare i dati Excel con i nomi delle colonne, preservare il + formato numerico e leggere righe specifiche usando Aspose.Cells. Un esempio completo + e eseguibile per gli sviluppatori C#. +og_title: Come esportare dati Excel in C# – Guida completa alla programmazione +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Come esportare i dati di Excel in C# – Guida passo‑passo +url: /it/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come esportare dati Excel in C# – Guida completa di programmazione + +Ti sei mai chiesto **come esportare excel** senza perdere la formattazione originale? Forse hai provato un rapido copia‑incolla e ti sei ritrovato con date visualizzate come “44728” o intestazioni di colonna mancanti. È frustrante, vero? In questo tutorial vedrai un metodo pulito, end‑to‑end, per leggere un foglio Excel, preservare il formato numerico, esportare con i nomi delle colonne e persino selezionare solo le righe di cui hai bisogno. + +Useremo la libreria Aspose.Cells perché offre un controllo granulare sulle opzioni di esportazione. Alla fine di questa guida avrai uno snippet riutilizzabile da inserire in qualsiasi progetto .NET, e comprenderai perché ogni opzione è importante. Nessuna documentazione esterna necessaria—tutto ciò che ti serve è qui. + +--- + +## Cosa imparerai + +- **Leggere un foglio Excel** in memoria con Aspose.Cells. +- **Esportare righe specifiche** (ad es. righe 0‑49) mantenendo i nomi delle colonne. +- **Preservare il formato numerico** così che valute, date e percentuali rimangano intatte. +- Come **esportare con i nomi delle colonne** e includere i commenti delle celle, se ti servono. +- Un esempio completo, pronto‑all‑uso in C#, più consigli per le difficoltà più comuni. + +### Prerequisiti + +- .NET 6.0 o successivo (il codice funziona anche con .NET Framework 4.6+). +- Aspose.Cells per .NET installato via NuGet (`Install-Package Aspose.Cells`). +- Un file Excel (`input.xlsx`) posizionato in una cartella a cui puoi fare riferimento. + +> **Consiglio professionale:** se lavori su una pipeline CI, considera di prelevare il pacchetto NuGet da un feed privato per evitare sorprese di licenza. + +--- + +## Passo 1 – Installa Aspose.Cells e aggiungi i namespace + +Per prima cosa, assicurati che il pacchetto Aspose.Cells sia nel tuo progetto. Apri la Console di Gestione Pacchetti e esegui: + +```powershell +Install-Package Aspose.Cells +``` + +Quindi aggiungi le direttive `using` necessarie nella parte superiore del tuo file C#: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Queste importazioni ti danno accesso a `Workbook`, `Worksheet`, `ExportTableOptions` e `DataTable`—i componenti fondamentali per **leggere un foglio Excel** ed esportare i dati. + +--- + +## Passo 2 – Carica la cartella di lavoro (Leggi il file Excel) + +Ora leggiamo effettivamente **il foglio Excel**. Il costruttore `Workbook` accetta il percorso del file, e Aspose.Cells gestirà sia i formati `.xlsx` sia i più vecchi `.xls`. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Perché è importante:** caricare la cartella di lavoro una sola volta e riutilizzare lo stesso oggetto `Worksheet` è molto più efficiente rispetto all’aprire il file più volte, soprattutto per fogli di grandi dimensioni. + +--- + +## Passo 3 – Configura le opzioni di esportazione (Preserva formato numerico e nomi colonne) + +Qui diciamo ad Aspose.Cells *come* esportare. La classe `ExportTableOptions` permette di affinare l’output. Attiveremo tre flag: + +1. `ExportAsString = true` – forza ogni cella a diventare una stringa, garantendo che i numeri mantengano la loro rappresentazione visiva. +2. `IncludeCellComments = true` – copia eventuali commenti associati alle celle (utile per la documentazione). +3. `PreserveNumberFormat = true` – conserva il formato numerico originale (simboli di valuta, pattern di data, ecc.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Caso limite:** se imposti `ExportAsString` a `false` ma vuoi comunque mantenere i formati numerici, potresti ottenere valori numerici grezzi (ad es. 44728 per una data). Tenere entrambi i flag attivi evita questa sorpresa. + +--- + +## Passo 4 – Recupera il primo foglio di lavoro (Leggi foglio Excel) + +La maggior parte dei file semplici ha i dati di cui hai bisogno nel primo foglio, quindi lo otterremo per indice. Se ti serve un foglio diverso, sostituisci `0` con l’indice corretto (zero‑based) o usa `workbook.Worksheets["NomeFoglio"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Perché è utile:** accedere direttamente all’oggetto worksheet ti dà il pieno controllo sulla sua collezione `Cells`, fondamentale per **esportare righe specifiche** più avanti. + +--- + +## Passo 5 – Esporta un intervallo di celle (Esporta righe specifiche) + +Ecco il cuore del tutorial: esportare le righe 0‑49 e le colonne 0‑4 (cioè le prime 50 righe e le prime cinque colonne) in un `DataTable`. Chiederemo anche ad Aspose.Cells di includere i nomi delle colonne come prima riga del `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Cosa fa questo codice + +- **`startRow: 0`** – inizia dall’estremità superiore del foglio. +- **`totalRows: 50`** – prende le prime 50 righe (cioè **esporta righe specifiche**). +- **`totalColumns: 5`** – limita l’esportazione alle prime cinque colonne. +- **`includeColumnNames: true`** – assicura che le intestazioni del `DataTable` corrispondano alla riga di intestazione di Excel, soddisfacendo il requisito **esporta con nomi colonne**. +- **`exportOptions`** – applica le impostazioni del Passo 3, così i valori numerici rimangono visualizzati come “$1,234.56” anziché “1234.56”. + +--- + +## Passo 6 – Verifica l’esportazione (Come appare il risultato) + +Stampiamo le prime righe nella console così puoi vedere che la formattazione è stata mantenuta. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Output previsto (esempio):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Nota come le date compaiano nel formato `MM/dd/yyyy` e la valuta mantenga il simbolo `$`—grazie a **preserve number format**. + +--- + +## Problemi comuni e come evitarli + +| Problema | Perché succede | Soluzione | +|----------|----------------|-----------| +| Le date diventano numeri grandi | `ExportAsString` lasciato a `false` | Mantieni `ExportAsString = true` o converti manualmente le celle | +| Mancano le intestazioni di colonna | `includeColumnNames` impostato a `false` | Impostalo a `true` quando ti serve **esporta con nomi colonne** | +| I commenti scompaiono | `IncludeCellComments` non abilitato | Attiva `IncludeCellComments` in `ExportTableOptions` | +| Viene esportato il foglio sbagliato | Uso di `Worksheets[0]` su file con più fogli | Specifica il nome del foglio: `workbook.Worksheets["Data"]` | +| Eccezione out‑of‑range | `totalRows` supera le righe effettive | Usa `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## Bonus: Esportare l’intero foglio mantenendo i formati + +Se in seguito decidi di aver bisogno dell’intero foglio, sostituisci semplicemente `totalRows` e `totalColumns` con le dimensioni massime del foglio: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Ora hai una routine **read excel worksheet** che funziona per qualsiasi dimensione, preservando comunque **number format** e **exporting with column names**. + +--- + +## Esempio completo (pronto da copiare‑incollare) + +Di seguito trovi il programma completo che puoi inserire in un’app console. Include tutti i passaggi, le importazioni e una semplice stampa di verifica. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Salva questo file come `Program.cs`, esegui `dotnet run` e dovresti vedere l’anteprima formattata nel terminale. + +--- + +## Conclusione + +Abbiamo appena percorso **come esportare excel** dati usando Aspose.Cells, coprendo tutto, dal caricamento della cartella di lavoro alla preservazione del formato numerico, all’esportazione con i nomi delle colonne e al limitare l’esportazione a righe specifiche. Il codice è autonomo, completamente eseguibile, e include salvaguardie pratiche per i casi limite più comuni. + +Pronto per la prossima sfida? Prova a esportare direttamente in CSV mantenendo la formattazione originale, oppure inserisci il `DataTable` in un contesto Entity Framework Core per inserimenti massivi nel database. Entrambi gli scenari si basano sugli stessi fondamenti trattati qui. + +Se ti è stato utile + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..626187062f 100644 --- a/cells/italian/net/excel-workbook/_index.md +++ b/cells/italian/net/excel-workbook/_index.md @@ -69,23 +69,24 @@ Perché non cogliere l'occasione per migliorare le tue competenze in Excel? Ogni ## Tutorial | Titolo | Descrizione | | --- | --- | -| [Accedi alle informazioni sull'estensione Web](./access-web-extension-information/) | Scopri come accedere alle informazioni delle estensioni Web nei file Excel utilizzando Aspose.Cells per .NET con la nostra guida dettagliata. -| [Aggiungi firma digitale a un file Excel già firmato](./add-digital-signature-to-an-already-signed-excel-file/) | Scopri come aggiungere una firma digitale a un file Excel già firmato utilizzando Aspose.Cells per .NET con questa guida dettagliata passo dopo passo. -| [Aggiungi estensione Web](./add-web-extension/) | Scopri come aggiungere estensioni web ai file Excel utilizzando Aspose.Cells per .NET con questo tutorial completo passo dopo passo che migliora le funzionalità del tuo foglio di calcolo. -| [Regola il livello di compressione](./adjust-compression-level/) Scopri come regolare i livelli di compressione per i file Excel utilizzando Aspose.Cells per .NET. Ottimizza le dimensioni dei tuoi file in modo efficiente con questa guida passo passo. | -| [Consenti apostrofo iniziale](./allow-leading-apostrophe/) | Gestisci senza sforzo gli apostrofi iniziali in Excel con Aspose.Cells per .NET. Questo tutorial completo ti guiderà passo dopo passo attraverso il processo. | -| [Crea cartella di lavoro condivisa](./create-shared-workbook/) | Scopri come creare una cartella di lavoro condivisa utilizzando Aspose.Cells per .NET con questa semplice guida passo passo. Perfetta per migliorare la collaborazione in team. | -| [Rileva tipi di collegamento](./detect-link-types/) | Scopri come rilevare i tipi di collegamento ipertestuale in Excel utilizzando Aspose.Cells per .NET. Semplici passaggi ed esempi di codice inclusi. | -| [Estrarre il file Mol incorporato](./extract-embedded-mol-file/) | Scopri come estrarre facilmente i file MOL incorporati da una cartella di lavoro di Excel utilizzando Aspose.Cells per .NET. | -| [Filtra i nomi definiti durante il caricamento della cartella di lavoro](./filter-defined-names-while-loading-workbook/) Scopri come filtrare i nomi definiti durante il caricamento di una cartella di lavoro con Aspose.Cells per .NET in questa guida completa. -| [Ottieni dettagli Odata](./get-odata-details/) | Scopri come estrarre i dettagli OData da Excel utilizzando Aspose.Cells per .NET in questo tutorial dettagliato passo dopo passo. -| [Proteggere o rimuovere la protezione tramite password della cartella di lavoro condivisa](./password-protect-or-unprotect-shared-workbook/) | Proteggi i tuoi file Excel condivisi utilizzando Aspose.Cells per .NET con la nostra semplice guida sulle tecniche di protezione e rimozione della protezione tramite password. | -| [Leggere e scrivere la connessione esterna del file XLSB](./read-and-write-external-connection-of-xlsb-file/) | Scopri come gestire le connessioni esterne nei file XLSB utilizzando Aspose.Cells per .NET in questo tutorial completo. -| [Sostituzione Regex](./regex-replace/) | Scopri come utilizzare in modo efficiente la sostituzione di espressioni regolari in Excel con Aspose.Cells per .NET. Aumenta la produttività e la precisione nelle tue attività sui fogli di calcolo. | -| [Aggiorna elemento formula Power Query](./update-power-query-formula-item/) Aggiorna facilmente gli elementi delle formule di Power Query in Excel utilizzando Aspose.Cells per .NET. Guida passo passo per semplificare i processi di manipolazione dei dati. | -| [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. | +| [Accedi alle informazioni sull'estensione Web](./access-web-extension-information/) | Scopri come accedere alle informazioni delle estensioni Web nei file Excel utilizzando Aspose.Cells per .NET con la nostra guida dettagliata. | +| [Aggiungi firma digitale a un file Excel già firmato](./add-digital-signature-to-an-already-signed-excel-file/) | Scopri come aggiungere una firma digitale a un file Excel già firmato utilizzando Aspose.Cells per .NET con questa guida dettagliata passo dopo passo. | +| [Aggiungi estensione Web](./add-web-extension/) | Scopri come aggiungere estensioni web ai file Excel utilizzando Aspose.Cells per .NET con questo tutorial completo passo dopo passo che migliora le funzionalità del tuo foglio di calcolo. | +| [Regola il livello di compressione](./adjust-compression-level/) Scopri come regolare i livelli di compressione per i file Excel utilizzando Aspose.Cells per .NET. Ottimizza le dimensioni dei tuoi file in modo efficiente con questa guida passo passo. | +| [Consenti apostrofo iniziale](./allow-leading-apostrophe/) | Gestisci senza sforzo gli apostrofi iniziali in Excel con Aspose.Cells per .NET. Questo tutorial completo ti guiderà passo dopo passo attraverso il processo. | +| [Crea cartella di lavoro condivisa](./create-shared-workbook/) | Scopri come creare una cartella di lavoro condivisa utilizzando Aspose.Cells per .NET con questa semplice guida passo passo. Perfetta per migliorare la collaborazione in team. | +| [Rileva tipi di collegamento](./detect-link-types/) | Scopri come rilevare i tipi di collegamento ipertestuale in Excel utilizzando Aspose.Cells per .NET. Semplici passaggi ed esempi di codice inclusi. | +| [Estrarre il file Mol incorporato](./extract-embedded-mol-file/) | Scopri come estrarre facilmente i file MOL incorporati da una cartella di lavoro di Excel utilizzando Aspose.Cells per .NET. | +| [Filtra i nomi definiti durante il caricamento della cartella di lavoro](./filter-defined-names-while-loading-workbook/) Scopri come filtrare i nomi definiti durante il caricamento di una cartella di lavoro con Aspose.Cells per .NET in questa guida completa. | +| [Ottieni dettagli Odata](./get-odata-details/) | Scopri come estrarre i dettagli OData da Excel utilizzando Aspose.Cells per .NET in questo tutorial dettagliato passo dopo passo. | +| [Proteggere o rimuovere la protezione tramite password della cartella di lavoro condivisa](./password-protect-or-unprotect-shared-workbook/) | Proteggi i tuoi file Excel condivisi utilizzando Aspose.Cells per .NET con la nostra semplice guida sulle tecniche di protezione e rimozione della protezione tramite password. | +| [Leggere e scrivere la connessione esterna del file XLSB](./read-and-write-external-connection-of-xlsb-file/) | Scopri come gestire le connessioni esterne nei file XLSB utilizzando Aspose.Cells per .NET in questo tutorial completo. | +| [Sostituzione Regex](./regex-replace/) | Scopri come utilizzare in modo efficiente la sostituzione di espressioni regolari in Excel con Aspose.Cells per .NET. Aumenta la produttività e la precisione nelle tue attività sui fogli di calcolo. | +| [Aggiorna elemento formula Power Query](./update-power-query-formula-item/) Aggiorna facilmente gli elementi delle formule di Power Query in Excel utilizzando Aspose.Cells per .NET. Guida passo passo per semplificare i processi di manipolazione dei dati. | +| [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 cartella di lavoro Excel con tabella formattata – Guida passo‑passo](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Scopri come creare una cartella di lavoro Excel con una tabella stilizzata usando Aspose.Cells per .NET in questa guida dettagliata passo passo. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/italian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..89b936b024 --- /dev/null +++ b/cells/italian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-21 +description: Crea una cartella di lavoro Excel e importa la datatable in Excel impostando + lo stile delle colonne, esporta i dati in Excel e formatta le date delle celle Excel + in minuti. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: it +og_description: Crea rapidamente una cartella di lavoro Excel. Impara a importare + una tabella dati in Excel, impostare lo stile delle colonne, esportare i dati in + Excel e formattare le date delle celle di Excel in un'unica guida. +og_title: Crea una cartella di lavoro Excel – Tutorial completo per lo stile e l'esportazione +tags: +- C# +- Aspose.Cells +- Excel automation +title: Crea cartella di lavoro Excel con tabella stilizzata – Guida passo passo +url: /it/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea Cartella di Lavoro Excel – Tutorial di Programmazione Completo + +Mai avuto bisogno di **create excel workbook** che abbia un aspetto curato direttamente dal codice? Forse stai estraendo dati da un database e vuoi che le date vengano visualizzate nel formato corretto senza doverle sistemare in Excel in seguito. È un problema comune—soprattutto quando il risultato arriva nella casella di posta di un cliente e si aspetta che tutto sia pronto all'uso. + +In questa guida percorreremo una soluzione unica e autonoma che **imports datatable to excel**, applica un **set column style**, e infine **export data to excel** come un file ben formattato. Vedrai esattamente come **format excel cells date** in modo che il foglio di calcolo legga come un report professionale, e otterrai un esempio completo e eseguibile alla fine. Nessun pezzo mancante, nessuna scorciatoia “vedi la documentazione”—solo codice puro che puoi inserire nel tuo progetto oggi. + +--- + +## Cosa Imparerai + +- Come **create excel workbook** usando la libreria Aspose.Cells (o qualsiasi API compatibile). +- Il modo più rapido per **import datatable to excel** senza loop manuali cella‑per‑cella. +- Tecniche per **set column style**, includendo l'applicazione di un formato data a una colonna specifica. +- Come **export data to excel** con una singola chiamata `Save`. +- Problemi comuni quando provi a **format excel cells date** e come evitarli. + +### Prerequisiti + +- .NET 6+ (o .NET Framework 4.6+). +- Aspose.Cells per .NET installato (`Install-Package Aspose.Cells`). +- Un `DataTable` pronto per l'esportazione—la tua fonte dati può essere SQL, CSV, o qualsiasi cosa che possa essere trasformata in un `DataTable`. + +Se sei già a tuo agio con C# e hai tutti questi componenti a disposizione, sei pronto a partire. Altrimenti, la sezione “Prerequisiti” sopra ti fornirà una rapida checklist. + +--- + +## Passo 1 – Crea l'Istanza della Cartella di Lavoro Excel + +La prima cosa da fare quando vuoi **create excel workbook** programmaticamente è istanziare l'oggetto workbook. Pensalo come aprire un quaderno vuoto dove scriverai i tuoi dati in seguito. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Perché è importante:** +> La classe `Workbook` è il punto di ingresso per ogni operazione in Aspose.Cells. Crearla in anticipo ti fornisce una tela pulita, e potrai successivamente caricare un file esistente se devi aggiungere dati invece di partire da zero. + +--- + +## Passo 2 – Prepara il DataTable da Importare + +Prima di poter **import datatable to excel**, ci serve un `DataTable`. Nei progetti reali proviene spesso da `SqlDataAdapter.Fill` o `DataTable.Load`. Per chiarezza, creeremo un metodo stub che restituisce una tabella pronta. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Suggerimento:** Se le tue date sono memorizzate come stringhe, convertili prima in `DateTime`—altrimenti il passaggio **format excel cells date** non funzionerà come previsto. + +--- + +## Passo 3 – Definisci gli Stili per Ogni Colonna (Set Column Style) + +Ora arriva la parte in cui **set column style**. Creeremo un array di oggetti `Style`—uno per colonna. La prima colonna ottiene un formato data integrato (codice 14), mentre le altre mantengono il formato generale (codice 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Perché usare oggetti stile?** +> Applicare uno stile una volta e riutilizzarlo è molto più efficiente che impostare il formato su ogni cella singolarmente. Garantisce inoltre che l'intera colonna rispetti la stessa regola **format excel cells date**, fondamentale per la coerenza quando il file viene aperto in diverse impostazioni locali. + +--- + +## Passo 4 – Importa il DataTable con Stili nel Foglio di Lavoro + +Con il workbook pronto e gli stili definiti, ora **import datatable to excel**. Il metodo `ImportDataTable` fa il lavoro pesante: scrive le intestazioni di colonna, le righe, e applica gli stili che abbiamo passato. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Cosa succede dietro le quinte?** +> - `true` indica ad Aspose.Cells di includere i nomi delle colonne come prima riga. +> - `0, 0` sono gli indici di riga e colonna di partenza (angolo in alto a sinistra). +> - `columnStyles` allinea ogni colonna con lo stile che abbiamo preparato, garantendo che la regola **format excel cells date** venga applicata alla colonna data. + +--- + +## Passo 5 – Salva (Esporta) il Workbook su un File Fisico + +Infine, **export data to excel** salvando il workbook su disco. Puoi cambiare il percorso in qualsiasi cartella desideri, o persino trasmettere il file direttamente in una risposta HTTP per una web API. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Consiglio professionale:** Usa `workbook.Save(Stream, SaveFormat.Xlsx)` quando devi inviare il file sulla rete senza scriverlo su disco. + +--- + +## Esempio Completo Funzionante (Tutti i Passi Combinati) + +Di seguito trovi il programma completo, pronto per l'esecuzione. Copialo e incollalo in un'app console, regola il percorso di output, e avrai un file Excel ben formattato in pochi secondi. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Output previsto:** +Quando apri `StyledTable.xlsx`, la colonna A mostra date come `03/19/2026` (a seconda della tua locale), mentre le colonne B e C visualizzano i nomi dei prodotti e le quantità come testo semplice/numeri. Nessun passaggio di formattazione aggiuntivo necessario—il tuo processo di **create excel workbook** è completato. + +--- + +## Domande Frequenti & Casi Limite + +### 1️⃣ E se il mio DataTable ha più di tre colonne? +Aggiungi più oggetti `Style` all'array `columnStyles` e regola la proprietà `Number` per qualsiasi colonna che necessiti di un formato speciale (ad esempio, valuta, percentuali). Il metodo `ImportDataTable` abbinerà ogni stile in base alla posizione. + +### 2️⃣ Posso applicare un formato data personalizzato invece del 14 integrato? +Assolutamente. Sostituisci `columnStyles[i].Number = 14;` con: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Come **export data to excel** in una web API senza scrivere su disco? +Usa un `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ E se la locale dell'utente si aspetta un separatore di data diverso? +Il formato data integrato (ID 14) rispetta le impostazioni di locale del workbook. Se hai bisogno di un formato fisso indipendente dalla locale, usa la proprietà `Custom` come mostrato sopra. + +### 5️⃣ Funziona con .NET Core? +Sì—Aspose.Cells supporta .NET Standard 2.0 e versioni successive, quindi lo stesso codice funziona su .NET 6, .NET 7 o qualsiasi runtime compatibile. + +--- + +## Consigli di Best‑Practice (Pro Tips) + +- **Reuse styles**: Creare uno stile per colonna è poco costoso, ma riutilizzare lo stesso oggetto stile per colonne identiche salva memoria. +- **Avoid cell‑by‑cell loops**: `ImportDataTable` è altamente ottimizzato; i loop manuali sono più lenti e soggetti a errori. +- **Set workbook culture early** se hai bisogno di separatori numerici/data coerenti tra ambienti: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validate DataTable** before import—null dates will throw an exception when the date style is applied. +- **Turn on calculation** if you add formulas after import: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Conclusione + +Ora hai una ricetta completa, end‑to‑end, per **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, e **format excel cells date**—tutto in meno di una dozzina di righe di codice C#. L'approccio è veloce, affidabile, e mantiene le preoccupazioni di formattazione all'interno del codice, così il foglio finale è pronto per gli utenti business non appena lo aprono. + +Pronto per la prossima sfida? Prova ad aggiungere formattazione condizionale, inserire grafici, o convertire il + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/italian/net/row-and-column-management/_index.md index c36146a67b..8aceea1ec4 100644 --- a/cells/italian/net/row-and-column-management/_index.md +++ b/cells/italian/net/row-and-column-management/_index.md @@ -66,6 +66,8 @@ Scopri come visualizzare righe e colonne in Excel utilizzando Aspose.Cells per . Scopri come eliminare una colonna in un file Excel utilizzando Aspose.Cells per .NET. Segui la nostra guida dettagliata e passo passo per semplificare le modifiche ai file Excel. ### [Elimina una riga in Aspose.Cells .NET](./delete-row-aspose-cells/) Scopri come eliminare una riga in Excel con Aspose.Cells per .NET. Questa guida dettagliata illustra i prerequisiti, l'importazione del codice e una procedura dettagliata per una manipolazione dei dati senza problemi. +### [Carica file Excel C# – Come eliminare righe e rimuovere righe specifiche](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Scopri come caricare un file Excel in C# e rimuovere righe specifiche usando Aspose.Cells per .NET. ### [Elimina più righe in Aspose.Cells .NET](./delete-multiple-rows-aspose-cells/) Impara a eliminare più righe in Excel utilizzando Aspose.Cells per .NET. Questa guida dettagliata e passo passo include prerequisiti, esempi di codice e domande frequenti per gli sviluppatori. ### [Inserire una colonna in Aspose.Cells .NET](./insert-column-aspose-cells/) diff --git a/cells/italian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/italian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..01b9cfade8 --- /dev/null +++ b/cells/italian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-21 +description: Carica un file Excel in C# e rimuovi le righe di dati con Aspose.Cells. + Scopri come eliminare righe, rimuovere righe specifiche e padroneggiare la cancellazione + di righe in Excel con C# in pochi minuti. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: it +og_description: Carica file Excel C# ed elimina rapidamente le righe, rimuovi righe + specifiche e gestisci la cancellazione delle righe Excel in C# con Aspose.Cells. + Guida completa passo passo. +og_title: Carica file Excel C# – Elimina righe e rimuovi righe specifiche +tags: +- C# +- Excel +- Aspose.Cells +title: Carica file Excel C# – Come eliminare righe e rimuovere righe specifiche +url: /it/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Carica file Excel C# – Come eliminare righe e rimuovere righe specifiche + +Ti è mai capitato di **caricare file Excel C#** e poi potare via le righe di cui non hai bisogno? Forse stai pulendo un dump di dati, o hai un modello in cui certe righe devono scomparire prima di inviare la cartella di lavoro a un cliente. In ogni caso, il problema è lo stesso: hai un file `.xlsx` sul disco, vuoi aprirlo in .NET, e devi **eliminare righe** senza rompere tabelle nascoste o oggetti elenco. + +Ecco la questione—Aspose.Cells rende tutto un gioco da ragazzi. In questo tutorial vedrai un esempio completo, pronto‑da‑eseguire, che mostra esattamente **come eliminare righe**, come **rimuovere righe specifiche**, e perché potresti interessarti a **c# excel row deletion**. Alla fine avrai un `output.xlsx` pulito che contiene solo le righe desiderate. + +## Cosa copre questa guida + +- Caricamento di un workbook Excel dal disco usando Aspose.Cells. +- Eliminazione di un intervallo di righe (ad es., righe 5‑10) rispettando eventuali intestazioni ListObject. +- Salvataggio del workbook modificato nel file system. +- Problemi comuni, come eliminare accidentalmente righe all'interno di una tabella, e consigli per gestirli. +- Un esempio di codice completo e eseguibile che puoi inserire in un'app console oggi. + +> **Prerequisiti** +> • .NET 6+ (o .NET Framework 4.6+). +> • Aspose.Cells per .NET installato via NuGet (`Install-Package Aspose.Cells`). +> • Familiarità di base con C# e i concetti di Excel (fogli di lavoro, celle, tabelle). + +Se ti chiedi **perché dovresti usare Aspose.Cells** invece di, ad esempio, `Microsoft.Office.Interop.Excel`, la risposta è velocità, nessun requisito COM, e la possibilità di eseguire su server senza Office installato. Inoltre, l'API è semplice per le operazioni di eliminazione di righe. + +--- + +## Passo 1: Caricare il workbook Excel in C# + +Prima di poter eliminare qualcosa, devi caricare il workbook in memoria. La classe `Workbook` rappresenta l'intero file Excel. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Perché è importante:** +Caricare il file crea un grafo di oggetti che rispecchia la struttura di Excel—fogli di lavoro, celle, tabelle, ecc. Tenendo una riferimento a `ws`, puoi manipolare le righe direttamente senza preoccuparti di blocchi di file o particolarità dell'interoperabilità COM. + +--- + +## Passo 2: Eliminare le righe che contengono solo dati + +Ora che il workbook è in memoria, puoi eliminare le righe. Il metodo `Cells.DeleteRows(startRow, totalRows)` rimuove un blocco contiguo. Nel nostro esempio elimineremo le righe 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Come funziona:** +- `startRow` è basato su zero, quindi `5` si riferisce in realtà alla riga 6 di Excel. Regola di conseguenza. +- Se il foglio di lavoro contiene un **ListObject** (tabella Excel) la cui intestazione si trova alla riga 4, Aspose.Cells proteggerà l'intestazione e eliminerà solo le righe di dati sottostanti. Questa sicurezza integrata impedisce di corrompere tabelle strutturate—un caso limite comune quando **rimuovi righe di dati**. + +> **Suggerimento professionale:** Se devi eliminare righe non contigue (ad es., righe 3, 7, 12), itera su una collezione invertita di indici di riga e chiama `DeleteRows(rowIndex, 1)` per ciascuna. Eliminare dal basso verso l'alto preserva gli indici originali per le righe rimanenti. + +--- + +## Passo 3: Salvare il workbook modificato + +Una volta rimosse le righe indesiderate, basta scrivere il workbook nuovamente su disco. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +Il metodo `Save` determina automaticamente il formato del file dall'estensione (`.xlsx` in questo caso). Se ti serve un formato diverso—CSV, PDF, ecc.—basta cambiare l'estensione o passare un enum `SaveFormat`. + +### Risultato atteso + +Apri `output.xlsx` in Excel e vedrai che le righe 5‑14 (le righe originali 5‑10) sono scomparse. Tutti gli altri dati si spostano verso l'alto di conseguenza, e qualsiasi formula che faceva riferimento alle righe eliminate viene automaticamente adeguata da Aspose.Cells. + +--- + +## Domande frequenti (FAQ) + +### Come elimino le righe in base a una condizione (ad es., tutte le righe dove la colonna A è vuota)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +Il ciclo scorre all'indietro per evitare lo spostamento degli indici. Questo modello risponde alla più ampia domanda **c# excel row deletion** quando è necessaria una logica condizionale. + +### Cosa succede se il mio foglio di lavoro contiene più ListObjects? + +Aspose.Cells tratta ogni ListObject in modo indipendente. Se l'intestazione di una tabella verrebbe colpita dall'intervallo di eliminazione, l'API genera un `InvalidOperationException`. Per aggirare il problema, regola l'intervallo o temporaneamente cancella la proprietà `ShowTableStyleFirstColumn` del ListObject, esegui l'eliminazione, poi ripristinala. + +### Posso eliminare le righe senza caricare l'intero workbook in memoria? + +Sì—Aspose.Cells offre una **API di streaming** (`Workbook.LoadOptions`) che legge i dati a blocchi. Tuttavia, l'eliminazione di righe richiede intrinsecamente la struttura del foglio di lavoro, quindi dovrai comunque caricare il foglio di destinazione in memoria. Per file massivi (>500 MB), considera l'elaborazione a lotti o l'uso dell'**API cell‑by‑cell**. + +--- + +## Esempio completo e eseguibile + +Di seguito trovi il programma completo che puoi compilare ed eseguire come app console. Sostituisci `YOUR_DIRECTORY` con un percorso di cartella reale sul tuo computer. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Esecuzione del codice:** +1. Apri un terminale o Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Sostituisci `Program.cs` con lo snippet sopra. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Dovresti vedere l'output della console che conferma l'eliminazione e la posizione del file salvato. + +--- + +## Problemi comuni e come evitarli + +| Problema | Perché succede | Soluzione | +|----------|----------------|-----------| +| **Eliminare accidentalmente l'intestazione di un ListObject** | `DeleteRows` non verifica le intestazioni di tabella nascoste quando l'intervallo le sovrappone. | Assicurati che la tua riga di inizio sia **dopo** qualsiasi intestazione di tabella, oppure usa l'API `ListObject` per eliminare le righe all'interno della tabella (`ListObject.DeleteRows`). | +| **Indici di riga fuori di uno** | Aspose.Cells utilizza l'indicizzazione a base zero, mentre gli utenti di Excel pensano in base uno. | Ricorda di sottrarre 1 dal numero di riga di Excel quando scrivi il codice. | +| **Le formule si rompono dopo l'eliminazione** | Eliminare righe può causare errori `#REF!` se le formule fanno riferimento alle righe rimosse. | Aspose.Cells aggiorna automaticamente la maggior parte delle formule, ma verifica attentamente eventuali riferimenti esterni o intervalli denominati. | +| **Rallentamento delle prestazioni su file enormi** | Eliminare molte righe attiva la ricostruzione interna dell'indice. | Esegui eliminazioni in batch (elimina un grande intervallo una sola volta) invece di molte eliminazioni singole. Usa `DeleteRows(start, count)` dove possibile. | + +--- + +## Prossimi passi e argomenti correlati + +- **Rimuovere righe specifiche in base ai valori delle celle:** Combina il ciclo condizionale mostrato nella FAQ con `DeleteRows`. +- **Inserimento massivo di righe:** Usa `InsertRows` per aggiungere righe segnaposto prima di popolare i dati. +- **Lavorare con tabelle (ListObjects):** Esplora i metodi `ListObject` per operazioni a livello di riga all'interno di tabelle strutturate. +- **Esportare in CSV dopo l'eliminazione di righe:** Chiama `workbook.Save("output.csv", SaveFormat.Csv)` per produrre un CSV pulito senza le righe rimosse. + +Ognuno di questi si basa sul flusso di lavoro principale **load excel file c#** che hai appena imparato, permettendoti di perfezionare i file Excel in modo programmatico. + +--- + +## Conclusione + +Abbiamo esaminato uno scenario pratico di **load excel file c#**, dimostrato **come eliminare righe**, e trattato le sfumature di **rimuovere righe specifiche** e **rimuovere righe di dati** usando Aspose.Cells. Caricando il workbook, chiamando `DeleteRows` e salvando il risultato, ottieni una **c# excel row deletion** affidabile senza l'overhead dell'interoperabilità COM. + +Provalo su un dataset reale—magari pulisci un report di vendite o rimuovi righe di test da un modello. Una volta che ti senti a tuo agio, sperimenta con eliminazioni condizionali e operazioni consapevoli delle tabelle. L'API è abbastanza robusta sia per script semplici sia per processori batch di livello aziendale. + +Buon coding, e sentiti libero di lasciare un commento se incontri problemi! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/italian/net/worksheet-operations/_index.md index b6bc80e3ea..bc88d41d95 100644 --- a/cells/italian/net/worksheet-operations/_index.md +++ b/cells/italian/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Scopri come impostare uno sfondo grafico nei file ODS utilizzando Aspose.Cells p Impara ad aggiornare la cronologia del registro delle revisioni nelle cartelle di lavoro condivise utilizzando Aspose.Cells per .NET. Semplifica la collaborazione e mantieni una chiara documentazione dei documenti. ### [Utilizzare la proprietà Sheet_SheetId di OpenXml nel foglio di lavoro](./utilize-sheet-sheetid-property/) Sfrutta la potenza di Excel con Aspose.Cells per .NET. Impara a gestire efficacemente gli ID dei fogli con la nostra guida passo passo. +### [Come creare fogli di lavoro – Guida passo‑passo per la generazione dinamica di Excel](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Scopri come creare fogli di lavoro dinamici in Excel passo dopo passo con Aspose.Cells per .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/italian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..dcec1857fb --- /dev/null +++ b/cells/italian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,263 @@ +--- +category: general +date: 2026-03-21 +description: Impara a creare fogli di lavoro, generare fogli Excel con nomi di fogli + dinamici e salvare la cartella di lavoro come XLSX usando Aspose.Cells in C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: it +og_description: Come creare fogli di lavoro in Excel usando Aspose.Cells, generare + fogli Excel con nomi di foglio dinamici e salvare la cartella di lavoro come XLSX. +og_title: Come creare fogli di lavoro – Tutorial completo C# +tags: +- Aspose.Cells +- C# +- Excel automation +title: Come creare fogli di lavoro – Guida passo passo per la generazione dinamica + di Excel +url: /it/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come creare fogli di lavoro – Tutorial completo C# + +Ti sei mai chiesto **come creare fogli di lavoro** al volo senza aprire manualmente Excel ogni volta? Non sei solo. Molti sviluppatori si trovano in difficoltà quando devono **generare fogli Excel** da fonti di dati e vogliono che ogni foglio abbia un nome significativo e dinamico. La buona notizia? Con Aspose.Cells puoi automatizzare l'intero processo, **process master sheet**, e infine **save workbook as XLSX** in poche righe di codice. + +In questo tutorial percorreremo uno scenario reale: partire da una cartella di lavoro vuota, inserire un token smart‑marker che indica ad Aspose quali fogli di dettaglio creare, configurare un modello di denominazione in modo che ogni foglio ottenga un nome univoco e infine salvare il risultato su disco. Alla fine avrai un programma C# pronto all'uso che crea fogli di lavoro, genera fogli Excel con nomi di foglio dinamici e salva la cartella di lavoro come XLSX—tutto senza toccare l'interfaccia utente. + +> **Prerequisiti** +> • .NET 6+ (or .NET Framework 4.6+). +> • Aspose.Cells for .NET (the free trial works for this demo). +> • Conoscenze di base di C#—non sono richiesti trucchi avanzati di interop Excel. + +--- + +## Panoramica di ciò che costruiremo + +- **Master sheet** contenente un segnaposto smart‑marker (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** che legge una fonte di dati (ad es., un `DataTable`) e crea un nuovo foglio di lavoro per ogni dipartimento. +- **Dynamic worksheet names** seguendo il modello `Dept_{0}` dove `{0}` è sostituito dal nome del dipartimento. +- **Final XLSX file** salvato in una cartella specificata. + +Questo è tutto. Semplice, ma sufficientemente potente per fatture, report o qualsiasi output Excel a più schede. + +![Diagramma che mostra come un master sheet viene elaborato per generare più fogli di lavoro dinamici](/images/how-to-create-worksheets-diagram.png "Diagramma di creazione dei fogli di lavoro") + +*Testo alternativo: illustrazione di come creare fogli di lavoro con nomi di foglio dinamici usando Aspose.Cells.* + +## Passo 1: Configurare il progetto e aggiungere Aspose.Cells + +### Perché è importante + +Prima che qualsiasi codice venga eseguito, il compilatore deve sapere dove si trovano le classi `Workbook`, `Worksheet` e `SmartMarkerProcessor`. Aggiungere il pacchetto NuGet garantisce di avere l'API più recente e completa. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Suggerimento:** Se stai usando Visual Studio, fai clic con il tasto destro sul progetto → *Manage NuGet Packages* → cerca *Aspose.Cells* e installa l'ultima versione stabile. + +--- + +## Passo 2: Creare una nuova cartella di lavoro e il foglio master + +### Cosa stiamo facendo + +Iniziamo con una cartella di lavoro pulita, poi prendiamo il primo foglio di lavoro (indice 0). Questo foglio fungerà da **master sheet** che contiene il token smart‑marker. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +La classe `Workbook` è il contenitore di tutti i fogli di lavoro. Per impostazione predefinita crea un foglio chiamato *Sheet1*; rinominarlo in “Master” rende il file finale più facile da navigare. + +## Passo 3: Inserire un token Smart‑Marker per i nomi dei fogli di dettaglio + +### Perché usare uno smart‑marker? + +Gli smart marker consentono ad Aspose.Cells di sostituire i segnaposti con i dati in fase di esecuzione. Il token `«DetailSheetNewName:Dept»` indica al processore: *“Quando vedi questo, crea un nuovo foglio di dettaglio per ogni riga nella colonna `Dept`.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Puoi posizionare il token ovunque; noi abbiamo scelto **A1** per chiarezza. Quando il processore viene eseguito, sostituirà il token con il nome reale del dipartimento e genererà un foglio di lavoro corrispondente. + +## Passo 4: Preparare la fonte di dati + +### Come i dati guidano la creazione dei fogli + +Aspose.Cells funziona con qualsiasi fonte di dati `IEnumerable`. Per questa demo useremo un `DataTable` con una singola colonna chiamata `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **E se hai più colonne?** +> Il processore ignorerà le colonne extra a meno che non le riferisci in ulteriori smart marker. Questo mantiene la generazione dei fogli leggera. + +## Passo 5: Configurare SmartMarkerProcessor e il modello di denominazione + +### Nomi di foglio dinamici in azione + +Vogliamo che ogni nuovo foglio sia nominato `Dept_Finance`, `Dept_HR`, ecc. L'opzione `DetailSheetNewName` ci permette di definire un modello in cui `{0}` è sostituito con il nome reale del dipartimento. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Se un dipartimento appare due volte, Aspose aggiungerà automaticamente un suffisso numerico (ad es., `Dept_Finance_1`) per evitare nomi di foglio duplicati. + +## Passo 6: Elaborare il master sheet per generare i fogli di dettaglio + +### Il cuore di **process master sheet** + +Chiamare `Process` fa il lavoro pesante: scansiona il master sheet alla ricerca di smart marker, crea nuovi fogli di lavoro, copia il layout del master e riempie ciascuno con i dati della riga. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Dopo questa chiamata, la cartella di lavoro contiene un master sheet più quattro fogli di dettaglio—ognuno nominato secondo il nostro modello e popolato con il nome del dipartimento nella cella A1. + +## Passo 7: Salvare la cartella di lavoro come XLSX + +### Passo finale—**save workbook as XLSX** + +Ora che i fogli di lavoro esistono, scriviamo il file su disco. Puoi scegliere qualsiasi percorso; assicurati solo che la directory esista. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Aprendo `DetailSheets.xlsx` vedrai: + +| Nome Foglio | Cella A1 (Contenuto) | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Caso limite:** Se la cartella di output non esiste, `Save` genera una `DirectoryNotFoundException`. Avvolgi la chiamata in un blocco try‑catch o crea la cartella in anticipo. + +## Esempio completo funzionante + +Mettendo tutto insieme, ecco il programma completo che puoi copiare‑incollare in un'app console: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Esegui il programma, apri il file risultante e vedrai esattamente il layout descritto in precedenza. Nessun copia‑incolla manuale, nessun interop COM—solo codice C# pulito che **genera fogli Excel** con **nomi di foglio dinamici**. + +## Domande comuni e problemi + +| Domanda | Risposta | +|----------|--------| +| *Posso usare un DataSet con più tabelle?* | Sì. Passa la tabella appropriata a `Process` o usa un dizionario di tabelle. | +| *Cosa succede se ho bisogno di più di uno smart‑marker sul master sheet?* | Inserisci token aggiuntivi come `«DetailSheetNewName:Region»` e configura un modello di denominazione separato se necessario. | +| *Il master sheet viene mantenuto nel file finale?* | Per impostazione predefinita, sì. Se non ti serve, chiama `workbook.Worksheets.RemoveAt(0)` dopo l'elaborazione. | +| *Come gestisce Aspose set di dati molto grandi?* | Esegue lo streaming dei dati in modo efficiente, ma potresti voler aumentare `MemorySetting` se raggiungi limiti di memoria. | +| *Posso esportare in CSV invece di XLSX?* | Assolutamente—usa `workbook.Save("file.csv", SaveFormat.Csv)`. La stessa logica di creazione dei fogli si applica. | + +## Prossimi passi + +Ora che sai **come creare fogli di lavoro** dinamicamente, potresti esplorare: + +- **Saving workbook as XLSX** con protezione password (`workbook.Protect("pwd")`). +- **Generating Excel sheets** da sorgenti JSON o XML usando `JsonDataSource` o `XmlDataSource`. +- **Applying styles** a ciascun foglio generato (font, colori) tramite oggetti `Style`. +- **Merging cells** o inserire formule automaticamente per report di sintesi. + +Ciascuna di queste estensioni si basa sullo stesso concetto di **process master sheet**, quindi troverai la transizione indolore. + +## Conclusione + +Abbiamo coperto l'intero flusso: dall'inizializzare una cartella di lavoro, inserire uno smart‑marker, configurare **nomi di foglio dinamici**, elaborare il master sheet per **generare fogli Excel**, e infine **salvare la cartella di lavoro come XLSX**. L'esempio è completo, eseguibile e mostra le migliori pratiche sia per le prestazioni che per la manutenibilità. + +Provalo, modifica il modello di denominazione, alimentalo con dati aziendali reali e guarda la tua automazione Excel decollare. Se incontri problemi, lascia un commento qui sotto—buon 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/calculation-engine/_index.md b/cells/japanese/net/calculation-engine/_index.md index 3b15c934ea..920bbf0d61 100644 --- a/cells/japanese/net/calculation-engine/_index.md +++ b/cells/japanese/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ Aspose.Cellsを使用して、.NETアプリケーションにカスタム計算 ### [Aspose.Cells for .NET の再帰オプションを使用して Excel の計算時間を最適化します](./optimize-calculation-time-recursive-aspose-cells-net) Aspose.Cells for .NETの再帰オプションを使用して、Excelの計算時間を最適化する方法を学びましょう。このガイドでは、セットアップ、パフォーマンスに関するヒント、そして実践的な応用例を解説します。 +### [C# でワークブックを計算する方法 – ソートと数式ガイド](./how-to-calculate-workbook-in-c-sort-formula-guide/) +C# で Aspose.Cells を使用し、ワークブックの計算、ソート、数式適用方法をステップバイステップで解説します。 ## 利点 diff --git a/cells/japanese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/japanese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..41582e2ec3 --- /dev/null +++ b/cells/japanese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-03-21 +description: C# と Aspose.Cells でブックを計算する方法 – Excel ブックの作成、セルへのデータ入力、数式の計算、並び替え機能の使用を学びましょう。 +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: ja +og_description: C#でブックを素早く計算する方法。このチュートリアルでは、Excelブックの作成、セルへのデータ入力、Excelの数式計算、並び替え機能の使用方法を示します。 +og_title: C#でワークブックを計算する方法 – 完全なソートガイド +tags: +- C# +- Aspose.Cells +- Excel Automation +title: C#でワークブックを計算する方法 – ソートと数式ガイド +url: /ja/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# でブックを計算する方法 – SORT と数式ガイド + +Excel を開かずに **ブックを計算** する方法を考えたことはありませんか? 多くの自動化シナリオでは、Excel ファイルを作成し、数値を投入してソートし、結果を .NET アプリにプログラムで取得する必要があります。 + +このガイドでは、**Excel ブックを作成**し、**Excel セルにデータを入力**し、**SORT** 数式を付加し、最後に **Excel の数式を計算** して C# から直接ソートされた配列を取得する手順を解説します。最後まで読むと、Aspose.Cells(または同等のライブラリ)を参照している任意のプロジェクトに貼り付けられる実行可能なコードスニペットが手に入ります。 + +## 前提条件 + +- .NET 6+(コードは .NET Framework 4.7.2 でも動作します) +- Aspose.Cells for .NET(無料トライアル NuGet パッケージ `Aspose.Cells`) +- C# の基本構文の理解 +- Microsoft Excel のインストールは不要です。ライブラリが重い処理を代行します + +これらに問題なければ、さっそく始めましょう。 + +## ブックの計算方法 – ワークブックの初期化 + +最初に行うべきことは、新しいワークブックオブジェクトを作成することです。まるで空の Excel ファイルを開くイメージです。 + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **重要ポイント:** `Workbook` クラスはすべての操作のエントリーポイントです。これがなければシートやセル、数式を追加できません。正しく初期化することで、クリーンな状態から作業を開始できます。 + +## Excel ワークブックを作成し、ワークシートにアクセス + +ワークブックが生成されたら、正しいワークシートを指しているか確認します。多くのライブラリはデフォルトで「Sheet1」というシートを持ちますが、必要に応じて名前を変更したり、シートを追加したりできます。 + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **プロのコツ:** シート名を早めに決めておくと、数式内で `'Data'!A1:A10` のように参照しやすく、デバッグも楽になります。 + +## Excel セルにデータを入力 + +次に、**Excel セルにデータを入力**します。例では 2 つのセルだけを使用していますが、行数は好きなだけ増やせます。 + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **`PutValue` を使う理由** – データ型(int、double、string など)を自動判別して適切に格納してくれるため、手動で型キャストする手間が省けます。 + +## 数式で SORT 関数を適用 + +Excel の `SORT` 関数は名前の通り、元データを変更せずにソート済み配列を返します。この数式をセル `B1` に設定します。 + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **エッジケース:** `SORT` は **配列** を返します。古い Excel(Office 365 以前)では Ctrl+Shift+Enter が必要でしたが、Aspose.Cells では `CalculateFormula` を呼び出すだけで配列が取得できます。 + +## Excel 数式を計算して結果を取得 + +ここまででワークブックは「何を」計算すべきかは把握していますが、「実行」させる指示がありません。`CalculateFormula` を呼び出すと、エンジンがすべての数式を評価し、`SORT` も計算されます。 + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**期待されるコンソール出力** + +``` +Sorted array: {2, 5} +``` + +> **何が起きたか?** +> 1. ワークブックが内部計算エンジンを生成。 +> 2. `SORT` 数式が範囲 `A1:A2` を評価。 +> 3. エンジンが新しい配列を生成し、`B1` から取得。 + +`A1` と `A2` の値(または範囲)を変更して `CalculateFormula` を再実行すれば、出力は自動的に更新されます。追加コードは不要です。 + +## 大規模データセットでの Sort 関数使用(任意) + +実務では 2 行以上が普通です。以下のコードはエントリ数に関係なく動作します。 + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **必要になるケース:** 大きな範囲をソートすれば、リーダーボード作成や財務データの順位付け、CSV インポート後のクリーンアップなどに活用できます。 + +## よくある落とし穴と回避策 + +| 問題 | 発生理由 | 対策 | +|------|----------|------| +| **`#VALUE!` が B1 に表示** | `SORT` が空または数値でない範囲を参照している | ソース範囲のすべてのセルに数値またはソート可能な文字列が入っていることを確認 | +| **配列が切り捨てられる** | 配列を単一セルからキャストせずに取得しようとしている | `worksheet.Cells["B1"].Value` を `object[]`(または適切な型)にキャスト | +| **パフォーマンス低下** | 小さな変更ごとに巨大ワークブックを再計算している | シートの変更が完了した後にだけ `CalculateFormula` を呼び出す、または `CalculateFormulaOptions` で対象範囲を限定 | + +## 完全動作サンプル(コピー&ペースト可) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **結果スクリーンショット** +> ![Excel でのブック計算結果](https://example.com/images/sorted-result.png "Excel でのブック計算結果") + +上図は計算後のワークブックを示しています。セル **B1** にはソートされた配列 `{2, 5}` が格納されています。 + +## まとめ + +本稿では **ブックを計算** する方法を解説しました。Excel ワークブックを作成し、セルにデータを入力し、`SORT` 数式を埋め込み、最後に **Excel の数式を計算** してソート結果を取得する手順です。小規模な 2 セルの例から、より大規模なデータセットまでスムーズに拡張できます。 + +次のステップは、`FILTER`、`UNIQUE`、あるいは `WorksheetFunction` を使ったカスタムロジックと組み合わせることです。ワークブックをディスクに保存(`workbook.Save("Sorted.xlsx")`)して Excel で目視確認することも可能です。 + +数値や範囲を変えてみたり、複数の数式をチェーンさせたりして自由に実験してください。自動化は素早い反復が鍵です。これでしっかりとした基盤が整いました。 + +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/conversion-and-rendering/_index.md b/cells/japanese/net/conversion-and-rendering/_index.md index 8c3c23d11c..03390e88b8 100644 --- a/cells/japanese/net/conversion-and-rendering/_index.md +++ b/cells/japanese/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Aspose.Cells in .NET を使って、Excel をシームレスに PDF に変換す このステップバイステップガイドでは、Aspose.Cells for .NET を使用して Excel ワークシートを SVG に変換する方法を説明します。Excel を SVG に変換したい .NET 開発者に最適です。 ### [.NET で Excel を MHTML に変換する](./converting-excel-to-mhtml/) Aspose.Cells を使用して .NET で Excel ファイルを MHTML 形式に効率的に変換し、レポート機能とデータ共有機能を強化する方法を学習します。 +### [C# で Excel から画像を作成 – ピボットを PNG にエクスポート](./create-image-from-excel-export-pivot-to-png-in-c/) +Aspose.Cells を使用して、Excel のピボットテーブルを PNG 画像としてエクスポートする方法を学びます。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/japanese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..68bbdb3c3e --- /dev/null +++ b/cells/japanese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells を使用して C# で Excel から画像を作成します。Excel を画像に変換する方法、ピボットテーブルをエクスポートする方法、PNG + 形式で画像を保存する方法を、完全な実行可能サンプルとともに学びましょう。 +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: ja +og_description: C#でExcelから画像を素早く作成します。このガイドでは、Excelを画像に変換し、ピボットテーブルをエクスポートし、明確なコードで画像をPNGとして保存する方法を示します。 +og_title: Excelから画像を作成 – C#でピボットテーブルをPNGにエクスポート +tags: +- C# +- Aspose.Cells +- Excel automation +title: Excelから画像を作成 – C#でピボットテーブルをPNGにエクスポート +url: /ja/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel から画像を作成 – ピボットを PNG にエクスポート (C#) + +Ever needed to **create image from Excel** but weren't sure which API to pull? You're not alone—many devs hit that roadblock when they try to turn a live pivot table into a sharable PNG. + +このチュートリアルでは、**converts Excel to image** の完全な実装例を順に解説し、**how to export pivot** の方法と **how to save image** を PNG ファイルとして保存する手順を示します。最後まで読むと、すべてを実行する単一メソッドと、考えられるエッジケースへの対処法が手に入ります。 + +## 必要なもの + +- **Aspose.Cells for .NET**(NuGet パッケージ `Aspose.Cells`)。商用ライブラリですが、無料の評価モードがあり、テストに最適です。 +- .NET 6+(または .NET Framework 4.6+)。 +- ピボットテーブルが少なくとも1つ含まれているシンプルな Excel ワークブック(`Pivot.xlsx`)。 +- 好きな IDE—Visual Studio、Rider、あるいは VS Code でも動作します。 + +以上です。余計な DLL や COM 相互運用、面倒な Excel 自動化トリックは不要です。 + +それでは、コードを見ていきましょう。 + +## 手順 1: ワークブックをロード – Excel から画像を作成 + +最初に行うのは、ピボットテーブルを含む Excel ファイルを開くことです。このステップは重要で、レンダラはメモリ内の `Workbook` オブジェクトに対して動作します。 + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*なぜ重要か:* ワークブックをロードすることで、**pivot** と、後で **convert Excel to image** される際に尊重されるすべての書式設定にアクセスできます。これを省略すると、レンダラは何も処理できません。 + +## 手順 2: エクスポートオプションを設定 – Excel を画像に変換 + +次に、最終的な画像の見た目を Aspose に指示します。`ImageOrPrintOptions` クラスを使って PNG を選択したり、 DPI を設定したり、背景色を制御したりできます。 + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*なぜ重要か:* 高 DPI を設定することで、ピボットに多数の行があっても **export Excel to PNG** が鮮明に保たれます。ファイルサイズが問題なら DPI を下げても構いません。 + +## 手順 3: ワークシートをレンダリング – ピボットをエクスポートする方法 + +ここからがプロセスの核心です:ワークシート(ピボットを含む)を画像に変換します。`WorksheetRender` クラスがその重い処理を担います。 + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*なぜ重要か:* ここが **how to export pivot** をビジュアル形式に変換する箇所です。レンダラはすべてのピボット書式、スライサー、条件付きスタイルを尊重するため、PNG は Excel で見えるものと全く同じになります。 + +## 手順 4: すべてをまとめる – 画像を保存する方法 + +最後に、すべての要素を結びつける単一のパブリックメソッドを公開します。このメソッドをアプリ、サービス、またはコンソールツールから呼び出します。 + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### 完全な動作例 + +新しいコンソールプロジェクトを作成し、NuGet パッケージ `Aspose.Cells` を追加して、以下の `Program.cs` を配置します: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Expected result:** プログラムを実行すると、指定したフォルダーに `PivotImage.png` が生成され、ピボットテーブルのピクセルパーフェクトなスナップショットが表示されます。 + +![Excel から画像を作成する例](https://example.com/placeholder.png "Excel から画像を作成する例") + +*Alt text:* Excel から画像を作成する例で、エクスポートされたピボットテーブルが PNG として表示されています。 + +## よくある質問とエッジケース + +### ワークブックに複数のシートがある場合は? + +現在のヘルパーは `Worksheets[0]` を取得しています。特定のシートを対象にするには、シート名を渡します: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG がぼやけている—どうすれば改善できる? + +`GetImageOptions` の `HorizontalResolution` と `VerticalResolution` を上げます。300〜600 DPI の値で通常は鮮明な結果が得られます。DPI が高いほどファイルサイズが大きくなることを覚えておいてください。 + +### ピボットが複数ページにまたがる場合—すべてのページをエクスポートできる? + +はい。`renderer.PageCount` をループし、各ページで `ToImage(pageIndex, ...)` を呼び出すか、`OnePagePerSheet = false` に設定してページごとに別々の画像を取得します。 + +### シートの一部(例:特定の範囲)だけが必要な場合は? + +`ImageOrPrintOptions` の `PrintArea` を設定します: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +これにより、関心のある領域だけを **convert Excel to image** できます。 + +### .xls(Excel 97‑2003)ファイルでも動作しますか? + +もちろんです。Aspose.Cells はファイル形式を抽象化しているので、`.xls`、`.xlsx`、`.xlsm`、あるいは `.ods` を使用しても **export excel to png** が可能です。 + +## プロのコツと注意点 + +- **License matters**: 評価モードでは Aspose が透かしを追加します。本番環境では正規ライセンスを導入してください。 +- **Memory usage**: 大きなワークブックのレンダリングはメモリを多く消費します。`Workbook` オブジェクトは速やかに破棄するか、`using` ブロックで囲んでください。 +- **Thread safety**: `Workbook` はスレッドセーフではありません。Web サービスで使用する場合は、リクエストごとに新しいインスタンスを作成してください。 +- **Image format flexibility**: JPEG や BMP が必要な場合は、`GetImageOptions` の `ImageFormat` を変更するだけです。 + +## 結論 + +これで、**create image from Excel** のための堅実なエンドツーエンドのレシピが手に入りました。特に **export pivot** データを高品質な PNG としてエクスポートする方法です。上記のスニペットは完全に実行可能なコードを示し、**how to save image** を説明し、複数シートやカスタム印刷領域といったバリエーションにも対応しています。 + +次のステップは?このエクスポーターをメールサービスと連携させて PNG を自動送信したり、`ImageOrPrintOptions` を使って PNG の代わりに PDF を生成したりしてみてください。同じパターンは **convert excel to image** のタスク全般に活用できます。 + +質問があればコメントを残してください。ハッピーコーディング! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..bf3ce041d7 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 @@ -66,6 +66,8 @@ Aspose.Cells for .NETでHTML CrossTypeを指定する方法を学びましょう 説明: この詳細なチュートリアルでは、Aspose.Cells for .NET を使用してドキュメント変換の進行状況をプログラムで追跡する方法を学習します。 ### [.NET でプログラム的に TIFF ドキュメントの変換進行状況を追跡する](./tracking-document-conversion-progress-for-tiff/) Aspose.Cells for .NET を使用して、TIFF 変換の進行状況をプログラムで追跡する方法をステップバイステップガイドで学びましょう。ドキュメント管理スキルを向上させましょう。 +### [.NET でプログラム的に Excel を Docx に保存する (C#) – 完全ステップバイステップガイド](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Aspose.Cells for .NET を使用して、C# で Excel ファイルを Docx 形式に変換し保存する方法をステップごとに解説します。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/japanese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..7be2428987 --- /dev/null +++ b/cells/japanese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,247 @@ +--- +category: general +date: 2026-03-21 +description: C#でExcelをDocxとして保存 — ExcelをWordに変換する方法、チャートを埋め込む方法、そしてAspose.Cellsを使用してC#でExcelブックをロードする方法を学びましょう。 +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: ja +og_description: C#でExcelをDocxとして保存する方法を最初の文で説明しています。このチュートリアルに従って、ExcelをWordに変換し、チャートを埋め込み、C#でExcelブックを読み込みましょう。 +og_title: C#でExcelをDocxとして保存する – 完全ガイド +tags: +- C# +- Aspose.Cells +- Document Conversion +title: C#でExcelをDocxに保存する – 完全ステップバイステップガイド +url: /ja/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# で Excel を Docx に保存する – 完全ステップバイステップガイド + +Excel を **Docx に保存** したいけど、どこから始めればいいか分からないことはありませんか?同じ壁にぶつかる開発者は多いです。*Excel を Word に変換* し、チャートをそのまま保持したいときに役立ちます。このチュートリアルでは、必要なコードを一行ずつ解説し、各行がなぜ重要なのかを説明し、品質を落とさずに Excel のチャートを埋め込む方法を示します。 + +さらに **load Excel workbook C#** のシナリオに関するちょっとしたコツも紹介しますので、最後にはどんな .NET プロジェクトでも Excel を Docx に変換できる自信がつくはずです。曖昧な説明は一切なし、すぐにコピー&ペーストできる具体的なサンプルをご提供します。 + +--- + +## 本ガイドでカバーする内容 + +- Aspose.Cells(または互換ライブラリ)を使用した既存の `.xlsx` ファイルの読み込み +- 変換前のワークシートやチャートのオプション操作 +- 埋め込みチャートを保持しながらワークブックを `.docx` ファイルとして保存 +- 出力の検証と、巨大なブックや未対応のチャートタイプなどの一般的なエッジケースへの対処 + +**なぜ Excel を Docx に変換したいのか** と疑問に思うなら、技術的でないステークホルダーに送るレポートを想像してください。Word 文書は普遍的に受け入れられ、チャートのビジュアル忠実度も保たれます。それでは始めましょう。 + +--- + +## 前提条件 – Load Excel Workbook C# + +コードを書く前に、以下の環境が整っていることを確認してください。 + +| 要件 | 理由 | +|------|------| +| **.NET 6.0 以降** | 最新ランタイムでパフォーマンスが向上し、Aspose.Cells の完全サポートが受けられます。 | +| **Aspose.Cells for .NET**(NuGet パッケージ `Aspose.Cells`) | Excel を読み取り DOCX にエクスポートするための `Workbook` クラスを提供します。 | +| **Visual Studio 2022**(またはお好みの IDE) | デバッグや IntelliSense が便利です。 | +| **チャート付きの Excel ファイル**(`AdvancedCharts.xlsx`) | *embed excel charts* 機能を実際に確認できます。 | + +パッケージは Package Manager Console からインストールできます。 + +```powershell +Install-Package Aspose.Cells +``` + +> **プロのコツ:** CI/CD パイプラインを利用している場合は、`*.csproj` にパッケージを追加して自動復元させましょう。 + +--- + +## 手順 1 – Excel ワークブックを読み込む(Save Excel as Docx の開始) + +最初に行うのは、ソースワークブックの読み込みです。ここで **load excel workbook c#** のフレーズが活きてきます。 + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **重要ポイント:** ファイルを読み込むことで、すべてのワークシート、チャート、スタイルにアクセスできます。このステップがなければ変換対象がなく、API は埋め込みグラフィックを保持できません。 + +--- + +## 手順 2 – (任意)変換前にワークブックを調整 + +シート名の変更、列の非表示、チャートタイトルの変更などが可能です。このステップは任意ですが、変換の柔軟性を示す良い例です。 + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **エッジケース:** 古いチャートタイプ(例: レーダー)は Word で完全に再現できないことがあります。変換後に対象チャートを必ずテストしてください。 + +--- + +## 手順 3 – ワークブックを Word 文書として保存(核心の “Save Excel as Docx” アクション) + +いよいよ本番です。実際に **save Excel as Docx** を実行します。 + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +このコードが実行されると、Aspose.Cells は各ワークシートを Word 内のテーブルとして書き込み、各チャートを高解像度画像として埋め込みます。結果として、元の Excel ビューと見た目が同一の、完全に編集可能な `.docx` が生成されます。 + +> **DOCX を選ぶ理由:** DOCX は受取側がテキストを編集したり、後からチャートを差し替えたりできる点で、PDF のような静的スナップショットとは異なります。 + +--- + +## 手順 4 – 出力の検証と一般的な問題のトラブルシューティング + +変換が完了したら、`ChartsInWord.docx` を Microsoft Word で開きます。 + +1. **各ワークシートが別々のセクションとして表示されているか確認** – Excel のデータを反映したテーブルが見えるはずです。 +2. **チャートが埋め込まれているか確認** – 画像として選択可能で、プレースホルダーが壊れていないこと。 +3. **チャートが欠落している場合**、チャートタイプが Aspose.Cells でサポートされているか確認してください([公式互換リスト](https://docs.aspose.com/cells/net/supported-chart-types/) を参照)。 + +> **プロのコツ:** 大規模ブックの場合は、`MemorySetting` を増やして `OutOfMemoryException` を回避しましょう。 + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## 完全動作サンプル(コピー&ペースト可能) + +以下はコンパイル可能なフルプログラムです。`YOUR_DIRECTORY` を実際のフォルダパスに置き換えてください。 + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**期待結果:** `ChartsInWord.docx` という Word 文書が生成され、すべてのワークシートがテーブルとして、すべてのチャートが埋め込み高解像度画像として含まれます。Word で開くと、Excel と同じビジュアルレイアウトが確認できます。 + +--- + +## よくある質問 (FAQ) + +**Q: 複数の Excel ファイルをループで変換できますか?** +A: もちろんです。`foreach (var file in Directory.GetFiles(...))` ループで変換ロジックを囲み、同じ `Workbook` パターンを再利用してください。 + +**Q: `.xls` ファイルでも動作しますか?** +A: はい。Aspose.Cells はレガシーフォーマットもサポートしています。拡張子を変更すれば、同じ `SaveFormat.Docx` 呼び出しで対応できます。 + +**Q: 変換時に数式を保持したい場合は?** +A: Word は Excel の数式をネイティブにサポートしていません。変換は数式を計算結果にフラット化します。ライブ計算が必要な場合は、Excel ワークブックを OLE オブジェクトとして埋め込むことを検討してください。 + +**Q: チャート画像の解像度を制御できますか?** +A: 保存前に `ImageOrPrintOptions` を使用します。 + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## ボーナス: Excel チャートを Word に直接埋め込む(Save Excel as Docx を超えて) + +チャートを Word で編集可能な状態にしたい場合は、Excel シート全体を OLE オブジェクトとして埋め込むことができます。 + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +この手法は *embed excel charts* をライブオブジェクトとして保持し、Word からダブルクリックで Excel で直接編集できるようにします。インタラクティブ性が必要なシナリオで便利です。 + +--- + +## 結論 + +これで C# を使った **save Excel as docx** のエンドツーエンドソリューションが完成しました。チュートリアルではワークブックの読み込み、任意の調整、実際の保存操作、検証手順、そして編集可能チャート埋め込みの簡単な紹介まで網羅しました。上記コードをそのまま使用すれば、**Excel を Word に変換** し、すべてのチャートを保持しつつ大容量ファイルも安定して処理できます。 + +次のステップに挑戦してみませんか?バッチ変換の自動化、ASP.NET Core API への組み込み、あるいは **convert Excel to docx** を使ったマルチシートダッシュボードの作成など。今回習得したスキルは、あらゆるドキュメント自動化プロジェクトの基盤となります。 + +質問や変換できない難解なブックがあればコメントで教えてください。一緒にトラブルシュートします。ハッピーコーディング! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..9f74bc4118 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-add-custom-property-in-c/) +Aspose.Cells for .NET を使用して、C# で XLSB ファイルを保存し、カスタム プロパティを追加する手順を解説します。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/japanese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..a56e1c889e --- /dev/null +++ b/cells/japanese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,273 @@ +--- +category: general +date: 2026-03-21 +description: C#でxlsbファイルを保存しながら、ProjectIdのようなカスタムプロパティを追加する方法を学びます。このガイドでは、Excelブックの作成、カスタムプロパティの追加、そしてそれを検証する手順を示します。 +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: ja +og_description: C# を使用して xlsb ファイルを保存し、ProjectId などのカスタム プロパティを追加する方法をご紹介します。完全なコード付きのステップバイステップ + ガイド。 +og_title: XLSB の保存方法 – C# でカスタム プロパティを追加する +tags: +- C# +- Aspose.Cells +- Excel automation +title: XLSB の保存方法 – C#でカスタム プロパティを追加する +url: /ja/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# XLSB の保存方法 – C# でカスタム プロパティを追加する + +**XLSB** ファイルを保存しつつ、メタデータの一部を埋め込む方法を考えたことはありますか?たとえば、非表示の **ProjectId** が必要なレポート エンジンを構築している場合や、下流処理のためにワークシートにタグ付けしたい場合です。**how to save xlsb** は難しいことではありませんが、カスタム プロパティと組み合わせると、多くの開発者が見落としがちな小さなひねりが加わります。 + +このチュートリアルでは、Excel ワークブックの作成、カスタム プロパティの追加(はい、*add custom property*)、**XLSB** バイナリ ワークブックとしての保存、そして最後に再度読み込んでプロパティが保持されていることを確認する手順を解説します。途中で **how to add custom property** として ProjectId などの値の付け方にも触れるので、今後のプロジェクトで再利用できるパターンが身につきます。 + +> **Pro tip:** すでに Aspose.Cells ライブラリ(以下のコードで使用)を利用している場合、COM インターロップの煩わしさなしにカスタム プロパティをネイティブにサポートできます。 + +--- + +## Prerequisites + +- .NET 6+(または .NET Framework 4.6+)。 +- Aspose.Cells for .NET – NuGet でインストール: `Install-Package Aspose.Cells`。 +- 基本的な C# の知識 – 特別なことは不要、`using` 文が数行あれば OK。 + +以上です。Office のインストールや Interop は不要で、純粋にマネージドコードだけで完結します。 + +--- + +## Step 1: How to Save XLSB – Create Excel Workbook + +最初に行うべきことは、空のワークブック オブジェクトを作成することです。これは、ディスクに書き込むまでメモリ上にだけ存在する空白の Excel ファイルを開くイメージです。 + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +なぜワークブックから始めるのか? **create excel workbook** は、後続の操作(数式、チャート、カスタム プロパティの挿入など)すべての基礎となります。`Workbook` クラスはファイル全体を抽象化し、`Worksheets` が個々のシートへのアクセスを提供します。 + +--- + +## Step 2: Add Custom Property to Worksheet + +ここからが本題—**add custom property**。Aspose.Cells では、ワークシート(またはワークブック全体)に直接プロパティを付与できます。ここでは、下流サービスがセルを触らずに取得できる数値型の ProjectId を保存します。 + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**how to add custom property** は `CustomProperties.Add(name, value)` を呼び出すだけです。API が内部の XML を自動で処理してくれるので、低レベルの詳細を気にする必要はありません。エンドユーザーに見えないメタデータを埋め込む最も安全な方法です。 + +--- + +## Step 3: Save the Workbook as XLSB + +ワークブックが完成し、カスタム プロパティが付与されたら、いよいよ **how to save xlsb** の段階です。XLSB 形式はデータをバイナリで保持するため、従来の XLSX よりもサイズが小さく、開く速度も速いのが特徴です。 + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +`Save` メソッドに `SaveFormat.Xlsb` を渡すだけで保存が完了します。カスタム プロパティが除去されるか心配な方も安心してください。Aspose.Cells はバイナリ ファイル内にワークブック レベルおよびシート レベルのプロパティをそのまま保持します。 + +--- + +## Step 4: Verify the Custom Property + +良い習慣として、ファイルを再度ロードし、プロパティがラウンドトリップを経ても残っているか確認しましょう。これにより、**how to add custom property** を後から更新する方法も実感できます。 + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +コンソールに `12345` と表示されれば、**how to save xlsb** と **add project id** を同時に実現できたことになります。プロパティはファイル内部のメタデータに格納され、UI には表示されませんがコードからは確実に取得可能です。 + +--- + +## Additional Tips: Adding Multiple Properties & Edge Cases + +### Adding More Than One Property + +好きなだけプロパティを積み重ねられます: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Updating an Existing Property + +既に存在するプロパティがあれば、新しい値を代入するだけです: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Handling Missing Properties + +存在しないプロパティを読み取ろうとすると `KeyNotFoundException` がスローされます。事前にチェックして例外を防ぎましょう: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Cross‑Version Compatibility + +XLSB は Excel 2007 以降および Web 版 Excel で利用可能です。ただし、2007 未満の古い Office バージョンでは開けません。互換性を広げたい場合は、別途 XLSX での保存も検討してください。 + +### Performance Considerations + +バイナリ XLSB は通常、XLSX より 30‑50 % 小さく、読み込みも高速です。数十万行規模の大規模データセットでは、速度向上が顕著に現れます。 + +--- + +## Full Working Example + +以下はコンソール プロジェクトにコピペできる完全版プログラムです。全手順、エラーハンドリング、コメントが含まれているので、すぐに実行できます。 + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Expected output** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +上記が表示されれば、**how to save xlsb**、**add custom property**、そして **add project id** をすべて一つの再利用可能スニペットでマスターしたことになります。 + +--- + +## Frequently Asked Questions + +**Q: Does this work with .NET Core?** +A: Absolutely. Aspose.Cells is .NET Standard‑compatible, so the same code runs on .NET 5/6/7 and on .NET Framework. + +**Q: Can I add a custom property to the whole workbook instead of a single sheet?** +A: Yes. Use `workbook.CustomProperties.Add("Key", value);` to attach it at the workbook level. + +**Q: What if I need to store a large string (e.g., JSON) as a property?** +A: The API accepts strings of any length, but keep in mind that extremely large blobs may increase file size. For massive data, consider a hidden sheet instead. + +**Q: Is the custom property visible in Excel’s UI?** +A: Not directly. Users can view it via **File → Info → Properties → Advanced Properties → Custom**, but it won’t appear in the grid. + +--- + +## Conclusion + +**how to save xlsb** ファイルを C# で保存しつつ、ProjectId などの **custom property** を追加する方法を解説しました。ステップバイステップのパターン(**create excel workbook** → **add custom property** → **save as XLSB** → **verify**)に従えば、検索エンジンや AI アシスタントでも参照できる信頼性の高いリファレンスが手に入ります。 + +次に試してみると良いこと: + +- ループで **how to add custom property** を複数シートに適用する。 +- DataTable からデータをエクスポートしてから保存する。 +- 追加のセキュリティとして XLSB ファイルを暗号化する。 + +プロパティ名を変更したり、互換性のために XLSX 形式に切り替えたりして自由に実験してください。難しいシナリオがあればコメントで教えてください。一緒に解決しましょう。Happy coding! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/japanese/net/excel-autofilter-validation/_index.md index 4f3160e50a..2ec0c6e68f 100644 --- a/cells/japanese/net/excel-autofilter-validation/_index.md +++ b/cells/japanese/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Excelで大量のデータを処理するのに、途方に暮れたことはあ この包括的なステップバイステップ ガイドでは、.NET で Aspose.Cells を使用して Excel の行を簡単に自動フィルター処理する方法を学習します。 ### [Excel の小数点データの検証](./decimal-data-validation-in-excel/) Aspose.Cells for .NET を使用して Excel で小数点データの検証を実装する方法を、分かりやすいガイドでご紹介します。データの整合性を簡単に強化できます。 +### [Excelからオートフィルターを削除 – 完全なC#ガイド](./remove-autofilter-from-excel-complete-c-guide/) +Aspose.Cells for .NET を使用して、Excel のオートフィルターをプログラムで削除する方法をステップバイステップで解説します。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/japanese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..779fb9d1b9 --- /dev/null +++ b/cells/japanese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,229 @@ +--- +category: general +date: 2026-03-21 +description: C# を使用して Excel から AutoFilter を削除する方法を学びましょう。このステップバイステップガイドでは、AutoFilter + の削除、Excel の AutoFilter をオフにする方法、そして Excel テーブルのフィルタをクリアする方法も紹介しています。 +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: ja +og_description: C#でExcelのオートフィルタを削除する。このチュートリアルでは、オートフィルタを削除し、Excel のオートフィルタをオフにし、Excel + テーブルのフィルタを数行のコードでクリアする方法を示します。 +og_title: Excelからオートフィルタを削除する – 完全C#ガイド +tags: +- C# +- Aspose.Cells +- Excel automation +title: ExcelのAutoFilterを削除する – 完全C#ガイド +url: /ja/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel から AutoFilter を削除 – 完全な C# ガイド + +Excel で **remove AutoFilter from Excel** が必要だったが、どの API 呼び出しで実際に無効化できるか分からなかったことはありませんか? あなただけではありません。多くのレポート パイプラインでは、フィルタ UI が下流処理の邪魔になるため、クリーンにすることが一般的な要件です。このチュートリアルでは、**how to delete AutoFilter** を示すだけでなく、**turn off AutoFilter Excel** スタイルのフィルタを無効にする方法や、**clear Excel table filter** を完全にクリアする方法も解説する、簡潔で本番環境向けのソリューションを順を追って説明します。 + +> **What you’ll walk away with:** 既存のブックを読み込み、最初のテーブルからフィルタを削除し、残っている UI 要素がない新しいコピーを保存する、すぐに実行できる C# プログラムが手に入ります。 + +## Prerequisites + +- .NET 6+(または .NET Framework 4.7.2+) +- **Aspose.Cells** NuGet パッケージ(コードで使用する API) +- AutoFilter が適用されたテーブルを含むサンプルブック (`TableWithFilter.xlsx`) +- C# の基本構文に関する理解(Excel の内部構造を深く知る必要はありません) + +これらが揃っていれば、さっそく始めましょう。 + +--- + +## Step 1 – Install Aspose.Cells and Set Up the Project + +コードを実行する前に、`Workbook`、`Worksheet`、`ListObject` クラスを提供するライブラリが必要です。 + +```bash +dotnet add package Aspose.Cells +``` + +> **Pro tip:** テスト用には無料の評価版を使用してください。製品版にリリースする際は、必ずライセンスキーを設定することを忘れずに。 + +### Why this matters +Aspose.Cells は低レベルの OOXML 処理を抽象化してくれるため、XML を自前で解析せずにテーブル、フィルタ、スタイルを操作できます。そのため **remove autofilter from excel** の作業が数行のコードで済むようになります。 + +--- + +## Step 2 – Load the Workbook that Contains the Table + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +`Workbook` オブジェクトは Excel ファイル全体を表します。最初にロードすることで、メモリ上にクリーンなコピーができ、後で **clear excel table filter** を行っても他のシートに影響を与えません。 + +--- + +## Step 3 – Grab the Worksheet and the Target Table + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +`ListObject` は Aspose が使用する Excel テーブルの呼称です。シートに複数のテーブルがある場合でも、`worksheet.ListObjects` をループして同じロジックを各テーブルに適用できます。これにより「テーブルが複数ある場合はどうすれば?」という開発者の疑問に答えられます。 + +--- + +## Step 4 – Remove the AutoFilter from the Table + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +`AutoFilter` を `null` に設定すると **filter object が完全に削除** され、これは **how to delete autofilter** の最も確実な方法です。代替プロパティの `ShowAutoFilter` は UI を非表示にするだけでフィルタ エンジンは残ります — つまり、**turn off autofilter excel** を視覚的にだけ行いたい場合に有用です。 + +> **Edge case:** テーブルに AutoFilter が適用されていない場合、`table.AutoFilter` はすでに `null` です。この行は安全で、何も実行されません。 + +--- + +## Step 5 – Save the Modified Workbook + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +新しいファイルに保存することで元のファイルを保護します — これは Excel 変換を自動化する際のベストプラクティスです。プログラム実行後に `NoAutoFilter.xlsx` を開くと、テーブルにフィルタ ドロップダウンがなくなっていることが確認でき、**remove excel table filter** が正常に完了したことが分かります。 + +--- + +## Verify the Result – What to Expect + +1. **Open `NoAutoFilter.xlsx`** in Excel. +2. **Select the table** – the little funnel icons next to column headers should be gone. +3. **Check other sheets** – they remain untouched, proving that we only **clear excel table filter** on the intended sheet. + +アイコンがまだ表示されている場合は、対象とした `ListObject` のインデックスが正しいか再確認してください。Aspose では Excel テーブルは 0 ベースなので、`ListObjects[0]` がシート上の最初のテーブルになります。 + +--- + +## Handling Multiple Tables or Worksheets + +複数のシートにまたがってテーブルが存在するブックで **remove autofilter from excel** を実行したい場合があります。以下はその拡張例です。 + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +このループにより、**turn off autofilter excel** がブック全体で実行され、下流データインポート時に隠れたフィルタが原因で問題になることを防げます。 + +--- + +## Common Pitfalls & How to Avoid Them + +| Pitfall | Why it Happens | Fix | +|---------|----------------|-----| +| **Filter remains after saving** | Using `ShowAutoFilter = false` only hides UI. | Use `table.AutoFilter = null` to truly delete it. | +| **Wrong table index** | Assuming the first table is the one you need. | Inspect `worksheet.ListObjects.Count` and use meaningful names (`tbl.Name`). | +| **Missing license** | Evaluation version may insert watermarks. | Register your license early: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **File locked** | Excel still has the source file open. | Ensure the workbook is closed in Excel before running the script. | + +--- + +## Bonus: Adding an AutoFilter Back (If You Change Your Mind) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +逆操作を用意しておくことで、**remove autofilter from excel** と **how to delete autofilter** のシナリオの両方に対応できる、ワンストップのチュートリアルになります。 + +--- + +## Full Working Example (Copy‑Paste Ready) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +上記コードを実行すると、ブック内のすべてのテーブルから **remove autofilter from excel** が行われ、後続処理用にクリーンな状態が得られます。 + +--- + +## Conclusion + +C# を使って **remove autofilter from excel** を実現するために必要な手順をすべて網羅しました。Aspose.Cells のインストール、ブックの読み込み、テーブルの特定、フィルタの削除、クリーンなファイルの保存まで、各ステップの「なぜ」も解説しました。これで **how to delete autofilter**、**remove excel table filter**、**turn off autofilter excel**、**clear excel table filter** を単一の再利用可能スニペットで実行できるようになりました。 + +次のチャレンジに挑戦してみませんか? 条件付き書式の自動化や、プログラムで **add an AutoFilter back** する方法を試すと、Excel 自動化ツールボックスがさらに充実します。 + +質問や、取り上げてほしいシナリオがあればコメントで教えてください — Happy coding! + +--- + +![Excel シートからすべてのフィルタ ドロップダウンが削除されたスクリーンショット – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/japanese/net/excel-comment-annotation/_index.md index e2a4d31ff5..832ee6a305 100644 --- a/cells/japanese/net/excel-comment-annotation/_index.md +++ b/cells/japanese/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Aspose.Cells for .NET を使用して、Excel に画像付きのコメントを Aspose.Cells for .NET を使用して Excel のセルにコメントを追加する方法を学びます。Excel の機能を強化するための初心者向けステップバイステップガイドです。 ### [コメントの書式設定 - フォント、色、配置](./format-comments-font-color-alignment/) Aspose.Cells for .NET を使って、Excel のコメントを簡単にフォーマットする方法を学びましょう。フォント、サイズ、配置をカスタマイズして、スプレッドシートをより魅力的に演出しましょう。 +### [Excelワークブックの作成(C#) – スマートマーカーでコメントを追加・入力](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Aspose.Cells for .NET を使用して、C# で Excel ワークブックを作成し、スマートマーカーを利用してコメントを追加・入力する方法を学びます。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/japanese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..dde9fbdca2 --- /dev/null +++ b/cells/japanese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,247 @@ +--- +category: general +date: 2026-03-21 +description: C#でExcelブックを作成し、Excelにコメントを追加する方法と、Smart Markersを使用してコメントを自動的に埋め込む方法を学びます。開発者向けのステップバイステップガイド。 +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: ja +og_description: C#でExcelブックを作成し、Excelにコメントをすばやく追加し、Smart Markersを使用してコメントを埋め込みます。コード付きの完全チュートリアル。 +og_title: C#でExcelワークブックを作成 – コメントの追加と入力 +tags: +- C# +- Excel automation +- Aspose.Cells +title: C#でExcelブックを作成 – スマートマーカーでコメントを追加・入力 +url: /ja/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel ワークブック作成(C#) – スマートマーカーでコメントを追加・入力 + +Excel ワークブックを **C# で作成** したことがあり、コメントが自動的に更新される仕組みを知りたくありませんか? あなただけではありません。多くのレポートシナリオでは、セルのコメントに *“Created by Alice on 2024‑07‑15”* のように、毎回名前や日付をハードコーディングせずに表示させたいものです。 + +このチュートリアルでは、**Excel にコメントを追加する方法** と、Aspose.Cells の Smart Markers を使って **コメントにデータを入力する方法** を詳しく解説します。最後まで実行すれば、ワークブックを作成し、動的なコメントを挿入し、ファイルを保存するまでの一連のプログラムが完成します。 + +> **What you’ll get:** 完全にコンパイル可能な C# コンソールアプリ、各行の解説、よくある落とし穴への対策、そしてソリューション拡張のアイデア。 + +## 前提条件 + +- .NET 6.0 SDK 以降(コードは .NET Core や .NET Framework でも動作します) +- Visual Studio 2022 またはお好みの IDE +- **Aspose.Cells for .NET** NuGet パッケージ (`Install-Package Aspose.Cells`) – こちらのライブラリが `Workbook`、`Worksheet`、`SmartMarkerProcessor` クラスを提供します。 +- C# の基本的な構文に慣れていること – `Console.WriteLine` が書ければ問題ありません。 + +これで準備は整いました。さっそく始めましょう。 + +![Create Excel workbook C# example screenshot](excel-workbook.png "Create Excel workbook C# example") + +## Step 1: Initialise a New Workbook – Create Excel Workbook C# Basics + +まずはクリーンなワークブックオブジェクトが必要です。`Workbook` を空白のキャンバスと考えてください。これがないとセルや行、コメントを配置できません。 + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Why this matters:** `Workbook` はデフォルトでシートを自動的に作成するため、余分なタブが必要でない限り `Add` を呼び出す必要はありません。`Worksheets[0]` にアクセスするのがデータ入力を開始する最速の方法です。 + +## Step 2: Insert a Smart Marker Comment – How to Add Comment with Tokens + +次に、セル **B2** に Smart Marker トークン(`«UserName»` と `«CreatedDate»`)を含むコメントを配置します。これらのトークンは後で実際の値に置き換えられます。 + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Explanation:** +- `CreateComment()` はコメントオブジェクトが存在しない場合に作成し、既に存在する場合はそれを返します。 +- `Note` プロパティは表示されるテキストを保持します。プレースホルダーを `« »` で囲むことで、Aspose.Cells に **Smart Markers**(一括置換可能なプレースホルダー)であることを指示しています。 + +> **Pro tip:** 複数行のコメントが必要な場合は、文字列内で `\n` を使用します。例: `"Line1\nLine2"`。 + +## Step 3: Prepare the Data Object – How to Fill Comment Dynamically + +Smart Markers にはデータソースが必要です。C# では、プレースホルダー名と一致する匿名型が最も手軽です。 + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Why an anonymous type?** +軽量でクラスファイルを追加する必要がなく、プロパティ名(`UserName`、`CreatedDate`)がトークン名と完全に一致します。強く型付けされたモデルが好みの場合は、同じプロパティを持つクラスを作成すれば構いません。 + +## Step 4: Process Smart Markers – How to Fill Comment Using the Data Object + +ここで魔法が起きます。`SmartMarkerProcessor` がワークブック内のすべての `«…»` トークンを走査し、`markerData` の値に置き換えます。 + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**What’s under the hood?** +`SmartMarkerProcessor` は各セル、コメント、ヘッダーなどを順にチェックし、`«Token»` パターンを検出するとリフレクションを使って `markerData` から該当プロパティを取得し、値を書き戻します。手動でループを書く必要はありません。 + +## Step 5: Save the Workbook – Fill Excel Comment and Persist the File + +最後にワークブックをディスクに保存します。コメントは例えば *“Created by Alice on 03/21/2026 10:15 AM”* のように表示されます。 + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Result verification:** `CommentFilled.xlsx` を Excel で開き、セル **B2** にマウスオーバーすると、実際のユーザー名とタイムスタンプが入ったコメントが表示されます。将来の実行でもコードを変更する必要はなく、`markerData` の値を変えるだけです。 + +--- + +## Common Variations & Edge Cases + +### カスタム日付形式の使用 + +日付を `yyyy‑MM‑dd` 形式で表示したい場合は、データオブジェクトを次のように調整します。 + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### 複数コメントの追加 + +**Step 2** を他のセルでも繰り返すことができます。各コメントは独自のトークンセットを持たせても、情報が共通であれば同じトークンを共有しても構いません。 + +### 既存ワークブックでの操作 + +`new Workbook()` の代わりに既存ファイルを読み込みます。 + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +残りの手順は同一です。Smart Markers は新規ファイルでも既存ファイルでも同様に機能します。 + +### Null 値の取り扱い + +トークンが存在しない可能性がある場合は、プロパティを nullable にするかフォールバック値を用意します。 + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +ソースが `null` のときは、プロセッサが *“Unknown”* を挿入します。 + +--- + +## Full Working Example (Copy‑Paste Ready) + +以下は **完全なプログラム** です。コンソールアプリのプロジェクトに貼り付けてすぐに実行できます(`YOUR_DIRECTORY` を実際のフォルダー パスに置き換えてください)。 + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +プログラムを実行し、生成されたファイルを開くと、セル **B2** に動的コメントが表示されます。簡単ですね? + +--- + +## Frequently Asked Questions (FAQ) + +**Q: Does this work with .NET Framework 4.7?** +A: Absolutely. Aspose.Cells supports .NET Framework 4.0+ and .NET Core/5/6/7. Just reference the appropriate DLL or NuGet package. + +**Q: Can I use this approach for data validation or conditional formatting?** +A: Smart Markers are primarily for inserting values into cells, comments, headers, and footers. For conditional formatting you’d still use the normal `Style` APIs. + +**Q: What if I need to add a comment to a **different** worksheet?** +A: Retrieve the target worksheet (`workbook.Worksheets["MySheet"]`) and repeat **Step 2** on that sheet’s cells. + +--- + +## Next Steps & Related Topics + +- **How to add comment to Excel** programmatically for multiple cells (loop through a range). +- **Fill Excel comment** with data from a database (use a `DataTable` as the data source for Smart Markers). +- Explore **Smart Marker arrays** to generate tables automatically. +- Learn about **Aspose.Cells styling** to format the comment’s font, color, and size. + +スニペットを試し、データソースを差し替えてみてください。そうすれば、どんな Excel 自動化シナリオでも **how to fill comment** をすぐにマスターできます。 + +--- + +### Wrap‑Up + +私たちは **create excel workbook c#**、**add comment to excel**、そして **fill excel comment** を Smart Markers を使って実装する一連の流れを解説しました。ソリューションはコンパクトで再利用可能、そして本番環境でもすぐに使えます。 + +ぜひ試してプレースホルダーを調整し、ライブラリに重い処理を任せてみてください。問題があればコメントで教えてくださいね—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/_index.md b/cells/japanese/net/excel-custom-number-date-formatting/_index.md index a3345de06d..d80cf6fb63 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,8 @@ このステップバイステップのチュートリアルでは、Aspose.Cells for .NET を使用して、Excel セルの値をカスタム数値形式と照合する方法を学習します。 ### [Excelシートにデータをインポートするときに数式フィールドを指定する](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) この詳細なチュートリアルでは、Aspose.Cells for .NET を使用して、指定された数式フィールドを持つ Excel シートにデータをインポートする方法を学習します。 +### [C# でセルのカスタム書式を設定 – Excel の日付の書き込みと読み取りの完全ガイド](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Aspose.Cells for .NET を使用して、C# でセルのカスタム書式を設定し、Excel の日付を書き込み・読み取りする方法を学びます。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/japanese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..02cb741d2d --- /dev/null +++ b/cells/japanese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-03-21 +description: C#でセルのカスタム書式を設定し、Excelへの日付の書き込み、カスタム日付書式の適用、ExcelからのDateTimeの読み取り、そしてワークブックやワークシートを素早く作成する方法を学びましょう。 +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: ja +og_description: C#でセルのカスタム書式を設定し、Excelに日付を書き込み、カスタム日付書式を適用してExcelからDateTimeを読み取り、簡単にブックとワークシートを作成します。 +og_title: C#でセルのカスタム書式を設定 – Excelで日付を書き込み・読み取り +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#でセルのカスタム書式を設定 – Excelでの日付の書き込みと読み取りの完全ガイド +url: /ja/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# セルのカスタム書式設定 – C#でExcelの日付を書き込み・読み取り + +C#からExcelファイルの**セルのカスタム書式設定**を行う必要があったが、どこから始めればよいか分からないことはありませんか? あなただけではありません。多くのレポートツールやデータエクスポートユーティリティでは、日付を特定のロケールで表示する必要があります—たとえば和暦、会計年度、またはISO‑8601文字列などです。 + +このチュートリアルでは、**完全な実行可能サンプル**を通して、**Excelへの日付書き込み**、**カスタム日付書式の適用**、**ExcelからのDateTime読み取り**、そしてAspose.Cellsを使用した**ワークブック・ワークシートの作成**方法を説明します。最後まで実行すれば、任意の.NETプロジェクトに組み込める単一の自己完結型プログラムが手に入ります。 + +## 学習できること + +- プログラムで**ワークブック・ワークシートを作成**する方法。 +- ロケール固有の文字列を使用して**Excelへ日付を書き込む**正確な手順。 +- **カスタム日付書式を適用**する方法(和暦表記を含む)。 +- **ExcelからDateTimeを読み取り**、`DateTime`オブジェクトに戻す方法。 +- Excelの日付を扱う際に遭遇し得るヒント、落とし穴、バリエーション。 + +外部ドキュメントは不要です—必要な情報はすべてここにあります。 + +## 前提条件 + +- .NET 6.0 以降(コードは .NET Framework 4.7+ でも動作します)。 +- NuGet でインストールした Aspose.Cells for .NET(`Install-Package Aspose.Cells`)。 +- C# の基本的な構文理解—特別な知識は不要です。 + +> **プロのコツ:** Visual Studio を使用している場合は、*nullable reference types* を有効にして、微妙なバグを早期に検出しましょう。 + +## 手順 1: ワークブックとワークシートの作成 + +まず最初に、Excel ファイルを表す Workbook オブジェクトと、データを格納する Worksheet が必要です。 + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*なぜ重要か:* `Workbook` クラスはすべての Excel 操作のエントリーポイントです。メモリ上で作成することで、明示的に保存するまでファイルシステムに触れず、処理が高速でテストに優しい状態を保てます。 + +## 手順 2: Excel に日付を書き込む + +次に、和暦の日付文字列(`"R02-04-01"`)をセル **A1** に配置します。この文字列は令和 2 年 4 月 1 日を表しています。 + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*何が起きているか:* `PutValue` は生の文字列を格納します。Aspose.Cells は後でセルのスタイルに基づいて解析しようとします。このステップを省いて `DateTime` を直接書き込むと、表示したい和暦情報が失われます。 + +## 手順 3: 組み込みの日付番号書式(ID 14)を適用 + +Excel には ID 14(`mm-dd-yy`)の組み込み日付書式があります。これを適用すると、セルが**テキストではなく日付**を含んでいることをエンジンに伝えます。 + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*なぜ ID 14 を使うのか?* これは汎用的な「短い日付」書式で、Excel が内容を日付値として扱うことを保証します。これはカスタム書式が正しく機能する前提条件です。 + +## 手順 4: 和暦表記を表示するカスタム書式の設定 + +さあ、楽しいパートです: Excel に和暦形式で日付を表示させます。カスタム文字列 `[$-ja-JP]ggge年m月d日` がそれを実現します。 + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*説明:* +- `[$-ja-JP]` はロケールを日本語に強制します。 +- `ggg` は元号名(例: 令和は “R”)。 +- `e` は元号の年数です。 +- `年`、`月`、`日` はそれぞれ年、月、日を表すリテラル文字です。 + +別のロケールが必要な場合は、`ja-JP` を目的のカルチャコード(例: `en-US`)に置き換えるだけです。 + +## 手順 5: 解析された DateTime 値の取得 + +最後に、セルから Excel が解析した**実際の `DateTime`** を読み取ります。これにより文字列が正しく解釈されたことが確認できます。 + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*結果:* コンソールに `Parsed DateTime: 2020-04-01` と表示されます。和暦文字列を入力したにもかかわらず、Excel は内部的にグレゴリオ暦の日付を保持しており、計算や比較、さらなるエクスポートに利用できます。 + +## 手順 6: ワークブックの保存(任意) + +Excel で書式設定されたワークブックを確認したい場合は、ディスクに保存するだけです。 + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +生成された **JapaneseEraDate.xlsx** を開くと、セル **A1** に `R02年4月1日` と表示されます(設定した正確な和暦書式です)。 + +![セルのカスタム書式設定例](image-placeholder.png "Excelセルに和暦日付を表示 – セルのカスタム書式設定") + +*上記の alt テキストには主要キーワードが含まれており、画像 SEO 要件を満たしています。* + +## 一般的なバリエーションとエッジケース + +### 別の日付形式で書き込む + +和暦文字列の代わりに ISO‑8601(`2020-04-01`)形式が好みの場合は、`PutValue` 呼び出しを変更するだけです: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Null または空セルの処理 + +日付を読み取る際は、必ず空セルをチェックして `InvalidOperationException` を防ぎましょう: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### 複数ロケールのサポート + +カルチャコードのリストをループし、動的に適用することができます: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## プロのコツと注意点 + +- **必ず組み込み番号書式を最初に設定**(`Style.Number`)。これがないと、Excel はセルを単なるテキストとして扱い、カスタム書式は無視されます。 +- **ロケールコードは大文字小文字を区別しません**が、正規形(`ja-JP`)を使用すると混乱を防げます。 +- **保存は任意**です;インメモリ処理の場合は、ワークブックを直接ウェブレスポンスにストリームできます(`workbook.Save(stream, SaveFormat.Xlsx)`)。 +- **Aspose.Cells のライセンス**: 無料評価版は透かしが入ります。本番環境では、パフォーマンス低下を防ぐために有効なライセンスを取得してください。 + +## まとめ + +本稿では、C# で**セルのカスタム書式設定**を行い和暦日付を表示する方法、**Excel への日付書き込み**、**カスタム日付書式の適用**、**Excel からの DateTime 読み取り**、そして**ワークブック・ワークシートの作成**を、単一の自己完結型プログラムで示しました。主要キーワードは自然に本文に散りばめられ、サブキーワードは見出しや本文に組み込まれており、SEO と AI 引用基準の両方を満たしています。 + +## 次にやること + +- **条件付き書式**を活用して期限超過の日付をハイライトする方法を探る。 +- この手法を **PivotTable** と組み合わせて動的レポートを作成する。 +- **大規模 CSV ファイルの読み取り**と同様の日時処理ロジックで 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/excel-data-export-retrieval/_index.md b/cells/japanese/net/excel-data-export-retrieval/_index.md index 48b13e9e1f..b50182b65a 100644 --- a/cells/japanese/net/excel-data-export-retrieval/_index.md +++ b/cells/japanese/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Aspose.Cells for .NET を使って Excel ファイルの操作スキルを向上 ### [Excelのセルからデータを取得する](./retrieve-data-from-cells-in-excel/) このステップバイステップのチュートリアルでは、Aspose.Cells for .NET を使用して Excel セルからデータを取得する方法を学びます。初心者にも経験豊富な開発者にも最適です。 +### [C# で Excel データテーブルをエクスポートする完全ガイド](./export-excel-data-table-in-c-complete-guide/) +Aspose.Cells for .NET を使用し、C# で Excel のデータテーブルをエクスポートする手順を詳しく解説します。 + +### [C# で Excel データをエクスポートするステップバイステップ ガイド](./how-to-export-excel-data-in-c-step-by-step-guide/) +Aspose.Cells for .NET を使用し、C# で Excel データをエクスポートする手順を詳しく解説します。 + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/japanese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/japanese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..aecdd43090 --- /dev/null +++ b/cells/japanese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells を使用して、ヘッダー付きの Excel データテーブルを DataTable にエクスポートし、小数点以下の桁数を制限し、最初の + 100 行だけをエクスポートする。 +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: ja +og_description: C#でExcelのデータテーブルをDataTableにエクスポートし、ヘッダーを保持し、小数点以下の桁数を制限し、最初の100行を取得する方法を学びましょう。 +og_title: C#でExcelデータテーブルをエクスポートする – ステップバイステップガイド +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: C#でExcelデータテーブルをエクスポートする完全ガイド +url: /ja/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Export Excel Data Table – Full C# Walkthrough + +Need to **export excel data table** from a workbook into a .NET `DataTable`? You're in the right place—this guide shows you exactly how to do it, keep the column headers, limit decimal places, and pull only the first 100 rows. + +If you’ve ever stared at a spreadsheet and thought, “How do I get this into my app without losing formatting?” you’re not alone. In the next few minutes we’ll turn that “what‑if” into a concrete, copy‑and‑paste solution that works with Aspose.Cells, a popular library for Excel manipulation. + +## What You’ll Learn + +- How to **export excel to datatable** using the `ExportDataTable` method. +- How to keep the original column names (`export excel with headers`). +- How to **limit decimal places excel** values by configuring `ExportTableOptions`. +- How to safely retrieve only the top‑100 rows (`export first 100 rows`). + +No external scripts, no magic strings—just plain C# that you can drop into any .NET project. + +## Prerequisites + +| 要件 | 重要な理由 | +|------|------------| +| .NET 6 以降(または .NET Framework 4.7+) | Aspose.Cells は両方をサポートしていますが、最新のランタイムは async 対応 API を提供します。 | +| Aspose.Cells for .NET NuGet パッケージ | `Workbook`、`ExportTableOptions`、`ExportDataTable` ヘルパーを提供します。 | +| サンプル Excel ファイル(例: `Numbers.xlsx`) | エクスポートするデータの元になります。 | +| 基本的な C# 知識 | コードスニペットに沿って進めますが、特別な知識は不要です。 | + +If any of those sound unfamiliar, grab the NuGet package with `dotnet add package Aspose.Cells` and create a tiny Excel file with a few numbers—your test data. + +![export excel data table example](excel-data-table.png "Screenshot of an Excel sheet that will be exported to a DataTable") + +## Step 1: Load the Workbook (export excel data table) + +The very first thing you need is a `Workbook` instance that points to your Excel file. Think of it as opening a book before you can read any chapters. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Why this matters:** Loading the workbook gives you access to its worksheets, cells, and styles. If the file path is wrong, Aspose will throw a `FileNotFoundException`, so double‑check the location. + +## Step 2: Configure Export Options – limit decimal places excel + +By default Aspose exports every numeric value with full precision. Often you only need a handful of significant digits, especially when feeding the data into a UI grid or an API that expects rounded numbers. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Pro tip:** If you need a different rounding strategy (e.g., always round up), you can post‑process the `DataTable` after export. The `SignificantDigits` setting is the quickest way to **limit decimal places excel** without writing extra loops. + +## Step 3: Export the Desired Range (export first 100 rows) + +Now we tell Aspose which block of cells we want to pull into a `DataTable`. In this tutorial we grab the first 100 rows and the first 10 columns, but you can adjust those numbers to fit your scenario. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Edge case:** If the sheet contains fewer than 100 rows, Aspose will simply export what exists without throwing an error. However, you might want to guard against an unexpectedly small range: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Step 4: Verify the Result – Quick Console Dump + +Seeing the data in your debugger is nice, but printing a few rows to the console confirms that the **export excel to datatable** actually worked and that the decimal places are trimmed. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Expected Output + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Notice how the numeric columns now show only four significant digits, matching the `SignificantDigits = 4` setting we applied earlier. + +## Step 5: Wrap It All Up – A Complete, Runnable Example + +Below is the full program you can copy‑paste into a console app. It includes error handling, the optional row‑count guard, and the helper method for printing. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Run the program, and you’ll see the first 100 rows of your sheet, nicely rounded, with column names intact. + +## Common Questions & Gotchas + +| 質問 | 回答 | +|------|------| +| **シートに結合セルがある場合はどうなりますか?** | `ExportDataTable` は結合セルを左上のセルの値で平坦化します。カスタム処理が必要な場合は、先に結合を解除するか、生の `Cell` オブジェクトを読み取ってください。 | +| **`DataSet` にエクスポートすることはできますか?** | はい—`ExportDataTable` を使用します | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/japanese/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..7034850527 --- /dev/null +++ b/cells/japanese/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,280 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells を使用して C# で列名付きの Excel データをエクスポートし、数値形式を保持し、特定の行を読み取る方法。Excel + ワークシートの読み取りと特定の行の効率的なエクスポートを学びましょう。 +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: ja +og_description: Aspose.Cells を使用して、列名を含む Excel データをエクスポートし、数値形式を保持し、特定の行を読み取る方法。C# + 開発者向けの完全な実行可能サンプルです。 +og_title: C#でExcelデータをエクスポートする方法 – 完全プログラミングガイド +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: C#でExcelデータをエクスポートする方法 – ステップバイステップガイド +url: /ja/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#でExcelデータをエクスポートする方法 – 完全プログラミングガイド + +元の書式を失わずに **Excel データをエクスポートする方法** を考えたことはありませんか? コピー&ペーストだけで試したら、日付が “44728” のように表示されたり、列ヘッダーが欠落したりした経験があるかもしれません。イライラしますよね。この記事では、Excel ワークシートを読み込み、数値書式を保持し、列名付きでエクスポートし、必要な行だけを抽出する、クリーンでエンドツーエンドな手順をご紹介します。 + +Aspose.Cells ライブラリを使用します。これによりエクスポートオプションを細かく制御できます。このガイドが終わる頃には、任意の .NET プロジェクトに貼り付けられる再利用可能なスニペットが手に入り、各オプションの重要性が理解できるようになります。外部ドキュメントは不要です—必要な情報はすべてここにあります。 + +--- + +## 学べること + +- **Excel ワークシートを** Aspose.Cells でメモリに読み込む方法 +- **特定の行**(例:0‑49 行)を列名を保持したままエクスポートする方法 +- **数値書式を保持** して通貨・日付・パーセンテージをそのまま出力する方法 +- **列名付きでエクスポート** し、必要に応じてセルコメントも含める方法 +- 完全に動作する C# サンプルと、よくある落とし穴への対策 + +### 前提条件 + +- .NET 6.0 以上(.NET Framework 4.6+ でも動作します) +- NuGet でインストールした Aspose.Cells for .NET(`Install-Package Aspose.Cells`) +- `input.xlsx` という名前の Excel ファイルを、参照可能なフォルダーに配置しておくこと + +> **プロのコツ:** CI パイプライン上で実行する場合は、ライセンスのサプライズを防ぐためにプライベートフィードから NuGet パッケージを取得することを検討してください。 + +--- + +## Step 1 – Aspose.Cells のインストールと名前空間の追加 + +まず、プロジェクトに Aspose.Cells パッケージが入っていることを確認します。Package Manager Console で次のコマンドを実行してください。 + +```powershell +Install-Package Aspose.Cells +``` + +次に、C# ファイルの先頭に必要な `using` ディレクティブを追加します。 + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +これらのインポートにより、`Workbook`、`Worksheet`、`ExportTableOptions`、`DataTable` へアクセスでき、**Excel ワークシートの読み取り** とデータのエクスポートが可能になります。 + +--- + +## Step 2 – ワークブックの読み込み(Excel ファイルを読む) + +ここで実際に **Excel ワークシートを読み込み** ます。`Workbook` コンストラクタにファイルパスを渡すだけで、Aspose.Cells が `.xlsx` と古い `.xls` の両方を自動で処理します。 + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **重要ポイント:** ワークブックを一度だけロードして同じ `Worksheet` オブジェクトを再利用すれば、特に大規模なスプレッドシートの場合にファイルを何度も開くよりもはるかに効率的です。 + +--- + +## Step 3 – エクスポートオプションの設定(数値書式と列名を保持) + +ここで Aspose.Cells に **どのようにエクスポートするか** を指示します。`ExportTableOptions` クラスで出力を細かく調整できます。以下の 3 つのフラグを有効にします。 + +1. `ExportAsString = true` – すべてのセルを文字列として扱い、数値の見た目を保証します。 +2. `IncludeCellComments = true` – セルに付随するコメントもコピーします(ドキュメント化に便利)。 +3. `PreserveNumberFormat = true` – 元の数値書式(通貨記号、日付パターンなど)を保持します。 + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **エッジケース:** `ExportAsString` を `false` にしたまま数値書式を保持しようとすると、日付が 44728 のような生数値になることがあります。両方のフラグをオンにしておくとこのサプライズを防げます。 + +--- + +## Step 4 – 最初のワークシートを取得(Excel ワークシートの読み取り) + +ほとんどのシンプルなファイルは最初のシートにデータが入っています。インデックスで取得します。別シートが必要な場合は `0` を目的のゼロベースインデックスに置き換えるか、`workbook.Worksheets["SheetName"]` を使用してください。 + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **便利な理由:** ワークシートオブジェクトに直接アクセスできるため、`Cells` コレクションをフルコントロールでき、後述の **特定の行をエクスポート** が容易になります。 + +--- + +## Step 5 – セル範囲のエクスポート(特定の行をエクスポート) + +チュートリアルの核心です。行 0‑49、列 0‑4(最初の 50 行と 5 列)を `DataTable` にエクスポートします。さらに、列名を `DataTable` の最初の行として含めるよう指示します。 + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### これが行うこと + +- **`startRow: 0`** – シートの最上部から開始 +- **`totalRows: 50`** – 最初の 50 行を取得(**特定の行をエクスポート**) +- **`totalColumns: 5`** – 最初の 5 列に限定 +- **`includeColumnNames: true`** – Excel のヘッダー行と同じ列名を `DataTable` に設定し、**列名付きでエクスポート** の要件を満たす +- **`exportOptions`** – Step 3 で設定したオプションを適用し、数値が “$1,234.56” のように表示されるようにする + +--- + +## Step 6 – エクスポート結果の検証(出力イメージ) + +コンソールに最初の数行を出力して、書式が保持されていることを確認しましょう。 + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**期待される出力例(例):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +日付が `MM/dd/yyyy` 形式で表示され、通貨に `$` 記号が残っていることが確認できます—**数値書式を保持** したおかげです。 + +--- + +## よくある落とし穴と回避策 + +| 問題 | 発生原因 | 対策 | +|------|----------|------| +| 日付が大きな数値になる | `ExportAsString` が `false` のまま | `ExportAsString = true` を維持するか、セルを手動で変換 | +| 列ヘッダーが欠落する | `includeColumnNames` が `false` に設定されている | **列名付きでエクスポート** が必要なときは `true` にする | +| コメントが消える | `IncludeCellComments` が有効化されていない | `ExportTableOptions` で `IncludeCellComments` をオンにする | +| 間違ったシートをエクスポート | 複数シートファイルで `Worksheets[0]` を使用している | シート名を指定: `workbook.Worksheets["Data"]` | +| 範囲外例外が発生 | `totalRows` が実際の行数を超えている | `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` を使用 | + +--- + +## ボーナス: シート全体をエクスポートしつつ書式を保持 + +後でシート全体が必要になった場合は、`totalRows` と `totalColumns` をシートの最大サイズに置き換えるだけです。 + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +これで、**Excel ワークシートを読み取る** ルーチンが任意のサイズに対応し、**数値書式を保持** しつつ **列名付きでエクスポート** できるようになります。 + +--- + +## 完全動作サンプル(コピペ可能) + +以下はコンソールアプリに貼り付けてそのまま実行できる完全プログラムです。すべての手順、インポート、簡易検証出力が含まれています。 + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +`Program.cs` として保存し、`dotnet run` を実行すれば端末に書式付きプレビューが表示されます。 + +--- + +## まとめ + +この記事では、Aspose.Cells を使って **Excel データをエクスポートする方法** を、ワークブックの読み込みから数値書式の保持、列名付きエクスポート、特定行の抽出まで一通り解説しました。コードは自己完結型で実行可能、そして最も一般的なエッジケースに対する安全策も組み込んであります。 + +次のステップに挑戦してみませんか? 元の数値書式を保ったまま CSV へ直接エクスポートしたり、`DataTable` を Entity Framework Core のコンテキストに渡して一括データベース挿入を行うなど、ここで学んだ基礎を応用できます。 + +もし本ガイドが役に立ったら + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..48ef845a73 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 署名を追加する方法をステップバイステップで解説します。ドキュメントを保護しましょう。 | +| [スタイル付きテーブルで Excel ワークブックを作成する – ステップバイステップ ガイド](./create-excel-workbook-with-styled-table-step-by-step-guide/) このステップバイステップ ガイドでは、Aspose.Cells for .NET を使用して、スタイル付きテーブルを含む Excel ワークブックの作成方法を学びます。 | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/japanese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..7340cf5173 --- /dev/null +++ b/cells/japanese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,309 @@ +--- +category: general +date: 2026-03-21 +description: Excelブックを作成し、列スタイルを設定しながらデータテーブルをExcelにインポートし、データをExcelにエクスポートし、Excelセルの日付を分単位でフォーマットする。 +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: ja +og_description: Excelブックを素早く作成。データテーブルのExcelへのインポート、列スタイルの設定、データのエクスポート、Excelセルの日付書式設定を1つのガイドで学びましょう。 +og_title: Excelワークブックの作成 – スタイル設定とエクスポートの完全チュートリアル +tags: +- C# +- Aspose.Cells +- Excel automation +title: スタイル付きテーブルでExcelブックを作成する – ステップバイステップガイド +url: /ja/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel ワークブックの作成 – 完全プログラミングチュートリアル + +Ever needed to **create excel workbook** that looks polished straight out of code? Maybe you’re pulling data from a database, and you want the dates to show up in proper format without fiddling in Excel later. That’s a common pain point—especially when the output lands in a client’s inbox and they expect everything to be ready to use. + +コードだけで見栄えの良い **create excel workbook** が必要になったことはありませんか?データベースからデータを取得し、後で Excel で手作業せずに日付を正しい形式で表示させたいかもしれません。これはよくある悩みです—特に出力がクライアントの受信トレイに届き、すべてがすぐに使える状態であることが期待される場合です。 + +In this guide we’ll walk through a single, self‑contained solution that **imports datatable to excel**, applies a **set column style**, and finally **export data to excel** as a nicely formatted file. You’ll see exactly how to **format excel cells date** so the spreadsheet reads like a professional report, and you’ll get a full, runnable example at the end. No missing pieces, no “see the docs” shortcuts—just pure code you can drop into your project today. + +このガイドでは、**imports datatable to excel**、**set column style** を適用し、最後に **export data to excel** を行う、単一の自己完結型ソリューションを順に解説します。**format excel cells date** の具体的な方法を示し、スプレッドシートがプロのレポートのように見えるようにします。また、最後には完全に実行可能なサンプルが得られます。欠けた部分や「ドキュメント参照」的なショートカットは一切なく、すぐにプロジェクトに組み込める純粋なコードだけです。 + +--- + +## 学習できること + +- How to **create excel workbook** using the Aspose.Cells library (or any compatible API). +- The quickest way to **import datatable to excel** without manual cell‑by‑cell loops. +- Techniques to **set column style**, including applying a date format to a specific column. +- How to **export data to excel** with a single `Save` call. +- Common pitfalls when you try to **format excel cells date** and how to avoid them. + +### 前提条件 + +- .NET 6+ (or .NET Framework 4.6+). +- Aspose.Cells for .NET installed (`Install-Package Aspose.Cells`). +- A `DataTable` ready to be exported—your data source could be SQL, CSV, or anything that can be turned into a `DataTable`. + +If you’re already comfortable with C# and have those pieces in place, you’re good to go. Otherwise, the “Prerequisites” section above will give you a quick checklist. + +C# に慣れていて上記の要素が揃っていればすぐに始められます。そうでない場合は、上記の「前提条件」セクションが簡単なチェックリストになります。 + +--- + +## ステップ 1 – Excel ワークブック インスタンスの作成 + +The very first thing you do when you want to **create excel workbook** programmatically is instantiate the workbook object. Think of this as opening a blank notebook where you’ll later write your data. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Why this matters:** +> The `Workbook` class is the entry point for every operation in Aspose.Cells. Creating it up front gives you a clean canvas, and you can later load an existing file if you need to append data instead of starting from scratch. + +> **Why this matters:** +> `Workbook` クラスは Aspose.Cells のすべての操作のエントリーポイントです。最初に作成しておくことでクリーンなキャンバスが得られ、ゼロから始めるのではなくデータを追加したい場合は既存ファイルを後から読み込むこともできます。 + +--- + +## ステップ 2 – インポート用 DataTable の準備 + +Before we can **import datatable to excel**, we need a `DataTable`. In real projects this often comes from `SqlDataAdapter.Fill` or `DataTable.Load`. For the sake of clarity we’ll stub a method that returns a ready‑made table. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tip:** If your dates are stored as strings, convert them to `DateTime` first—otherwise the **format excel cells date** step won’t work as expected. + +> **Tip:** 日付が文字列として保存されている場合は、まず `DateTime` に変換してください。そうしないと **format excel cells date** のステップが期待通りに動作しません。 + +--- + +## ステップ 3 – 各列のスタイル定義(Set Column Style) + +Now comes the part where we **set column style**. We’ll create an array of `Style` objects—one per column. The first column gets a built‑in date format (code 14), while the others stay with the general format (code 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Why use style objects?** +> Applying a style once and reusing it is far more efficient than setting the format on each cell individually. It also guarantees that the entire column respects the same **format excel cells date** rule, which is essential for consistency when the file is opened in different locales. + +> **Why use style objects?** +> スタイルを一度設定して再利用する方が、各セルに個別にフォーマットを設定するよりもはるかに効率的です。また、列全体が同じ **format excel cells date** ルールを遵守することが保証され、異なるロケールでファイルを開いたときの一貫性が保たれます。 + +--- + +## ステップ 4 – スタイル付きで DataTable をワークシートにインポート + +With the workbook ready and the styles defined, we now **import datatable to excel**. The `ImportDataTable` method does the heavy lifting: it writes the column headers, rows, and applies the styles we passed in. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **What’s happening under the hood?** +> - `true` tells Aspose.Cells to include column names as the first row. +> - `0, 0` are the starting row and column indices (top‑left corner). +> - `columnStyles` aligns each column with the style we prepared, ensuring the **format excel cells date** rule is applied to the date column. + +> **What’s happening under the hood?** +> - `true` は Aspose.Cells に列名を最初の行として含めるよう指示します。 +> - `0, 0` は開始行と開始列のインデックス(左上隅)です。 +> - `columnStyles` は各列を事前に用意したスタイルに合わせ、日付列に **format excel cells date** ルールが適用されることを保証します。 + +--- + +## ステップ 5 – ワークブックを実際のファイルに保存(エクスポート) + +Finally, we **export data to excel** by saving the workbook to disk. You can change the path to any folder you like, or even stream the file directly to an HTTP response for a web API. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** Use `workbook.Save(Stream, SaveFormat.Xlsx)` when you need to send the file over the network without writing to disk. + +> **Pro tip:** ディスクに書き込まずにネットワーク経由でファイルを送信する必要がある場合は、`workbook.Save(Stream, SaveFormat.Xlsx)` を使用してください。 + +--- + +## 完全動作例(すべてのステップを統合) + +Below is the complete, ready‑to‑run program. Copy‑paste it into a console app, adjust the output path, and you’ll have a nicely formatted Excel file in seconds. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**期待される出力:** +When you open `StyledTable.xlsx`, column A shows dates like `03/19/2026` (depending on your locale), while columns B and C display the product names and quantities as plain text/numbers. No extra formatting steps required—your **create excel workbook** process is done. + +`StyledTable.xlsx` を開くと、列 A に `03/19/2026` のような日付が(ロケールに応じて)表示され、列 B と C には製品名と数量がテキスト/数値としてそのまま表示されます。追加の書式設定は不要で、**create excel workbook** のプロセスは完了です。 + +--- + +## よくある質問とエッジケース + +### 1️⃣ What if my DataTable has more than three columns? + +Add more `Style` objects to the `columnStyles` array, and adjust the `Number` property for any column that needs a special format (e.g., currency, percentages). The `ImportDataTable` method will match each style by position. + +DataTable に 3 列以上ある場合はどうすればよいですか? + +`columnStyles` 配列に `Style` オブジェクトを追加し、特別な書式(通貨、パーセンテージなど)が必要な列の `Number` プロパティを調整してください。`ImportDataTable` メソッドは位置に基づいて各スタイルを対応させます。 + +### 2️⃣ Can I apply a custom date format instead of the built‑in 14? + +Absolutely. Replace `columnStyles[i].Number = 14;` with: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ How do I **export data to excel** in a web API without writing to disk? + +Use a `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ What if the user’s locale expects a different date separator? + +The built‑in date format (ID 14) respects the workbook’s locale settings. If you need a fixed format regardless of locale, use the `Custom` property as shown above. + +ユーザーのロケールが異なる日付区切り文字を期待する場合はどうすればよいですか? + +組み込みの日付形式(ID 14)はワークブックのロケール設定を尊重します。ロケールに関係なく固定フォーマットが必要な場合は、上記のように `Custom` プロパティを使用してください。 + +### 5️⃣ Does this work with .NET Core? + +Yes—Aspose.Cells supports .NET Standard 2.0 and later, so the same code runs on .NET 6, .NET 7, or any compatible runtime. + +.NET Core でも動作しますか? + +はい。Aspose.Cells は .NET Standard 2.0 以降をサポートしているため、同じコードが .NET 6、.NET 7、またはそれに対応するランタイム上で動作します。 + +--- + +## ベストプラクティスのヒント(プロのコツ) + +- **Reuse styles**: Creating a style per column is cheap, but re‑using the same style object for identical columns saves memory. +- **Avoid cell‑by‑cell loops**: `ImportDataTable` is highly optimized; manual loops are slower and prone to errors. +- **Set workbook culture early** if you need consistent number/date separators across environments: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validate DataTable** before import—null dates will throw an exception when the date style is applied. +- **Turn on calculation** if you add formulas after import: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## 結論 + +You now have a complete, end‑to‑end recipe to **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, and **format excel cells date**—all in under a dozen lines of C# code. The approach is fast, reliable, and keeps formatting concerns inside the code, so the final spreadsheet is ready for business users the moment they open it. + +これで、**create excel workbook**、**import datatable to excel**、**set column style**、**export data to excel**、そして **format excel cells date** を実現する、C# コード数行で完結するエンドツーエンドのレシピが手に入りました。この手法は高速で信頼性が高く、書式設定のロジックをコード内に収めることで、ユーザーがファイルを開いた瞬間にビジネスユーザーがすぐに利用できるスプレッドシートが完成します。 + +Ready for the next challenge? Try adding conditional formatting, inserting charts, or converting the + +次のチャレンジに備えましたか?条件付き書式の追加、チャートの挿入、または変換を試してみてください。 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/japanese/net/row-and-column-management/_index.md index 64acc81194..09bb87d024 100644 --- a/cells/japanese/net/row-and-column-management/_index.md +++ b/cells/japanese/net/row-and-column-management/_index.md @@ -66,8 +66,10 @@ Aspose.Cells for .NET を使用して Excel の行と列を表示する方法を Aspose.Cells for .NET を使用して Excel ファイル内の列を削除する方法を学びましょう。詳細なステップバイステップガイドに従って、Excel ファイルの変更を効率化しましょう。 ### [Aspose.Cells .NET で行を削除する](./delete-row-aspose-cells/) Aspose.Cells for .NET を使って Excel の行を削除する方法を学びましょう。このステップバイステップガイドでは、前提条件、コードのインポート、そしてシームレスなデータ操作のための詳細なチュートリアルを解説します。 +### [C# で Excel ファイルを読み込む – 行の削除と特定行の除去方法](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Aspose.Cells for .NET を使用して、Excel ファイルから行を削除し、特定の行だけを除去する手順を解説します。 ### [Aspose.Cells .NET で複数の行を削除する](./delete-multiple-rows-aspose-cells/) -Aspose.Cells for .NET を使用して、Excel で複数の行を削除する方法を学びます。この詳細なステップバイステップガイドでは、前提条件、コーディング例、開発者向けの FAQ を網羅しています。 +Aspose.Cells for .NET を使用して、Excel で�数の行を削除する方法を学びます。この詳細なステップバイステップガイドでは、前提条件、コーディング例、開発者向けの FAQ を網羅しています。 ### [Aspose.Cells .NET に列を挿入する](./insert-column-aspose-cells/) Aspose.Cells for .NETを使ってExcelに列を挿入する方法を学びましょう。シンプルなステップバイステップガイドに従って、シームレスに新しい列を追加しましょう。.NET開発者に最適です。 ### [Aspose.Cells .NET で行を挿入する](./insert-row-aspose-cells/) diff --git a/cells/japanese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/japanese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..0fa31873cc --- /dev/null +++ b/cells/japanese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-21 +description: C#でExcelファイルを読み込み、Aspose.Cellsを使ってデータ行を削除します。行の削除方法や特定の行の削除方法を学び、数分でC#のExcel行削除をマスターしましょう。 +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: ja +og_description: C#でExcelファイルを読み込み、行を素早く削除し、特定の行を除去し、Aspose.Cellsを使用したC#のExcel行削除を扱う完全なステップバイステップガイド。 +og_title: ExcelファイルをC#で読み込む – 行の削除と特定の行の除去 +tags: +- C# +- Excel +- Aspose.Cells +title: ExcelファイルをC#で読み込む – 行を削除し、特定の行を除去する方法 +url: /ja/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel ファイルの読み込み C# – 行の削除と特定行の除去方法 + +**load Excel file C#** が必要で、不要な行を削除したいことはありませんか?データダンプをクリーンアップしたり、クライアントにワークブックを渡す前に特定の行を消す必要があるテンプレートを扱っているかもしれません。どちらの場合でも問題は同じです。ディスク上にある `.xlsx` を .NET で開き、**delete rows** を行い、隠れたテーブルや ListObject を壊さないようにしたいのです。 + +実は Aspose.Cells を使えばこの作業はとても簡単です。このチュートリアルでは、**how to delete rows**、**remove specific rows** の完全な実行可能サンプルを示し、最初に **c# excel row deletion** が必要になる理由も解説します。最後には、欲しい行だけが残ったクリーンな `output.xlsx` が手に入ります。 + +## What This Guide Covers + +- Aspose.Cells を使用したディスク上の Excel ワークブックの読み込み +- ListObject ヘッダーを考慮しながら、行範囲(例: 行 5‑10)を削除 +- 変更後のワークブックをファイルシステムに保存 +- テーブル内部の行を誤って削除してしまうなどの一般的な落とし穴とその対策 +- 今日からコンソールアプリに貼り付けて実行できる完全なコードサンプル + +> **Prerequisites** +> • .NET 6+(または .NET Framework 4.6+)。 +> • NuGet でインストールした Aspose.Cells for .NET(`Install-Package Aspose.Cells`)。 +> • C# と Excel の基本概念(ワークシート、セル、テーブル)に慣れていること。 + +**Microsoft.Office.Interop.Excel** ではなく Aspose.Cells を使う理由は、速度、COM 不要、サーバー上で Office がインストールされていなくても実行できる点です。さらに、行削除タスク向けの API がシンプルです。 + +--- + +## Step 1: Load the Excel Workbook in C# + +Before you can delete anything, you need to get the workbook into memory. The `Workbook` class represents the entire Excel file. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Why this matters:** +Loading the file creates an object graph that mirrors the Excel structure—worksheets, cells, tables, and so on. By holding a reference to `ws`, you can manipulate rows directly without worrying about file locks or COM interop quirks. + +--- + +## Step 2: Delete Rows That Contain Only Data + +Now that the workbook is in memory, you can delete rows. The method `Cells.DeleteRows(startRow, totalRows)` removes a contiguous block. In our example we’ll strip out rows 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**How it works:** +- `startRow` is zero‑based, so `5` actually refers to Excel’s row 6. Adjust accordingly. +- If the worksheet contains a **ListObject** (Excel table) whose header sits at row 4, Aspose.Cells will protect the header and only delete the data rows beneath it. This built‑in safety prevents you from corrupting structured tables—a common edge case when **removing data rows**. + +> **Pro tip:** If you need to delete non‑contiguous rows (e.g., rows 3, 7, 12), loop over a reversed collection of row indices and call `DeleteRows(rowIndex, 1)` for each. Deleting from the bottom up preserves the original indices for the remaining rows. + +--- + +## Step 3: Save the Modified Workbook + +Once the unwanted rows are gone, you simply write the workbook back to disk. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +The `Save` method automatically determines the file format from the extension (`.xlsx` in this case). If you need a different format—CSV, PDF, etc.—just change the extension or pass a `SaveFormat` enum. + +### Expected Result + +Open `output.xlsx` in Excel and you’ll see that rows 5‑14 (the original rows 5‑10) are gone. All other data shifts up accordingly, and any formulas that referenced the deleted rows are automatically adjusted by Aspose.Cells. + +--- + +## Frequently Asked Questions (FAQ) + +### How do I delete rows based on a condition (e.g., all rows where column A is empty)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +The loop runs backwards to avoid index shifting. This pattern answers the broader **c# excel row deletion** question when you need conditional logic. + +### What if my worksheet contains multiple ListObjects? + +Aspose.Cells treats each ListObject independently. If any table’s header would be affected by the deletion range, the API throws an `InvalidOperationException`. To work around this, either adjust the range or temporarily clear the ListObject’s `ShowTableStyleFirstColumn` property, perform the deletion, then restore it. + +### Can I delete rows without loading the whole workbook into memory? + +Yes—Aspose.Cells offers a **streaming API** (`Workbook.LoadOptions`) that reads data in chunks. However, row deletion inherently requires the worksheet’s structure, so you’ll still need to load the target sheet into memory. For massive files (>500 MB), consider processing in batches or using the **cell‑by‑cell** API. + +--- + +## Full, Runnable Example + +Below is the complete program you can compile and run as a console app. Replace `YOUR_DIRECTORY` with an actual folder path on your machine. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Running the code:** +1. Open a terminal or Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Replace `Program.cs` with the snippet above. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +You should see console output confirming the deletion and the location of the saved file. + +--- + +## Common Pitfalls & How to Avoid Them + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Accidentally deleting a ListObject header** | `DeleteRows` doesn’t check for hidden table headers when the range overlaps them. | Ensure your start row is **after** any table header, or use `ListObject` API to delete rows inside the table (`ListObject.DeleteRows`). | +| **Row indices off by one** | Aspose.Cells uses zero‑based indexing, while Excel users think in 1‑based. | Remember to subtract 1 from the Excel row number when you code. | +| **Formulas break after deletion** | Deleting rows can cause `#REF!` errors if formulas reference the removed rows. | Aspose.Cells automatically updates most formulas, but double‑check any external references or named ranges. | +| **Performance slowdown on huge files** | Deleting many rows triggers internal re‑indexing. | Batch deletions (delete a large range once) instead of many single‑row deletions. Use `DeleteRows(start, count)` wherever possible. | + +--- + +## Next Steps & Related Topics + +- **Remove specific rows based on cell values:** Combine the conditional loop shown in the FAQ with `DeleteRows`. +- **Bulk row insertion:** Use `InsertRows` to add placeholder rows before populating data. +- **Working with tables (ListObjects):** Explore `ListObject` methods for row‑level operations inside structured tables. +- **Exporting to CSV after row deletion:** Call `workbook.Save("output.csv", SaveFormat.Csv)` to produce a clean CSV without the removed rows. + +Each of these builds on the core **load excel file c#** workflow you just mastered, letting you fine‑tune Excel files programmatically. + +--- + +## Conclusion + +We’ve walked through a practical scenario of **load excel file c#**, demonstrated **how to delete rows**, and covered the nuances of **remove specific rows** and **remove data rows** using Aspose.Cells. By loading the workbook, calling `DeleteRows`, and saving the result, you achieve reliable **c# excel row deletion** without the overhead of COM interop. + +Give it a try on a real dataset—maybe clean up a sales report or strip out test rows from a template. Once you’re comfortable, experiment with conditional deletions and table‑aware operations. The API is robust enough for both simple scripts and enterprise‑grade batch processors. + +Happy coding, and feel free to drop a comment if you hit any snags! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/japanese/net/worksheet-operations/_index.md index 2078e8aa44..935601be4f 100644 --- a/cells/japanese/net/worksheet-operations/_index.md +++ b/cells/japanese/net/worksheet-operations/_index.md @@ -38,6 +38,8 @@ Aspose.Cells for .NET を使えば、Excel ファイルからハイパーリン Aspose.Cells for .NET のパワーを解き放ちましょう。Excel データを Web 上で美しく表示するために、HTML 変換時の画像設定を行う方法を学びます。 ### [ワークシートにスレッドコメントを追加する](./add-threaded-comments/) このステップバイステップのチュートリアルでは、Aspose.Cells for .NET を使用して Excel ワークシートにスレッド形式のコメントを追加する方法を学びます。簡単に共同作業を強化しましょう。 +### [ワークシートの作成方法 – 動的 Excel 生成のステップバイステップガイド](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Aspose.Cells for .NET を使用して、動的に Excel ワークシートを作成する方法をステップバイステップで解説します。 ### [ワークシート内のセルの数を数える](./count-cells/) Aspose.Cells for .NET のパワーを解き放ちましょう。このステップバイステップガイドで、Excel ワークシート内のセルをカウントする方法を学びましょう。 ### [ワークシート内のセルの切り取りと貼り付け](./cut-and-paste-cells/) diff --git a/cells/japanese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/japanese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..65dee9dc10 --- /dev/null +++ b/cells/japanese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells を使用して C# でワークシートの作成方法、動的なワークシート名を持つ Excel シートの生成方法、そしてブックを + XLSX として保存する方法を学びましょう。 +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: ja +og_description: Aspose.Cells を使用して Excel でワークシートを作成し、動的なワークシート名でシートを生成し、ブックを XLSX + として保存する方法。 +og_title: ワークシートの作り方 – 完全C#チュートリアル +tags: +- Aspose.Cells +- C# +- Excel automation +title: ワークシートの作成方法 – 動的Excel生成のためのステップバイステップガイド +url: /ja/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ワークシートの作成方法 – 完全 C# チュートリアル + +Ever wondered **how to create worksheets** on the fly without manually opening Excel every time? You’re not alone. Many developers hit a wall when they need to **generate Excel sheets** from data sources and want each sheet to carry a meaningful, dynamic name. The good news? With Aspose.Cells you can automate the whole process, **process master sheet**, and finally **save workbook as XLSX** in just a few lines of code. + +In this tutorial we’ll walk through a real‑world scenario: starting from a blank workbook, inserting a smart‑marker token that tells Aspose which detail sheets to spin up, configuring a naming pattern so each sheet gets a unique name, and finally persisting the result to disk. By the end you’ll have a ready‑to‑run C# program that creates worksheets, generates Excel sheets with dynamic worksheet names, and saves the workbook as XLSX—all without touching the UI. + +> **Prerequisites** +> • .NET 6+ (or .NET Framework 4.6+). +> • Aspose.Cells for .NET (the free trial works for this demo). +> • Basic C# knowledge—no deep Excel interop tricks required. + +--- + +## Overview of What We’ll Build + +- **Master sheet** containing a smart‑marker placeholder (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** that reads a data source (e.g., a `DataTable`) and creates a new worksheet for each department. +- **Dynamic worksheet names** following the pattern `Dept_{0}` where `{0}` is replaced by the department name. +- **Final XLSX file** saved to a folder you specify. + +That’s it. Simple, yet powerful enough for invoices, reports, or any multi‑tab Excel output. + +![Diagram showing how a master sheet is processed to generate multiple dynamic worksheets](/images/how-to-create-worksheets-diagram.png "How to create worksheets diagram") + +*Alt text: Aspose.Cells を使用して動的なワークシート名でワークシートを作成する方法のイラスト。* + +## Step 1: Set Up the Project and Add Aspose.Cells + +### Why this matters +Before any code runs, the compiler needs to know where the `Workbook`, `Worksheet`, and `SmartMarkerProcessor` classes live. Adding the NuGet package ensures you have the latest, fully‑featured API. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro tip:** If you’re using Visual Studio, right‑click the project → *Manage NuGet Packages* → search for *Aspose.Cells* and install the latest stable version. + +--- + +## Step 2: Create a New Workbook and the Master Sheet + +### What we’re doing +We start with a clean workbook, then grab the first worksheet (index 0). This sheet will act as the **master sheet** that holds the smart‑marker token. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +The `Workbook` class is the container for all worksheets. By default it creates one sheet called *Sheet1*; renaming it to “Master” makes the final file easier to navigate. + +## Step 3: Insert a Smart‑Marker Token for Detail Sheet Names + +### Why use a smart‑marker? +Smart markers let Aspose.Cells replace placeholders with data at runtime. The token `«DetailSheetNewName:Dept»` tells the processor: *“When you see this, create a new detail sheet for each row in the `Dept` column.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +You can put the token anywhere; we chose **A1** for clarity. When the processor runs, it will replace the token with the actual department name and generate a corresponding worksheet. + +## Step 4: Prepare the Data Source + +### How the data drives sheet creation +Aspose.Cells works with any `IEnumerable` data source. For this demo we’ll use a `DataTable` with a single column called `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **What if you have more columns?** +> The processor will ignore extra columns unless you reference them in additional smart markers. This keeps the sheet generation lightweight. + +## Step 5: Configure the SmartMarkerProcessor and Naming Pattern + +### Dynamic worksheet names in action +We want each new sheet to be named `Dept_Finance`, `Dept_HR`, etc. The `DetailSheetNewName` option lets us define a pattern where `{0}` is substituted with the actual department name. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +If a department appears twice, Aspose will automatically append a numeric suffix (e.g., `Dept_Finance_1`) to avoid duplicate sheet names. + +## Step 6: Process the Master Sheet to Generate Detail Sheets + +### The core of **process master sheet** +Calling `Process` does the heavy lifting: it scans the master sheet for smart markers, creates new worksheets, copies the master layout, and fills each with the row’s data. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +After this call, the workbook contains one master sheet plus four detail sheets—each named according to our pattern and populated with the department name in cell A1. + +## Step 7: Save the Workbook as XLSX + +### Final step—**save workbook as XLSX** +Now that the worksheets exist, we write the file to disk. You can choose any path; just ensure the directory exists. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Opening `DetailSheets.xlsx` will show: + +| シート名 | セル A1 (内容) | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept»(変更なし) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Edge case:** If the output folder doesn’t exist, `Save` throws a `DirectoryNotFoundException`. Wrap the call in a try‑catch block or create the folder beforehand. + +## Full Working Example + +Putting it all together, here’s the complete program you can copy‑paste into a console app: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Run the program, open the resulting file, and you’ll see exactly the layout described earlier. No manual copy‑pasting, no COM interop—just clean C# code that **generates Excel sheets** with **dynamic worksheet names**. + +## Common Questions & Gotchas + +| 質問 | 回答 | +|----------|--------| +| *Can I use a DataSet with multiple tables?* | Yes. Pass the appropriate table to `Process` or use a dictionary of tables. | +| *What if I need more than one smart‑marker on the master sheet?* | Place additional tokens like `«DetailSheetNewName:Region»` and configure a separate naming pattern if needed. | +| *Is the master sheet kept in the final file?* | By default, yes. If you don’t need it, call `workbook.Worksheets.RemoveAt(0)` after processing. | +| *How does Aspose handle very large data sets?* | It streams data efficiently, but you may want to increase `MemorySetting` if you hit memory limits. | +| *Can I export to CSV instead of XLSX?* | Absolutely—use `workbook.Save("file.csv", SaveFormat.Csv)`. The same sheet‑creation logic applies. | + +## Next Steps + +Now that you know **how to create worksheets** dynamically, you might explore: + +- **Saving workbook as XLSX** with password protection (`workbook.Protect("pwd")`). +- **Generating Excel sheets** from JSON or XML sources using `JsonDataSource` or `XmlDataSource`. +- **Applying styles** to each generated sheet (fonts, colors) via `Style` objects. +- **Merging cells** or inserting formulas automatically for summary reports. + +## Conclusion + +We’ve covered the entire pipeline: from initializing a workbook, inserting a smart‑marker, configuring **dynamic worksheet names**, processing the master sheet to **generate Excel sheets**, and finally **saving the workbook as XLSX**. The example is complete, runnable, and showcases best practices for both performance and maintainability. + +Give it a try, tweak the naming pattern, feed it real business data, and watch your Excel automation take off. If you hit any snags, drop a comment below—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/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/korean/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..1584479886 --- /dev/null +++ b/cells/korean/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells를 사용한 C# 워크북 계산 방법 – 엑셀 워크북 생성, 엑셀 셀 채우기, 엑셀 수식 계산 및 정렬 기능 + 사용 방법을 배웁니다. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: ko +og_description: C#에서 워크북을 빠르게 계산하는 방법. 이 튜토리얼에서는 엑셀 워크북을 생성하고, 엑셀 셀을 채우며, 엑셀 수식을 계산하고, + 정렬 기능을 사용하는 방법을 보여줍니다. +og_title: C#에서 워크북을 계산하는 방법 – 완전 정렬 가이드 +tags: +- C# +- Aspose.Cells +- Excel Automation +title: C#에서 워크북 계산 방법 – 정렬 및 수식 가이드 +url: /ko/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 워크북 계산하기 – 정렬 및 수식 가이드 + +엑셀을 열지 않고 **워크북을 계산**하는 방법이 궁금하셨나요? 여러분만 그런 것이 아닙니다. 많은 자동화 시나리오에서 Excel 파일을 생성하고, 몇 개의 숫자를 넣은 뒤 정렬하고, 결과를 .NET 애플리케이션으로 다시 가져와야 합니다—모두 프로그래밍 방식으로 말이죠. + +이 가이드에서는 정확히 그 과정을 단계별로 살펴보겠습니다: **Excel 워크북을 생성**, **Excel 셀에 데이터 채우기**, **SORT** 수식 붙이기, 그리고 마지막으로 **Excel 수식 계산**을 수행해 정렬된 배열을 C#에서 직접 읽어오는 방법을 다룹니다. 최종적으로 Aspose.Cells(또는 유사 라이브러리)를 참조하는 프로젝트에 바로 넣을 수 있는 실행 가능한 코드 스니펫을 제공할 것입니다. + +## 사전 요구 사항 + +- .NET 6+ (코드는 .NET Framework 4.7.2에서도 동작합니다) +- Aspose.Cells for .NET (무료 체험 NuGet 패키지 `Aspose.Cells`) +- C# 문법에 대한 기본 이해 +- Microsoft Excel이 설치될 필요 없음; 라이브러리가 모든 무거운 작업을 수행합니다 + +위 사항에 익숙하시다면, 바로 시작해 보겠습니다. + +## 워크북 초기화 – How to Calculate Workbook + +가장 먼저 해야 할 일은 새 워크북 객체를 생성하는 것입니다. 이는 완전히 비어 있는 새로운 Excel 파일을 여는 것과 같습니다. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **왜 중요한가:** `Workbook` 클래스는 모든 작업의 진입점입니다—이 없이는 시트, 셀, 수식을 추가할 수 없습니다. 올바르게 초기화하면 깨끗한 상태에서 시작할 수 있습니다. + +## Excel 워크북 생성 및 워크시트 접근 + +워크북이 생성되었으니, 이제 올바른 워크시트를 가리키고 있는지 확인해야 합니다. 대부분의 라이브러리는 기본적으로 “Sheet1”이라는 단일 시트를 제공하지만, 필요에 따라 이름을 바꾸거나 추가할 수 있습니다. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **프로 팁:** 시트 이름을 미리 지정해 두면 수식(`'Data'!A1:A10`)에서 참조할 때 편리하고, 디버깅도 쉬워집니다. + +## Excel 셀에 데이터 채우기 + +다음으로, **Excel 셀에 데이터를 채워** 정렬할 숫자를 넣겠습니다. 예제에서는 두 개의 셀만 사용하지만, 범위를 수십 행까지 확장할 수 있습니다. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **`PutValue`를 사용하는 이유** – 데이터 타입(int, double, string 등)을 자동으로 감지해 적절히 저장해 주므로 수동 형 변환이 필요 없습니다. + +## 수식으로 SORT 함수 적용 + +Excel의 `SORT` 함수는 이름 그대로 동작합니다: 원본 데이터를 변경하지 않고 정렬된 배열을 반환합니다. 이 수식을 셀 `B1`에 삽입하겠습니다. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **예외 상황 주의:** `SORT`는 **배열** 결과를 반환합니다. 구버전 Excel(Office 365 이전)에서는 Ctrl+Shift+Enter가 필요했지만, Aspose.Cells에서는 워크북을 계산하면 자동으로 배열을 얻을 수 있습니다. + +## Excel 수식 계산하여 결과 얻기 + +이 시점에서 워크북은 *무엇을* 계산해야 하는지는 알고 있지만, 실제로 **계산**하도록 지시받지 못했습니다. `CalculateFormula`를 호출하면 엔진이 모든 수식을 평가하고, 우리 `SORT`도 포함됩니다. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**예상 콘솔 출력** + +``` +Sorted array: {2, 5} +``` + +> **무슨 일이 일어났나요?** +> 1. 워크북이 내부 계산 엔진을 생성했습니다. +> 2. `SORT` 수식이 범위 `A1:A2`를 검사했습니다. +> 3. 엔진이 새로운 배열을 생성했고, 우리는 이를 `B1`에서 가져왔습니다. + +`A1`과 `A2`의 값을 변경하거나(또는 범위를 확장하고) `CalculateFormula`를 다시 실행하면 출력이 자동으로 업데이트됩니다—추가 코드는 필요 없습니다. + +## 더 큰 데이터셋에 Sort 함수 사용 (선택 사항) + +실제 상황에서는 두 행보다 훨씬 많은 데이터가 존재합니다. 아래와 같이 약간만 수정하면任意 개수의 항목에 대해 동작합니다: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **왜 필요할 수 있나요:** 큰 범위를 정렬하면 리더보드 생성, 재무 데이터 순위 지정, 혹은 CSV를 가져와서 전처리하는 작업 등에 유용합니다. + +## 흔히 겪는 문제와 해결 방법 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **`#VALUE!` in B1** | `SORT` 수식이 빈 범위 또는 비숫자 범위를 참조하고 있습니다. | 소스 범위의 모든 셀에 숫자 또는 정렬 가능한 텍스트가 들어 있는지 확인하세요. | +| **Array truncation** | 단일 셀에서 배열을 캐스팅 없이 읽으려 할 때 발생합니다. | `worksheet.Cells["B1"].Value`를 `object[]`(또는 적절한 타입)으로 캐스팅하세요. | +| **Performance slowdown** | 작은 변경마다 거대한 워크북을 재계산할 때 발생합니다. | 시트 변경을 모두 마친 뒤에만 `CalculateFormula`를 호출하거나, `CalculateFormulaOptions`로 범위를 제한하세요. | + +## 전체 작업 예제 (복사‑붙여넣기 가능) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **결과 스크린샷** +> ![워크북 계산 결과 예시](https://example.com/images/sorted-result.png "워크북 계산 결과 예시") + +위 그림은 계산 후 워크북을 보여줍니다—셀 **B1**에 정렬된 배열 `{2, 5}`가 들어 있습니다. + +## 결론 + +우리는 **워크북을 프로그래밍 방식으로 계산**하는 방법을 살펴보았습니다: Excel 워크북 생성, Excel 셀에 데이터 채우기, `SORT` 수식 삽입, 그리고 **Excel 수식 계산**을 통해 정렬된 데이터를 추출하는 전체 흐름입니다. 이 접근법은 두 셀 예제뿐 아니라 대규모 데이터셋에도 자연스럽게 확장됩니다. + +다음 단계는 `FILTER`, `UNIQUE` 같은 다른 함수와 결합하거나, `WorksheetFunction`을 이용해 VBA‑스타일 로직을 구현해 보는 것입니다. 또한 워크북을 디스크에 저장(`workbook.Save("Sorted.xlsx")`)하고 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-and-rendering/_index.md b/cells/korean/net/conversion-and-rendering/_index.md index 682725d46a..d58cfece0f 100644 --- a/cells/korean/net/conversion-and-rendering/_index.md +++ b/cells/korean/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Aspose.Cells for .NET을 사용하여 Excel 워크시트를 SVG로 변환하는 방법을 단계별 가이드를 통해 알아보세요. Excel을 SVG로 렌더링하려는 .NET 개발자에게 적합합니다. ### [.NET에서 Excel을 MHTML로 변환하기](./converting-excel-to-mhtml/) Aspose.Cells를 사용하여 .NET에서 Excel 파일을 MHTML 형식으로 효율적으로 변환하는 방법을 알아보고 보고 및 데이터 공유 기능을 강화하세요. +### [Excel에서 이미지 만들기 – C#에서 피벗을 PNG로 내보내기](./create-image-from-excel-export-pivot-to-png-in-c/) +Aspose.Cells for .NET을 사용하여 피벗 테이블을 PNG 이미지로 내보내는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/korean/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..4e3127821b --- /dev/null +++ b/cells/korean/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells를 사용하여 C#에서 Excel을 이미지로 만들기. Excel을 이미지로 변환하고, 피벗을 내보내며, + 완전하고 실행 가능한 예제로 PNG로 저장하는 방법을 배웁니다. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: ko +og_description: C#에서 Excel을 빠르게 이미지로 만들기. 이 가이드는 Excel을 이미지로 변환하고, 피벗을 내보내며, 명확한 코드로 + 이미지를 PNG로 저장하는 방법을 보여줍니다. +og_title: Excel에서 이미지 만들기 – 피벗을 PNG로 내보내기 (C#) +tags: +- C# +- Aspose.Cells +- Excel automation +title: Excel에서 이미지 만들기 – C#로 피벗을 PNG로 내보내기 +url: /ko/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# **create image from Excel** – 피벗을 PNG로 내보내기 (C#) + +**create image from Excel** 해야 할 때, 어떤 API를 사용해야 할지 몰라 고민한 적 있나요? 당신만 그런 것이 아니라—많은 개발자들이 실시간 피벗 테이블을 공유 가능한 PNG로 변환하려 할 때 이 장벽에 부딪힙니다. + +이 튜토리얼에서는 **converts Excel to image** 를 수행하고, **how to export pivot** 를 보여주며, PNG 파일로 **how to save image** 하는 완전하고 바로 실행 가능한 솔루션을 단계별로 안내합니다. 끝까지 보면 전체 작업을 수행하는 단일 메서드와 발생할 수 있는 다양한 상황에 대한 팁을 얻을 수 있습니다. + +## 필요 사항 + +- **Aspose.Cells for .NET** (NuGet 패키지 `Aspose.Cells`). 상용 라이브러리이지만 무료 평가 모드를 제공하므로 테스트에 적합합니다. +- .NET 6+ (또는 .NET Framework 4.6+). +- 피벗 테이블이 최소 하나 포함된 간단한 Excel 워크북 (`Pivot.xlsx`). +- 원하는 IDE를 사용하세요—Visual Studio, Rider, 혹은 VS Code도 작동합니다. + +이것만 있으면 됩니다. 추가 DLL, COM 인터옵, 복잡한 Excel 자동화 트릭이 필요 없습니다. + +그럼 코드를 살펴보겠습니다. + +## 단계 1: 워크북 로드 – Excel에서 이미지 만들기 + +먼저 피벗 테이블이 포함된 Excel 파일을 엽니다. 이 단계는 렌더러가 메모리 내 `Workbook` 객체를 대상으로 작동하기 때문에 매우 중요합니다. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Why this matters:* 워크북을 로드하면 **pivot** 및 이후 **convert Excel to image** 시 적용되는 모든 서식에 접근할 수 있습니다. 이를 건너뛰면 렌더러가 작업할 것이 없습니다. + +## 단계 2: 내보내기 옵션 구성 – Excel을 이미지로 변환 + +다음으로 Aspose에 최종 이미지의 모양을 지정합니다. `ImageOrPrintOptions` 클래스를 사용해 PNG를 선택하고 DPI를 설정하며 배경색까지 제어할 수 있습니다. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Why this matters:* 높은 DPI를 설정하면 **export Excel to PNG** 가 선명하게 표시됩니다. 피벗에 행이 많아도 마찬가지이며, 파일 크기가 문제라면 DPI를 낮출 수 있습니다. + +## 단계 3: 워크시트 렌더링 – 피벗 내보내기 방법 + +이제 과정의 핵심 단계인 워크시트(피벗 포함)를 이미지로 변환합니다. `WorksheetRender` 클래스가 주요 작업을 수행합니다. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Why this matters:* 여기서 **how to export pivot** 를 시각적 형식으로 변환합니다. 렌더러는 모든 피벗 서식, 슬라이서, 조건부 스타일을 그대로 유지하므로 PNG가 Excel에서 보는 그대로 표시됩니다. + +## 단계 4: 전체 통합 – 이미지 저장 방법 + +마지막으로 모든 요소를 연결하는 단일 공개 메서드를 제공합니다. 이 메서드는 애플리케이션, 서비스 또는 콘솔 도구에서 호출하게 됩니다. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### 전체 작동 예제 + +`Aspose.Cells` NuGet 패키지를 추가하고 새 콘솔 프로젝트를 만든 뒤, 아래 `Program.cs` 파일을 넣으세요: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Expected result:** 프로그램을 실행하면 지정한 폴더에 `PivotImage.png` 가 생성되어 피벗 테이블의 픽셀 단위 정확한 스냅샷을 보여줍니다. + +![Excel에서 이미지 만들기 예시](https://example.com/placeholder.png "Excel에서 이미지 만들기 예시") + +*Alt text:* Excel에서 이미지 만들기 예시 – 내보낸 피벗 테이블을 PNG로 표시. + +## 일반 질문 및 엣지 케이스 + +### 워크북에 여러 워크시트가 있는 경우는 어떻게 하나요? + +현재 헬퍼는 `Worksheets[0]` 를 가져옵니다. 특정 시트를 지정하려면 시트 이름을 전달하세요: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG가 흐릿한 경우—해결 방법은? + +`GetImageOptions` 에서 `HorizontalResolution` 과 `VerticalResolution` 를 높이세요. 일반적으로 300–600 DPI 값을 사용하면 선명한 결과를 얻을 수 있습니다. DPI가 높을수록 파일 크기가 커진다는 점을 기억하세요. + +### 피벗이 여러 페이지에 걸쳐 있는 경우—전체 페이지를 내보낼 수 있나요? + +예. `renderer.PageCount` 를 순회하며 각 페이지에 대해 `ToImage(pageIndex, ...)` 를 호출하거나, `OnePagePerSheet = false` 로 설정하면 페이지별로 별도 이미지를 얻을 수 있습니다. + +### 시트의 일부만 필요할 경우(예: 특정 범위)? + +`ImageOrPrintOptions` 를 사용해 `PrintArea` 를 설정하세요: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +이렇게 하면 관심 있는 영역만 **convert Excel to image** 할 수 있습니다. + +### .xls (Excel 97‑2003) 파일에서도 작동하나요? + +물론입니다. Aspose.Cells는 파일 형식을 추상화하므로 `.xls`, `.xlsx`, `.xlsm` 혹은 `.ods` 파일을 사용해도 **export excel to png** 할 수 있습니다. + +## 전문가 팁 및 주의사항 + +- **License matters**: 평가 모드에서는 Aspose가 워터마크를 추가합니다. 프로덕션에서는 정식 라이선스를 적용하세요. +- **Memory usage**: 대용량 워크북을 렌더링하면 메모리 사용량이 많아질 수 있습니다. `Workbook` 객체를 즉시 해제하거나 `using` 블록으로 감싸세요. +- **Thread safety**: `Workbook` 은 스레드 안전하지 않습니다. 웹 서비스에서 사용한다면 요청당 새 인스턴스를 생성하세요. +- **Image format flexibility**: JPEG나 BMP가 필요하면 `GetImageOptions` 의 `ImageFormat` 을 변경하면 됩니다. + +## 결론 + +이제 **create image from Excel** 을 수행하고, **export pivot** 데이터를 고품질 PNG로 내보내는 완전한 엔드‑투‑엔드 레시피를 갖추었습니다. 위 스니펫은 전체 실행 가능한 코드를 보여주며 **how to save image** 를 설명하고, 다중 시트나 사용자 정의 인쇄 영역과 같은 변형도 다룹니다. + +다음 단계는? 이 익스포터를 이메일 서비스와 연결해 PNG를 자동으로 전송하거나, `ImageOrPrintOptions` 를 활용해 PNG 대신 PDF를 생성해 보세요. 동일한 패턴은 다양한 형식의 **convert excel to image** 작업에도 적용됩니다. + +추가 질문이 있나요? 댓글을 남겨 주세요. 즐거운 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..e280611e5c 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 @@ -46,6 +46,8 @@ Aspose.Cells for .NET은 문서 변환을 간소화하여 개발자가 프로세 Aspose.Cells를 사용하여 .NET에서 CSV를 JSON으로 변환하는 방법을 알아보세요. 따라하기 쉬운 코드 예제를 통해 데이터 변환을 위한 단계별 가이드를 제공합니다. ### [.NET에서 Excel 파일을 DOCX로 프로그래밍 방식으로 변환](./converting-excel-file-to-docx/) 이 단계별 가이드에서는 Aspose.Cells for .NET을 사용하여 Excel 파일을 DOCX로 프로그래밍 방식으로 변환하는 방법을 알아봅니다. 보고서 생성 및 데이터 공유에 적합합니다. +### [C#로 Excel을 Docx로 저장하는 완전 단계별 가이드](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Aspose.Cells for .NET을 사용하여 C# 코드로 Excel 파일을 Docx 형식으로 저장하는 방법을 단계별로 안내합니다. ### [.NET에서 도구 설명을 사용하여 Excel 파일을 HTML로 변환](./converting-excel-file-to-html-with-tooltip/) Aspose.Cells for .NET을 사용하여 몇 가지 간단한 단계만으로 Excel을 도구 설명이 포함된 HTML로 변환하세요. 대화형 Excel 데이터로 웹 앱을 손쉽게 개선하세요. ### [.NET에서 Excel 파일을 마크다운으로 프로그래밍 방식으로 변환](./converting-excel-file-to-markdown/) diff --git a/cells/korean/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/korean/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..3de2bff224 --- /dev/null +++ b/cells/korean/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-21 +description: C#에서 Excel을 Docx로 저장 — Excel을 Word로 변환하고 차트를 삽입하며 Aspose.Cells를 사용해 C#에서 + Excel 워크북을 로드하는 방법을 배워보세요. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: ko +og_description: C#에서 Excel을 Docx로 저장하는 방법을 첫 문장에서 설명합니다. 이 튜토리얼을 따라 Excel을 Word로 변환하고 + 차트를 삽입하며 C#으로 Excel 워크북을 로드하세요. +og_title: C#로 Excel을 Docx로 저장하는 완전 가이드 +tags: +- C# +- Aspose.Cells +- Document Conversion +title: C#로 Excel을 Docx로 저장하기 – 완전 단계별 가이드 +url: /ko/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#로 Excel을 Docx로 저장하기 – 완전 단계별 가이드 + +Excel을 **Docx로 저장**해야 하는데 어디서 시작해야 할지 몰라 고민한 적 있나요? 혼자가 아닙니다—많은 개발자들이 차트를 그대로 유지하면서 *Excel을 Word로 변환*하려 할 때 같은 장벽에 부딪힙니다. 이 튜토리얼에서는 필요한 정확한 코드를 단계별로 살펴보고, 각 라인이 왜 중요한지 설명하며, 품질 손실 없이 Excel 차트를 삽입하는 방법을 보여드립니다. + +또한 **load Excel workbook C#** 상황에 대한 몇 가지 추가 팁도 제공하므로, .NET 프로젝트 어디에서든 Excel을 Docx로 변환하는 데 자신감을 가질 수 있습니다. 모호한 설명이 아니라 지금 바로 복사‑붙여넣기 할 수 있는 구체적인 실행 예제만 제공합니다. + +--- + +## 이 가이드에서 다루는 내용 + +- Aspose.Cells(또는 호환 라이브러리)를 사용해 기존 `.xlsx` 파일 로드 +- 변환 전 워크시트나 차트를 선택적으로 조작 +- 차트를 포함한 워크북을 `.docx` 파일로 저장 +- 출력 파일 검증 및 대용량 워크북이나 지원되지 않는 차트 유형 같은 일반적인 예외 상황 처리 + +**왜 Excel을 Docx로 변환하고 싶을까?** 라고 생각한다면, 비기술적인 이해관계자에게 보내야 하는 보고서를 떠올려 보세요—Word 문서는 보편적으로 받아들여지며 차트의 시각적 정확성을 유지합니다. 이제 시작해봅시다. + +--- + +## 사전 준비 – Load Excel Workbook C# + +코드를 작성하기 전에 아래 항목들을 준비하세요. + +| 요구 사항 | 이유 | +|-------------|--------| +| **.NET 6.0 이상** | 최신 런타임, 향상된 성능, Aspose.Cells 완전 지원 | +| **Aspose.Cells for .NET** (NuGet 패키지 `Aspose.Cells`) | Excel을 읽고 DOCX로 내보내는 `Workbook` 클래스를 제공 | +| **Visual Studio 2022** (또는 선호하는 IDE) | 디버깅 및 IntelliSense에 편리 | +| **차트가 포함된 Excel 파일** (`AdvancedCharts.xlsx`) | *embed excel charts* 기능을 실제로 확인하기 위함 | + +패키지는 Package Manager Console에서 다음과 같이 설치할 수 있습니다. + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** CI/CD 파이프라인을 사용 중이라면 `*.csproj`에 패키지를 추가해 자동 복원을 설정하세요. + +--- + +## Step 1 – Load the Excel Workbook (Save Excel as Docx Starts Here) + +첫 번째 단계는 원본 워크북을 로드하는 것입니다. 여기서 **load excel workbook c#** 문구가 등장합니다. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **왜 중요한가:** 파일을 로드하면 모든 워크시트, 차트, 스타일에 접근할 수 있습니다. 이 단계가 없으면 변환할 것이 없으며 API가 삽입된 그래픽을 보존할 수 없습니다. + +--- + +## Step 2 – (Optional) Tweak the Workbook Before Conversion + +시트 이름을 바꾸거나, 열을 숨기거나, 차트 제목을 변경하고 싶을 수도 있습니다. 이 단계는 선택 사항이지만 변환이 얼마나 유연한지 보여줍니다. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **예외 상황:** 일부 오래된 차트 유형(예: Radar)은 Word에서 완벽히 렌더링되지 않을 수 있습니다. 변환 후 차트를 반드시 테스트하세요. + +--- + +## Step 3 – Save the Workbook as a Word Document (The Core “Save Excel as Docx” Action) + +이제 진짜 핵심 단계, **Excel을 Docx로 저장**합니다. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +이 코드를 실행하면 Aspose.Cells가 각 워크시트를 Word 파일 안의 표로 변환하고, 각 차트를 고해상도 이미지로 삽입합니다. 결과물은 원본 Excel 화면과 동일하게 보이는 완전 편집 가능한 `.docx` 파일이 됩니다. + +> **왜 PDF 대신 DOCX를 선택할까?** DOCX는 수신자가 텍스트를 편집하거나 차트를 교체할 수 있게 해 주는 반면, PDF는 정적인 스냅샷에 불과합니다. + +--- + +## Step 4 – Verify the Output and Troubleshoot Common Issues + +변환이 끝나면 `ChartsInWord.docx` 파일을 Microsoft Word에서 엽니다. + +1. **각 워크시트가 별도 섹션으로 나타나는지 확인** – Excel 데이터와 동일한 표가 보여야 합니다. +2. **차트가 삽입되었는지 확인** – 차트는 깨진 자리표시자가 아니라 선택 가능한 이미지여야 합니다. +3. **차트가 누락된 경우**, 차트 유형이 Aspose.Cells에서 지원되는지 확인하세요(예: [공식 호환성 목록](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tip:** 대용량 워크북의 경우 `OutOfMemoryException`을 방지하기 위해 Aspose.Cells의 `MemorySetting`을 늘리는 것을 고려하세요. + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## 전체 작업 예제 (복사‑붙여넣기 바로 사용) + +아래는 컴파일 가능한 전체 프로그램입니다. `YOUR_DIRECTORY`를 실제 폴더 경로로 교체하세요. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**예상 결과:** 모든 워크시트가 표로, 모든 차트가 고해상도 이미지로 삽입된 Word 문서(`ChartsInWord.docx`). Word에서 열어 보면 Excel에서 보던 정확한 시각 레이아웃을 확인할 수 있습니다. + +--- + +## Frequently Asked Questions (FAQ) + +**Q: 여러 Excel 파일을 반복문으로 변환할 수 있나요?** +A: 물론입니다. 변환 로직을 `foreach (var file in Directory.GetFiles(...))` 루프에 넣고 동일한 `Workbook` 인스턴스 패턴을 재사용하면 됩니다. + +**Q: `.xls` 파일도 작동하나요?** +A: 네—Aspose.Cells는 레거시 형식을 지원합니다. 파일 확장자만 바꾸면 동일한 `SaveFormat.Docx` 호출이 적용됩니다. + +**Q: 변환 시 수식도 유지하고 싶다면?** +A: Word는 Excel 수식을 원본 그대로 지원하지 않습니다. 변환 과정에서 수식은 계산된 값으로 평탄화됩니다. 실시간 계산이 필요하면 워크북을 OLE 객체로 삽입하는 방식을 고려하세요. + +**Q: 차트 이미지 해상도를 제어할 방법이 있나요?** +A: 저장 전에 `ImageOrPrintOptions`를 사용하세요. + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## 보너스: Excel 차트를 Word에 직접 삽입하기 (Save Excel as Docx를 넘어) + +차트를 Word에서 편집 가능하도록 유지하고 싶다면 전체 Excel 시트를 OLE 객체로 삽입할 수 있습니다. + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +이 기술은 *embed excel charts*를 라이브 객체로 만들며, 사용자는 Word 안에서 차트를 더블‑클릭해 Excel로 직접 편집할 수 있습니다. 인터랙티브가 필요한 경우 유용한 대안입니다. + +--- + +## 결론 + +이제 C#을 사용해 **Excel을 Docx로 저장**하는 완전한 엔드‑투‑엔드 솔루션을 갖추었습니다. 튜토리얼에서는 워크북 로드, 선택적 조정, 실제 저장 작업, 검증 단계, 그리고 편집 가능한 차트 삽입까지 다루었습니다. 위 코드를 따라 하면 **Excel을 Word로 변환**하면서 모든 차트를 보존하고 대용량 파일도 안정적으로 처리할 수 있습니다. + +다음 과제에 도전해 보세요. 배치 변환 자동화, ASP.NET Core API에 통합, 혹은 **convert Excel to docx**를 활용한 다중 시트 대시보드 구현 등. 지금 배운 기술은 모든 문서 자동화 프로젝트의 기반이 됩니다. + +궁금한 점이나 변환이 안 되는 복잡한 워크북이 있나요? 댓글로 알려 주세요. 함께 문제를 해결해 봅시다. 즐거운 코딩 되세요! + +![Excel 워크북에서 Word DOCX 파일로 흐르는 과정을 보여주는 다이어그램 – save excel as docx 프로세스 일러스트레이션](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..7e0ca18e1a 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에 문서 속성을 추가하는 방법을 알아보세요. +### [.NET에서 XLSB 저장 – 사용자 지정 속성 추가](./how-to-save-xlsb-add-custom-property-in-c/) +C#를 사용해 XLSB 파일을 저장하고 사용자 지정 속성을 추가하는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/korean/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..cbe61ee574 --- /dev/null +++ b/cells/korean/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,274 @@ +--- +category: general +date: 2026-03-21 +description: C#에서 ProjectId와 같은 사용자 정의 속성을 추가하면서 xlsb 파일을 저장하는 방법을 배웁니다. 이 가이드는 Excel + 워크북을 만들고, 사용자 정의 속성을 추가한 뒤 이를 확인하는 방법을 보여줍니다. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: ko +og_description: C#를 사용하여 xlsb 파일을 저장하고 ProjectId와 같은 사용자 정의 속성을 추가하는 방법을 알아보세요. 전체 + 코드를 포함한 단계별 가이드. +og_title: XLSB 저장 방법 – C#에서 사용자 정의 속성 추가 +tags: +- C# +- Aspose.Cells +- Excel automation +title: XLSB 저장 방법 – C#에서 사용자 정의 속성 추가 +url: /ko/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# XLSB 저장 방법 – C#에서 사용자 정의 속성 추가 + +XLSB 파일을 저장하면서 메타데이터를 함께 넣고 싶으신가요? 예를 들어 숨겨진 ProjectId를 포함한 보고서 엔진을 만들거나, 워크시트를 다운스트림 처리용으로 태그하고 싶을 때 말이죠. **XLSB 저장 방법**은 복잡하지 않지만, 사용자 정의 속성을 함께 사용하면 많은 개발자가 간과하는 작은 트릭이 있습니다. + +이 튜토리얼에서는 Excel 워크북을 생성하고, 사용자 정의 속성(예: *add custom property*)을 추가한 뒤, **XLSB** 바이너리 워크북으로 파일을 저장하고, 마지막으로 속성이 정상적으로 보존됐는지 확인하는 과정을 단계별로 살펴보겠습니다. 또한 **how to add custom property** 값을 ProjectId와 같이 추가하는 방법도 다루어, 향후 프로젝트에 재사용 가능한 패턴을 제공하도록 하겠습니다. + +> **Pro tip:** 이미 Aspose.Cells 라이브러리를 사용하고 있다면(아래 코드 참고), COM 인터옵 문제 없이 사용자 정의 속성을 기본적으로 지원합니다. + +--- + +## Prerequisites + +- .NET 6+ (또는 .NET Framework 4.6+). +- Aspose.Cells for .NET – NuGet을 통해 설치: `Install-Package Aspose.Cells`. +- 기본적인 C# 지식 – 특별한 것이 아니라 몇 개의 `using` 문만 있으면 됩니다. + +이것만 있으면 됩니다. Office 설치나 인터옵 없이 순수 관리 코드만으로 가능합니다. + +--- + +## Step 1: How to Save XLSB – Create Excel Workbook + +가장 먼저 해야 할 일은 새로운 워크북 객체를 만드는 것입니다. 이는 메모리 상에만 존재하는 빈 Excel 파일을 열어두는 것과 같습니다. 파일을 디스크에 쓰기로 결정할 때까지 메모리에서만 존재합니다. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +왜 워크북부터 시작해야 할까요? **create excel workbook**는 이후에 수식, 차트, 사용자 정의 속성 등을 삽입하기 위한 기반이 됩니다. `Workbook` 클래스는 전체 파일을 추상화하고, `Worksheets`는 개별 탭에 접근할 수 있게 해줍니다. + +--- + +## Step 2: Add Custom Property to Worksheet + +이제 재미있는 부분, **add custom property**입니다. Aspose.Cells에서는 워크시트(또는 워크북 자체)에 직접 속성을 붙일 수 있습니다. 여기서는 다운스트림 서비스가 셀을 건드리지 않고도 읽을 수 있는 숫자형 ProjectId를 저장합니다. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? `CustomProperties.Add(name, value)`를 호출하면 됩니다. API가 내부 XML을 자동으로 처리해 주므로 저수준 세부 사항을 신경 쓸 필요가 없습니다. 이는 최종 사용자에게 보이지 않는 메타데이터를 삽입하는 가장 안전한 방법입니다. + +--- + +## Step 3: Save the Workbook as XLSB + +워크북이 준비되고 사용자 정의 속성이 붙었으니 이제 **how to save xlsb** 차례입니다. XLSB 형식은 데이터를 바이너리 형태로 저장하므로 일반 XLSX보다 파일 크기가 작고 열기가 빠릅니다. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +`Save` 메서드에 `SaveFormat.Xlsb`를 전달하기만 하면 XLSB로 저장됩니다. 이때 사용자 정의 속성이 사라질까 걱정하실 필요 없습니다. Aspose.Cells는 워크북 수준 및 워크시트 수준 속성을 모두 바이너리 파일에 보존합니다. + +--- + +## Step 4: Verify the Custom Property + +파일을 다시 로드하여 속성이 라운드‑트립을 견뎠는지 확인하는 것이 좋은 습관입니다. 또한 **how to add custom property**를 나중에 업데이트할 때도 이 방법을 사용할 수 있습니다. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +콘솔에 `12345`가 출력된다면 **how to save xlsb**와 **add project id**를 한 번에 성공한 것입니다. 속성은 파일 내부 메타데이터에 존재하며 UI에는 보이지 않지만 코드에서는 완벽히 읽을 수 있습니다. + +--- + +## Additional Tips: Adding Multiple Properties & Edge Cases + +### Adding More Than One Property + +필요한 만큼 속성을 추가할 수 있습니다: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Updating an Existing Property + +이미 존재하는 속성이 있다면 새 값을 할당하면 됩니다: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Handling Missing Properties + +존재하지 않는 속성을 읽으려 하면 `KeyNotFoundException`이 발생합니다. 이를 방지하려면 다음과 같이 처리하세요: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Cross‑Version Compatibility + +XLSB는 Excel 2007 +와 웹 버전 Excel에서 작동합니다. 그러나 2007 이전 Office 버전에서는 XLSB 파일을 열 수 없습니다. 더 넓은 호환성이 필요하면 XLSX 형식으로 두 번째 사본을 저장하는 것을 고려하세요. + +### Performance Considerations + +바이너리 XLSB 파일은 일반적으로 XLSX보다 30‑50 % 작으며 로드 속도가 더 빠릅니다. 수십만 행 규모의 대용량 데이터셋에서는 성능 차이가 눈에 띕니다. + +--- + +## Full Working Example + +아래는 콘솔 프로젝트에 복사‑붙여넣기 할 수 있는 전체 프로그램 예시입니다. 모든 단계, 오류 처리, 주석이 포함되어 있어 즉시 실행할 수 있습니다. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Expected output** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +위와 같이 출력된다면 **how to save xlsb**, **add custom property**, **add project id**를 모두 깔끔하게 구현한 것입니다. + +--- + +## Frequently Asked Questions + +**Q: Does this work with .NET Core?** +A: Absolutely. Aspose.Cells는 .NET Standard‑compatible이므로 .NET 5/6/7 및 .NET Framework에서도 동일한 코드가 동작합니다. + +**Q: Can I add a custom property to the whole workbook instead of a single sheet?** +A: Yes. `workbook.CustomProperties.Add("Key", value);`를 사용하면 워크북 수준에 속성을 붙일 수 있습니다. + +**Q: What if I need to store a large string (e.g., JSON) as a property?** +A: API는 길이에 제한 없이 문자열을 받아들이지만, 매우 큰 블롭은 파일 크기를 증가시킬 수 있습니다. 대용량 데이터를 저장해야 한다면 숨겨진 시트를 사용하는 것을 고려하세요. + +**Q: Is the custom property visible in Excel’s UI?** +A: 직접적으로는 보이지 않습니다. 사용자는 **File → Info → Properties → Advanced Properties → Custom**을 통해 확인할 수 있지만, 그리드에는 나타나지 않습니다. + +--- + +## Conclusion + +우리는 C#에서 **how to save xlsb** 파일을 저장하면서 **add custom property**(예: ProjectId)를 추가하는 방법을 다뤘습니다. **create excel workbook**, **add custom property**, **save as XLSB**, **verify** 순서대로 진행하면 검색 엔진 크롤러와 AI 어시스턴트 모두에게 유용한 견고한 레퍼런스를 얻게 됩니다. + +다음 단계로 시도해볼 수 있는 내용: + +- **How to add custom property**를 여러 워크시트에 루프를 돌려 적용하기. +- DataTable 데이터를 워크북에 내보낸 뒤 저장하기. +- 추가 보안을 위해 XLSB 파일을 암호화하기. + +속성 이름을 바꾸거나 바이너리 형식 대신 XLSX로 교체하는 등 자유롭게 실험해 보세요. 어려운 상황이 있으면 댓글로 알려 주세요. 함께 해결해 나갑시다. Happy coding! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/korean/net/excel-autofilter-validation/_index.md index 530058c2ab..c78c0826a1 100644 --- a/cells/korean/net/excel-autofilter-validation/_index.md +++ b/cells/korean/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Excel에서 엄청난 양의 데이터를 걸러내느라 힘드셨던 적이 이 포괄적인 단계별 가이드를 통해 .NET에서 Aspose.Cells를 사용하여 Excel 행을 자동으로 필터링하는 방법을 손쉽게 알아보세요. ### [Excel에서 10진수 데이터 유효성 검사](./decimal-data-validation-in-excel/) 따라 하기 쉬운 가이드를 통해 Aspose.Cells for .NET을 사용하여 Excel에서 소수점 데이터 유효성 검사를 구현하는 방법을 알아보세요. 데이터 무결성을 손쉽게 강화하세요. +### [Excel에서 자동 필터 제거 – 완전 C# 가이드](./remove-autofilter-from-excel-complete-c-guide/) +Aspose.Cells for .NET을 사용하여 Excel에서 자동 필터를 제거하는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/korean/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..06fb5cd29b --- /dev/null +++ b/cells/korean/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,229 @@ +--- +category: general +date: 2026-03-21 +description: C#를 사용하여 Excel에서 AutoFilter를 제거하는 방법을 배워보세요. 이 단계별 가이드는 AutoFilter를 삭제하고, + Excel에서 AutoFilter를 끄며, Excel 테이블 필터를 지우는 방법도 보여줍니다. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: ko +og_description: C#를 사용하여 Excel에서 자동 필터를 제거합니다. 이 튜토리얼에서는 자동 필터를 삭제하고, Excel에서 자동 필터를 + 끄며, 몇 줄의 코드만으로 Excel 테이블 필터를 지우는 방법을 보여줍니다. +og_title: Excel에서 자동 필터 제거 – 완전한 C# 가이드 +tags: +- C# +- Aspose.Cells +- Excel automation +title: Excel에서 자동 필터 제거 – 완전한 C# 가이드 +url: /ko/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel에서 AutoFilter 제거 – 완전 C# 가이드 + +Excel에서 **remove AutoFilter from Excel**를 제거해야 할 때가 있었지만, 실제로 이를 비활성화하는 API 호출이 무엇인지 몰랐나요? 당신만 그런 것이 아닙니다. 많은 보고 파이프라인에서 필터 UI가 다운스트림 처리에 방해가 되므로, 이를 깨끗이 제거하는 것이 일반적인 요구사항입니다. 이 튜토리얼에서는 **how to delete AutoFilter**, **turn off AutoFilter Excel** 스타일 필터를 해제하는 방법 및 **clear Excel table filter**를 완전히 제거하는 방법을 보여주는 간결하고 프로덕션 준비된 솔루션을 단계별로 안내합니다. + +> **What you’ll walk away with:** 준비된 C# 프로그램으로 기존 워크북을 로드하고, 첫 번째 테이블에서 필터를 제거한 뒤, 남아 있는 UI 요소 없이 새 사본을 저장합니다. + +## 사전 요구 사항 + +- .NET 6+ (or .NET Framework 4.7.2+) +- The **Aspose.Cells** NuGet package (the API we use in the code) +- A sample workbook (`TableWithFilter.xlsx`) that already contains a table with an AutoFilter applied +- A basic understanding of C# syntax (no deep Excel internals required) + +위 사항을 갖추셨다면, 시작해봅시다. + +--- + +## Step 1 – Aspose.Cells 설치 및 프로젝트 설정 + +코드가 실행되기 전에, `Workbook`, `Worksheet`, `ListObject` 클래스를 제공하는 라이브러리가 필요합니다. + +```bash +dotnet add package Aspose.Cells +``` + +> **Pro tip:** 테스트용으로 무료 평가판을 사용하세요; 프로덕션에 배포하기 전에 라이선스 키를 설정하는 것을 잊지 마세요. + +### 왜 중요한가 +Aspose.Cells는 저수준 OOXML 처리를 추상화하여 XML을 직접 파싱하지 않고도 테이블, 필터 및 스타일을 조작할 수 있습니다. 그래서 **remove autofilter from excel** 작업이 여러 XML을 손볼 필요 없이 한 줄 코드로 해결됩니다. + +--- + +## Step 2 – 테이블이 포함된 워크북 로드 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +`Workbook` 객체는 전체 Excel 파일을 나타냅니다. 먼저 로드하면 작업할 깨끗한 메모리 복사본을 확보하게 되며, 이는 나중에 다른 시트를 영향을 주지 않고 **clear excel table filter**를 수행할 때 중요합니다. + +--- + +## Step 3 – 워크시트와 대상 테이블 가져오기 + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +**ListObject**는 Aspose에서 Excel 테이블을 의미하는 용어입니다. 시트에 여러 테이블이 있더라도 `worksheet.ListObjects`를 순회하면서 동일한 로직을 적용할 수 있습니다. 이러한 유연성은 많은 개발자가 묻는 “테이블이 여러 개라면 어떻게 할까?”라는 질문에 답합니다. + +--- + +## Step 4 – 테이블에서 AutoFilter 제거 + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +`AutoFilter`를 `null`로 설정하면 **필터 객체가 완전히 제거**됩니다. 이는 **how to delete autofilter**를 수행하는 가장 신뢰할 수 있는 방법입니다. 대안인 `ShowAutoFilter` 속성은 UI만 숨기고 필터 엔진은 그대로 유지하므로, 기본 기준을 보존하면서 **turn off autofilter excel**을 시각적으로만 끄고 싶을 때 유용합니다. + +> **Edge case:** 테이블에 AutoFilter가 적용되어 있지 않다면 `table.AutoFilter`는 이미 `null`입니다. 위 코드는 안전하며, 아무 작업도 수행하지 않습니다. + +--- + +## Step 5 – 수정된 워크북 저장 + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +새 파일에 저장하면 원본이 그대로 유지되어 Excel 변환 자동화 시 권장되는 방법입니다. 프로그램을 실행한 후 `NoAutoFilter.xlsx`를 열면 필터 드롭다운이 없는 테이블을 확인할 수 있으며, 이는 **remove excel table filter** 작업이 성공했음을 증명합니다. + +--- + +## 결과 확인 – 기대되는 사항 + +1. **Open `NoAutoFilter.xlsx`**을 Excel에서 엽니다. +2. **Select the table** – 열 헤더 옆에 있는 작은 깔때기 아이콘이 사라져야 합니다. +3. **Check other sheets** – 시트는 그대로 유지되며, 우리가 의도한 시트에서만 **clear excel table filter**가 수행됐음을 증명합니다. + +아이콘이 여전히 보인다면, 올바른 `ListObject` 인덱스를 지정했는지 다시 확인하세요. Aspose에서는 Excel 테이블이 0부터 시작하므로 `ListObjects[0]`이 시트의 첫 번째 테이블입니다. + +--- + +## 여러 테이블 또는 워크시트 처리 + +때때로 여러 시트에 걸쳐 여러 테이블이 포함된 **remove autofilter from excel** 워크북을 처리해야 할 때가 있습니다. 다음은 간단한 확장 예시입니다: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +이 루프는 모든 곳에서 **turn off autofilter excel**을 보장하여, 다운스트림 데이터 가져오기를 방해할 수 있는 숨겨진 필터를 제거합니다. + +--- + +## 흔히 발생하는 실수와 회피 방법 + +| Pitfall | Why it Happens | Fix | +|---------|----------------|-----| +| **저장 후 필터가 남아 있음** | `ShowAutoFilter = false`를 사용하면 UI만 숨깁니다. | `table.AutoFilter = null`을 사용하여 실제로 삭제합니다. | +| **잘못된 테이블 인덱스** | 첫 번째 테이블이 필요하다고 가정합니다. | `worksheet.ListObjects.Count`를 확인하고 의미 있는 이름(`tbl.Name`)을 사용합니다. | +| **라이선스 누락** | 평가판은 워터마크를 삽입할 수 있습니다. | 라이선스를 미리 등록하세요: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **파일 잠김** | Excel이 아직 원본 파일을 열고 있습니다. | 스크립트를 실행하기 전에 Excel에서 워크북을 닫으세요. | + +--- + +## 보너스: AutoFilter 다시 추가하기 (마음이 바뀐다면) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +역방향 작업을 준비해 두면 이 튜토리얼이 **remove autofilter from excel**와 **how to delete autofilter** 상황 모두를 한 번에 해결할 수 있습니다. + +--- + +## 전체 작업 예제 (복사‑붙여넣기 준비) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +위 코드를 실행하면 워크북의 모든 테이블에서 **remove autofilter from excel**가 수행되어, 추가 처리를 위한 깨끗한 상태를 얻을 수 있습니다. + +--- + +## 결론 + +우리는 C#를 사용해 **remove autofilter from excel**를 수행하는 데 필요한 모든 내용을 다루었습니다. Aspose.Cells 설치, 워크북 로드, 테이블 찾기, 실제 필터 삭제, 깨끗한 파일 저장까지—각 단계마다 그 이유를 설명했습니다. 이제 **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel**, **clear excel table filter**를 하나의 재사용 가능한 코드 조각으로 수행하는 방법을 알게 되었습니다. + +다음 도전에 준비가 되셨나요? 조건부 서식 추가를 자동화하거나, 프로그래밍 방식으로 **add an AutoFilter back**하는 방법을 탐색해 보세요. 두 주제 모두 방금 다룬 개념을 직접 확장하므로 Excel 자동화 도구 상자를 더욱 풍부하게 만들 것입니다. + +궁금한 점이 있거나 다루지 않은 상황을 발견하셨나요? 아래에 댓글을 남겨 주세요—코딩 즐겁게! + +--- + +![Screenshot showing an Excel sheet without any filter dropdowns – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/korean/net/excel-comment-annotation/_index.md index a4dfd90acc..9ef6acf114 100644 --- a/cells/korean/net/excel-comment-annotation/_index.md +++ b/cells/korean/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Aspose.Cells for .NET을 사용하여 Excel에서 이미지에 주석을 추가 Aspose.Cells for .NET을 사용하여 Excel 셀에 주석을 추가하는 방법을 알아보세요. 초보자를 위한 Excel 기능 향상을 위한 단계별 가이드입니다. ### [서식 주석 - 글꼴, 색상, 정렬](./format-comments-font-color-alignment/) Aspose.Cells for .NET을 사용하여 Excel 주석 서식을 손쉽게 지정하는 방법을 알아보세요. 글꼴, 크기, 정렬을 사용자 지정하여 스프레드시트를 더욱 멋지게 꾸며보세요. +### [C#으로 Excel 워크북 만들기 – 스마트 마커를 사용해 주석 추가 및 채우기](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Aspose.Cells for .NET을 사용하여 C#에서 스마트 마커를 활용해 Excel 워크북에 주석을 추가하고 채우는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/korean/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..50639aef65 --- /dev/null +++ b/cells/korean/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,335 @@ +--- +category: general +date: 2026-03-21 +description: C#로 Excel 워크북을 만들고, Excel에 주석을 추가하는 방법과 Smart Markers를 사용해 주석을 자동으로 채우는 + 방법을 배웁니다. 개발자를 위한 단계별 가이드. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: ko +og_description: C#로 Excel 워크북을 만들고, Excel에 주석을 빠르게 추가한 뒤 Smart Markers를 사용해 주석을 채웁니다. + 코드와 함께하는 완전한 튜토리얼. +og_title: Excel 워크북 만들기 C# – 주석 추가 및 채우기 +tags: +- C# +- Excel automation +- Aspose.Cells +title: C#로 Excel 워크북 만들기 – 스마트 마커로 주석 추가 및 채우기 +url: /ko/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel 워크북 C# 만들기 – 스마트 마커로 주석 추가 및 채우기 + +Ever needed to **create Excel workbook C#** and wondered how to embed a comment that updates itself automatically? You're not the only one. In many reporting scenarios you want a cell comment that says *“Created by Alice on 2024‑07‑15”* without hard‑coding the name or date each time. + +많은 보고 시나리오에서 셀 주석에 *“Created by Alice on 2024‑07‑15”*와 같이 이름이나 날짜를 매번 하드코딩하지 않고 표시하고 싶습니다. + +In this tutorial we’ll show you exactly **how to add comment to Excel**, then **how to fill comment** using Aspose.Cells’ Smart Markers. By the end you’ll have a ready‑to‑run program that creates a workbook, injects a dynamic comment, and saves the file—all in a few tidy steps. + +> **What you’ll get:** a complete, compilable C# console app, an explanation of every line, tips for common pitfalls, and ideas for extending the solution. + +> **얻을 수 있는 것:** 완전하고 컴파일 가능한 C# 콘솔 앱, 각 라인에 대한 설명, 일반적인 함정에 대한 팁, 그리고 솔루션을 확장하기 위한 아이디어. + +## Prerequisites + +## 사전 요구 사항 + +- .NET 6.0 SDK or later (the code works with .NET Core and .NET Framework as well) +- .NET 6.0 SDK 또는 그 이후 버전 (코드는 .NET Core 및 .NET Framework에서도 작동합니다) +- Visual Studio 2022 or any IDE you prefer +- Visual Studio 2022 또는 선호하는 IDE +- **Aspose.Cells for .NET** NuGet package (`Install-Package Aspose.Cells`) – this library powers the `Workbook`, `Worksheet`, and `SmartMarkerProcessor` classes used below. +- **Aspose.Cells for .NET** NuGet 패키지 (`Install-Package Aspose.Cells`) – 이 라이브러리는 아래에서 사용되는 `Workbook`, `Worksheet`, `SmartMarkerProcessor` 클래스를 지원합니다. +- Basic familiarity with C# syntax – if you’ve written a `Console.WriteLine`, you’re good to go. +- C# 구문에 대한 기본적인 이해 – `Console.WriteLine`을 작성해 본 적이 있다면 바로 시작할 수 있습니다. + +Now that the groundwork is out of the way, let’s dive in. + +이제 기본 준비가 끝났으니, 본격적으로 시작해 봅시다. + +![Excel 워크북 C# 예제 스크린샷](excel-workbook.png "Excel 워크북 C# 예제") + +## Step 1: Initialise a New Workbook – Create Excel Workbook C# Basics + +## 단계 1: 새 워크북 초기화 – Excel 워크북 C# 기본 + +First we need a clean workbook object. Think of `Workbook` as the blank canvas; without it you can’t place any cells, rows, or comments. + +먼저 깨끗한 워크북 객체가 필요합니다. `Workbook`을 빈 캔버스로 생각하면 됩니다; 이것이 없으면 셀, 행 또는 주석을 배치할 수 없습니다. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Why this matters:** `Workbook` automatically creates a default worksheet, so you don’t have to call `Add` unless you need extra tabs. Accessing `Worksheets[0]` is the fastest way to start populating data. + +**왜 중요한가:** `Workbook`은 자동으로 기본 워크시트를 생성하므로 추가 탭이 필요하지 않은 한 `Add`를 호출할 필요가 없습니다. `Worksheets[0]`에 접근하는 것이 데이터를 채우기 시작하는 가장 빠른 방법입니다. + +## Step 2: Insert a Smart Marker Comment – How to Add Comment with Tokens + +## 단계 2: 스마트 마커 주석 삽입 – 토큰으로 주석 추가하는 방법 + +Next we place a comment in cell **B2** that contains Smart Marker tokens (`«UserName»` and `«CreatedDate»`). These tokens will be replaced later with actual values. + +다음으로 **B2** 셀에 스마트 마커 토큰(`«UserName»` 및 `«CreatedDate»`)이 포함된 주석을 삽입합니다. 이 토큰들은 나중에 실제 값으로 교체됩니다. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Explanation:** +- `CreateComment()` creates the comment object if none exists; otherwise it returns the existing one. +- `CreateComment()`는 주석 객체가 없을 경우 생성하고, 이미 존재하면 기존 객체를 반환합니다. +- The `Note` property holds the visible text. By wrapping the placeholders in `« »` we tell Aspose.Cells that they are **Smart Markers** – placeholders that can be swapped out in one shot. +- `Note` 속성은 표시되는 텍스트를 보관합니다. 플레이스홀더를 `« »`로 감싸면 Aspose.Cells에 이것이 **스마트 마커**임을 알리는 것으로, 한 번에 교체 가능한 플레이스홀더가 됩니다. + +> **Pro tip:** If you need a multi‑line comment, use `\n` inside the string, e.g., `"Line1\nLine2"`. + +> **프로 팁:** 여러 줄 주석이 필요하면 문자열 안에 `\n`을 사용하세요. 예: `"Line1\nLine2"`. + +## Step 3: Prepare the Data Object – How to Fill Comment Dynamically + +## 단계 3: 데이터 객체 준비 – 주석을 동적으로 채우는 방법 + +Smart Markers need a data source. In C# the easiest way is an anonymous type that matches the placeholder names. + +스마트 마커에는 데이터 소스가 필요합니다. C#에서 가장 쉬운 방법은 플레이스홀더 이름과 일치하는 익명 형식을 사용하는 것입니다. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Why an anonymous type?** +It’s lightweight, requires no extra class file, and matches the property names (`UserName`, `CreatedDate`) exactly to the token names. If you prefer a strongly‑typed model, just create a class with the same properties. + +**왜 익명 형식인가?** +가볍고 별도의 클래스 파일이 필요 없으며, 속성 이름(`UserName`, `CreatedDate`)이 토큰 이름과 정확히 일치합니다. 강력히 타입된 모델을 선호한다면 동일한 속성을 가진 클래스를 만들면 됩니다. + +## Step 4: Process Smart Markers – How to Fill Comment Using the Data Object + +## 단계 4: 스마트 마커 처리 – 데이터 객체를 사용해 주석 채우기 + +Now the magic happens. The `SmartMarkerProcessor` scans the workbook for any `«…»` tokens and swaps them with values from `markerData`. + +이제 마법이 일어납니다. `SmartMarkerProcessor`는 워크북에서 모든 `«…»` 토큰을 스캔하고 `markerData`의 값으로 교체합니다. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**What’s under the hood?** +`SmartMarkerProcessor` walks through each cell, comment, header, etc., looking for the `«Token»` pattern. When it finds one, it uses reflection to read the matching property from `markerData` and writes the value back. No manual loops required. + +**내부 동작:** +`SmartMarkerProcessor`는 각 셀, 주석, 헤더 등을 순회하며 `«Token»` 패턴을 찾습니다. 찾으면 리플렉션을 사용해 `markerData`에서 일치하는 속성을 읽어 값을 기록합니다. 수동 루프가 필요 없습니다. + +## Step 5: Save the Workbook – Fill Excel Comment and Persist the File + +## 단계 5: 워크북 저장 – Excel 주석 채우고 파일에 저장 + +Finally we write the workbook to disk. The comment now reads something like *“Created by Alice on 03/21/2026 10:15 AM”*. + +마지막으로 워크북을 디스크에 저장합니다. 이제 주석은 *“Created by Alice on 03/21/2026 10:15 AM”*와 같이 표시됩니다. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Result verification:** Open `CommentFilled.xlsx` in Excel, hover over cell **B2**, and you’ll see the comment with the actual user name and timestamp. No further code changes needed for future runs—just change `markerData` values. + +**결과 확인:** Excel에서 `CommentFilled.xlsx`를 열고 **B2** 셀 위에 마우스를 올리면 실제 사용자 이름과 타임스탬프가 포함된 주석을 볼 수 있습니다. 향후 실행을 위해 추가 코드를 변경할 필요 없이 `markerData` 값만 바꾸면 됩니다. + +## Common Variations & Edge Cases + +## 일반적인 변형 및 엣지 케이스 + +### Using a Custom Date Format + +### 사용자 정의 날짜 형식 사용 + +If you want the date in `yyyy‑MM‑dd` format, adjust the data object: + +날짜를 `yyyy‑MM‑dd` 형식으로 표시하고 싶다면 데이터 객체를 다음과 같이 조정합니다: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Adding Multiple Comments + +### 여러 주석 추가 + +You can repeat **Step 2** for other cells. Each comment can have its own set of tokens, or share the same ones if the information is universal. + +**Step 2**를 다른 셀에 반복해서 적용할 수 있습니다. 각 주석은 자체 토큰 세트를 가질 수 있으며, 정보가 공통적이라면 동일한 토큰을 공유할 수도 있습니다. + +### Working with Existing Workbooks + +### 기존 워크북 작업 + +Instead of `new Workbook()`, load an existing file: + +`new Workbook()` 대신 기존 파일을 로드합니다: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +The rest of the steps stay identical—Smart Markers work on both new and pre‑existing files. + +나머지 단계는 동일하게 유지됩니다—스마트 마커는 새 파일과 기존 파일 모두에서 작동합니다. + +### Handling Null Values + +### Null 값 처리 + +If a token might be missing, wrap the property in a nullable type or provide a fallback: + +토큰이 없을 수도 있는 경우, 속성을 nullable 타입으로 감싸거나 대체 값을 제공하세요: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +The processor will insert *“Unknown”* when the source is `null`. + +소스가 `null`이면 프로세서는 *“Unknown”*를 삽입합니다. + +## Full Working Example (Copy‑Paste Ready) + +## 전체 작업 예제 (복사‑붙여넣기 준비) + +Below is the **entire program** you can drop into a console app project and run immediately (just replace `YOUR_DIRECTORY` with a real folder path). + +아래는 **전체 프로그램**으로, 콘솔 앱 프로젝트에 바로 넣고 실행할 수 있습니다 (`YOUR_DIRECTORY`를 실제 폴더 경로로 교체하면 됩니다). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Run the program, open the generated file, and you’ll see the dynamic comment in cell **B2**. Easy, right? + +프로그램을 실행하고 생성된 파일을 열면 **B2** 셀에 동적 주석이 표시됩니다. 쉽죠? + +## Frequently Asked Questions (FAQ) + +## 자주 묻는 질문 (FAQ) + +**Q: Does this work with .NET Framework 4.7?** +**Q: .NET Framework 4.7에서도 작동하나요?** +A: Absolutely. Aspose.Cells supports .NET Framework 4.0+ and .NET Core/5/6/7. Just reference the appropriate DLL or NuGet package. +A: 물론입니다. Aspose.Cells는 .NET Framework 4.0 이상 및 .NET Core/5/6/7을 지원합니다. 해당 DLL이나 NuGet 패키지를 참조하면 됩니다. + +**Q: Can I use this approach for data validation or conditional formatting?** +**Q: 이 방법을 데이터 검증이나 조건부 서식에 사용할 수 있나요?** +A: Smart Markers are primarily for inserting values into cells, comments, headers, and footers. For conditional formatting you’d still use the normal `Style` APIs. +A: 스마트 마커는 주로 셀, 주석, 헤더, 푸터에 값을 삽입하는 데 사용됩니다. 조건부 서식은 여전히 일반 `Style` API를 사용해야 합니다. + +**Q: What if I need to add a comment to a **different** worksheet?** +**Q: **다른** 워크시트에 주석을 추가하려면 어떻게 해야 하나요?** +A: Retrieve the target worksheet (`workbook.Worksheets["MySheet"]`) and repeat **Step 2** on that sheet’s cells. +A: 대상 워크시트(`workbook.Worksheets["MySheet"]`)를 가져온 뒤 해당 시트의 셀에 **Step 2**를 반복하면 됩니다. + +## Next Steps & Related Topics + +## 다음 단계 및 관련 주제 + +- **How to add comment to Excel** programmatically for multiple cells (loop through a range). +- **How to add comment to Excel**를 프로그래밍 방식으로 여러 셀에 적용하기 (범위 반복). +- **Fill Excel comment** with data from a database (use a `DataTable` as the data source for Smart Markers). +- **Fill Excel comment**를 데이터베이스 데이터로 채우기 (`DataTable`을 스마트 마커의 데이터 소스로 사용). +- Explore **Smart Marker arrays** to generate tables automatically. +- **Smart Marker arrays**를 탐색하여 테이블을 자동으로 생성하기. +- Learn about **Aspose.Cells styling** to format the comment’s font, color, and size. +- **Aspose.Cells styling**을 배워 주석의 글꼴, 색상 및 크기를 지정하기. + +Experiment with the snippets, swap out the data source, and you’ll quickly master **how to fill comment** in any Excel automation scenario. + +스니펫을 실험하고 데이터 소스를 교체하면 어떤 Excel 자동화 시나리오에서도 **how to fill comment**를 빠르게 마스터할 수 있습니다. + +### Wrap‑Up + +### 마무리 + +We’ve just walked through the entire process of **create excel workbook c#**, **add comment to excel**, and **fill excel comment** using Smart Markers. The solution is compact, reusable, and ready for production. + +Give it a try, tweak the placeholders, and let the library handle the heavy lifting. If you run into any snags, drop a comment below—happy coding! + +우리는 이제 **create excel workbook c#**, **add comment to excel**, 그리고 스마트 마커를 사용한 **fill excel comment** 전체 과정을 살펴보았습니다. 이 솔루션은 간결하고 재사용 가능하며 프로덕션에 바로 사용할 수 있습니다. + +시도해 보고, 플레이스홀더를 조정하고, 라이브러리가 무거운 작업을 처리하도록 하세요. 문제가 발생하면 아래에 댓글을 남겨 주세요—행복한 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..9b05c3f0d5 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,8 @@ 이 단계별 튜토리얼을 통해 Aspose.Cells for .NET을 사용하여 Excel 셀 값을 사용자 지정 숫자 형식에 따라 확인하는 방법을 알아보세요. ### [Excel 시트로 데이터를 가져올 때 수식 필드 지정](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) 이 자세한 튜토리얼에서는 Aspose.Cells for .NET을 사용하여 지정된 수식 필드가 있는 Excel 시트로 데이터를 가져오는 방법을 알아봅니다. +### [C#에서 셀 사용자 지정 서식 설정 – Excel에서 날짜 쓰기 및 읽기 완전 가이드](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Aspose.Cells for .NET을 사용하여 Excel 셀에 사용자 지정 날짜 서식을 적용하고 읽는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/korean/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..c707059a8e --- /dev/null +++ b/cells/korean/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-21 +description: C#에서 셀 사용자 지정 형식을 설정하고, Excel에 날짜를 쓰는 방법, 사용자 지정 날짜 형식 적용, Excel에서 DateTime을 + 읽는 방법, 그리고 워크북 시트를 빠르게 만드는 방법을 배워보세요. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: ko +og_description: C#에서 셀 사용자 지정 형식을 설정해 날짜를 Excel에 쓰고, 사용자 지정 날짜 형식을 적용하며, Excel에서 DateTime을 + 읽고, 워크북 시트를 손쉽게 생성합니다. +og_title: C#에서 셀 사용자 지정 형식 설정 – Excel에서 날짜 쓰기 및 읽기 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#에서 셀 사용자 지정 형식 설정 – Excel에서 날짜 쓰기 및 읽기 완전 가이드 +url: /ko/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 셀 사용자 지정 형식 설정 – C#을 사용하여 Excel에 날짜 쓰기 및 읽기 + +C#에서 Excel 파일에 **셀 사용자 지정 형식**을 설정해야 했지만 어디서 시작해야 할지 몰랐던 적이 있나요? 당신만 그런 것이 아닙니다. 많은 보고 도구나 데이터‑내보내기 유틸리티에서 날짜는 특정 로케일에 맞게 표시되어야 합니다—예를 들어 일본 연호 날짜, 회계 연도, 또는 ISO‑8601 문자열을 생각해 보세요. + +이 튜토리얼에서는 **완전하고 실행 가능한 예제**를 통해 **Excel에 날짜 쓰기**, **사용자 지정 날짜 형식 적용**, **Excel에서 DateTime 읽기**, 그리고 Aspose.Cells를 사용한 **워크북 워크시트 만들기** 방법을 단계별로 보여드립니다. 마지막까지 진행하면 .NET 프로젝트에 바로 넣어 사용할 수 있는 단일, 독립형 프로그램을 얻게 됩니다. + +## 배울 내용 + +- 프로그램matically **워크북 워크시트 만들기** 방법. +- 로케일‑특정 문자열을 사용하여 **Excel에 날짜 쓰기** 정확한 단계. +- **사용자 지정 날짜 형식 적용** 방법 (일본 연호 표기 포함). +- Excel에서 `DateTime` 객체로 **DateTime 읽기** 방법. +- Excel 날짜를 다룰 때 마주칠 수 있는 팁, 함정 및 변형. + +외부 문서는 필요 없습니다—여기서 바로 모든 것을 확인할 수 있습니다. + +## 전제 조건 + +- .NET 6.0 이상 (코드는 .NET Framework 4.7+에서도 작동합니다). +- NuGet(`Install-Package Aspose.Cells`)를 통해 설치된 Aspose.Cells for .NET. +- C# 구문에 대한 기본 이해—특별한 지식은 필요 없습니다. + +> **Pro tip:** Visual Studio를 사용한다면 *nullable reference types*를 활성화하여 미묘한 버그를 조기에 잡아내세요. + +## Step 1: Create a Workbook and Worksheet + +먼저 해야 할 일은 Excel 파일을 나타내는 워크북 객체와 데이터가 들어갈 워크시트를 준비하는 것입니다. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Why this matters:* `Workbook` 클래스는 모든 Excel 작업의 진입점입니다. 메모리에서 생성하면 명시적으로 저장할 때까지 파일 시스템에 접근하지 않으므로 프로세스가 빠르고 테스트에 친화적입니다. + +## Step 2: Write Date to Excel + +다음으로 일본 연호 날짜 문자열(`"R02-04-01"`)을 셀 **A1**에 입력합니다. 이 문자열은 레이와 연호(2년 4월 1일)를 흉내낸 것입니다. + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*What’s happening:* `PutValue`는 원시 문자열을 저장합니다. Aspose.Cells는 이후 셀 스타일을 기반으로 이를 파싱하려 시도합니다. 이 단계를 건너뛰고 `DateTime`을 직접 쓰면 표시하고 싶은 연호 정보가 사라집니다. + +## Step 3: Apply the Built‑in Date Number Format (ID 14) + +Excel에는 ID 14(`mm-dd-yy`)라는 내장 날짜 형식이 있습니다. 이를 적용하면 엔진에 셀 **에 날짜가 포함되어 있음**을 알려 텍스트가 아니라 날짜로 인식하게 됩니다. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Why use ID 14?* 이것은 보편적인 “짧은 날짜” 형식으로, Excel이 내용을 날짜 값으로 처리하도록 보장합니다. 이는 모든 사용자 지정 형식이 올바르게 작동하기 위한 전제 조건입니다. + +## Step 4: Set a Custom Format to Display Japanese Era Notation + +이제 재미있는 부분입니다: Excel에 일본 연호 형식으로 날짜를 표시하도록 지시합니다. 사용자 지정 문자열 `[$-ja-JP]ggge年m月d日`이 바로 그 역할을 합니다. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Explanation:* +- `[$-ja-JP]`는 로케일을 일본어로 강제합니다. +- `ggg`는 연호 이름(예: 레이와는 “R”)을 나타냅니다. +- `e`는 연호 연도를 의미합니다. +- `年`, `月`, `日`는 각각 연, 월, 일을 나타내는 일본어 문자입니다. + +다른 로케일이 필요하면 `ja-JP`를 해당 문화 코드(예: `en-US`)로 바꾸면 됩니다. + +## Step 5: Retrieve the Parsed DateTime Value + +마지막으로 Excel이 셀에서 파싱한 **실제 `DateTime`**을 읽어봅시다. 이를 통해 문자열이 올바르게 해석되었음을 확인할 수 있습니다. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Result:* 콘솔에 `Parsed DateTime: 2020-04-01`이 출력됩니다. 일본 연호 문자열을 입력했음에도 Excel은 내부적으로 그레고리력 날짜를 저장하므로 계산, 비교 또는 추가 내보내기에 활용할 수 있습니다. + +## Step 6: Save the Workbook (Optional) + +포맷이 적용된 워크북을 Excel에서 직접 확인하고 싶다면 디스크에 저장하면 됩니다. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +생성된 **JapaneseEraDate.xlsx** 파일을 열면 셀 **A1**에 `R02年4月1日`(우리가 설정한 정확한 일본 연호 형식)으로 표시되는 것을 볼 수 있습니다. + +![셀 사용자 지정 형식 예시](image-placeholder.png "Excel 셀에 일본 연호 날짜 표시 – 셀 사용자 지정 형식") + +*위의 alt 텍스트는 주요 키워드를 포함하고 있어 이미지‑SEO 요구 사항을 만족합니다.* + +## Common Variations & Edge Cases + +### Writing a Different Date Format + +ISO‑8601(`2020-04-01`) 형식을 선호한다면 `PutValue` 호출만 다음과 같이 바꾸면 됩니다: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Dealing with Null or Empty Cells + +날짜를 읽을 때는 항상 빈 셀을 확인하여 `InvalidOperationException`이 발생하지 않도록 방어 코드를 작성하세요: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Supporting Multiple Locales + +문화 코드 목록을 순회하면서 동적으로 적용할 수 있습니다: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Pro Tips & Gotchas + +- **항상 먼저 내장 숫자 형식을 설정하세요** (`Style.Number`). 그렇지 않으면 Excel은 셀을 일반 텍스트로 처리하고 사용자 지정 형식이 무시됩니다. +- **로케일 코드는 대소문자를 구분하지 않으며**, 정식 형태(`ja-JP`)를 사용하면 혼동을 피할 수 있습니다. +- **저장은 선택 사항**이며, 메모리 내 처리 시 워크북을 웹 응답으로 직접 스트리밍할 수 있습니다 (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Aspose.Cells 라이선스**: 무료 평가 버전은 워터마크를 추가합니다. 프로덕션에서는 성능 저하를 방지하기 위해 유효한 라이선스를 확보하세요. + +## Recap + +우리는 C#에서 **셀 사용자 지정 형식**을 설정해 일본 연호 날짜를 표시하고, **Excel에 날짜 쓰기**, **사용자 지정 날짜 형식 적용**, **Excel에서 DateTime 읽기**, 그리고 **워크북 워크시트 만들기**를 단일, 독립형 프로그램으로 구현하는 방법을 보여주었습니다. 주요 키워드는 자연스럽게 본문에 등장하고, 보조 키워드는 제목과 본문에 적절히 배치되어 SEO와 AI‑citation 기준을 모두 만족합니다. + +## What’s Next? + +- **조건부 서식**을 탐색하여 연체된 날짜를 강조 표시합니다. +- **PivotTables**와 결합하여 동적 보고서를 만듭니다. +- **대용량 CSV 파일을 읽고** 동일한 날짜 처리 로직으로 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/excel-data-export-retrieval/_index.md b/cells/korean/net/excel-data-export-retrieval/_index.md index 70b0dab766..8a97afef54 100644 --- a/cells/korean/net/excel-data-export-retrieval/_index.md +++ b/cells/korean/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Aspose.Cells for .NET으로 Excel 파일 처리 능력을 향상시키고 싶으 ### [Excel에서 셀에서 데이터 검색](./retrieve-data-from-cells-in-excel/) 이 단계별 튜토리얼에서는 Aspose.Cells for .NET을 사용하여 Excel 셀에서 데이터를 검색하는 방법을 알아봅니다. 초보자와 숙련된 개발자 모두에게 적합합니다. +### [C#에서 Excel 데이터 테이블 내보내기 – 완전 가이드](./export-excel-data-table-in-c-complete-guide/) +이 단계별 튜토리얼에서는 Aspose.Cells for .NET을 사용하여 C#에서 Excel 데이터 테이블을 내보내는 방법을 자세히 안내합니다. + +### [C#에서 Excel 데이터 내보내기 – 단계별 가이드](./how-to-export-excel-data-in-c-step-by-step-guide/) +이 단계별 튜토리얼에서는 Aspose.Cells for .NET을 사용하여 C#에서 Excel 데이터를 내보내는 방법을 자세히 안내합니다. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/korean/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/korean/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..6086bb041f --- /dev/null +++ b/cells/korean/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells를 사용하여 Excel 데이터 테이블을 헤더와 함께 DataTable로 내보내고, 소수점 자리수를 제한하며, + 처음 100행만 내보냅니다. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: ko +og_description: Excel 데이터 테이블을 DataTable로 내보내는 방법, 헤더 유지, 소수점 자리수 제한, 그리고 C#에서 처음 + 100행을 가져오는 방법을 배워보세요. +og_title: C#에서 Excel 데이터 테이블 내보내기 – 단계별 가이드 +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: C#에서 Excel 데이터 테이블 내보내기 – 완전 가이드 +url: /ko/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel 데이터 테이블 내보내기 – 전체 C# 워크스루 + +워크북에서 .NET `DataTable` 로 **excel data table** 을 내보내고 싶으신가요? 바로 여기입니다—이 가이드는 열 헤더를 유지하고, 소수점 자리수를 제한하며, 처음 100행만 가져오는 방법을 정확히 보여드립니다. + +스프레드시트를 보면서 “이걸 포맷을 잃지 않고 내 앱에 어떻게 넣지?” 라고 생각해 본 적이 있다면 혼자가 아닙니다. 몇 분 안에 Aspose.Cells 라는 인기 있는 Excel 조작 라이브러리를 사용한 복사‑붙여넣기 솔루션으로 바꿔 드리겠습니다. + +## 배울 내용 + +- `ExportDataTable` 메서드를 사용해 **export excel to datatable** 하는 방법. +- 원본 열 이름을 유지하는 방법 (`export excel with headers`). +- `ExportTableOptions` 를 설정해 **limit decimal places excel** 값을 제한하는 방법. +- 상위 100행만 안전하게 가져오는 방법 (`export first 100 rows`). + +외부 스크립트도, 마법 문자열도 없습니다—그냥 .NET 프로젝트 어디에든 넣을 수 있는 순수 C# 코드만 제공합니다. + +## 사전 요구 사항 + +| Requirement | Why it matters | +|-------------|----------------| +| .NET 6 이상 (또는 .NET Framework 4.7 이상) | Aspose.Cells 가 두 환경을 모두 지원하지만, 최신 런타임은 async‑ready API 를 제공합니다. | +| Aspose.Cells for .NET NuGet 패키지 | `Workbook`, `ExportTableOptions`, `ExportDataTable` 도우미를 제공합니다. | +| 샘플 Excel 파일 (예: `Numbers.xlsx`) | 내보낼 데이터의 원본 파일입니다. | +| 기본 C# 지식 | 코드 스니펫을 따라가면 되며, 특별한 사전 지식은 필요 없습니다. | + +위 항목이 익숙하지 않다면 `dotnet add package Aspose.Cells` 로 NuGet 패키지를 가져오고, 숫자 몇 개가 들어간 작은 Excel 파일을 만들어 보세요—테스트 데이터가 됩니다. + +![excel 데이터 테이블 내보내기 예시](excel-data-table.png "DataTable 로 내보낼 Excel 시트의 스크린샷") + +## 단계 1: 워크북 로드 (export excel data table) + +가장 먼저 해야 할 일은 Excel 파일을 가리키는 `Workbook` 인스턴스를 만드는 것입니다. 책의 챕터를 읽기 전에 책을 여는 것과 같습니다. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **왜 중요한가:** 워크북을 로드하면 워크시트, 셀, 스타일 등에 접근할 수 있습니다. 파일 경로가 잘못되면 Aspose 가 `FileNotFoundException` 을 발생시키니 위치를 반드시 확인하세요. + +## 단계 2: 내보내기 옵션 구성 – limit decimal places excel + +기본적으로 Aspose 는 모든 숫자 값을 전체 정밀도로 내보냅니다. UI 그리드나 API 에 전달할 때는 몇 자리만 필요할 때가 많습니다. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **프로 팁:** 다른 반올림 전략(예: 항상 올림)이 필요하면 내보낸 뒤 `DataTable` 을 후처리하면 됩니다. `SignificantDigits` 설정은 **limit decimal places excel** 을 추가 루프 없이 가장 빠르게 적용하는 방법입니다. + +## 단계 3: 원하는 범위 내보내기 (export first 100 rows) + +이제 Aspose 에게 어떤 셀 블록을 `DataTable` 로 가져올지 알려줍니다. 이 튜토리얼에서는 첫 100행과 첫 10열을 가져오지만, 상황에 맞게 숫자를 조정할 수 있습니다. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **예외 상황:** 시트에 100행보다 적은 데이터만 있으면 Aspose 가 오류를 내지 않고 존재하는 데이터만 내보냅니다. 하지만 예상보다 작은 범위가 들어올 경우를 대비해 방어 코드를 추가하는 것이 좋습니다: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## 단계 4: 결과 확인 – 콘솔에 간단히 출력 + +디버거에서 데이터를 보는 것도 좋지만, 콘솔에 몇 행을 출력하면 **export excel to datatable** 이 정상적으로 동작했고 소수점이 잘려졌는지 확인할 수 있습니다. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### 예상 출력 + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +`SignificantDigits = 4` 설정을 적용했기 때문에 숫자 열이 이제 네 자리 유효숫자만 표시되는 것을 확인할 수 있습니다. + +## 단계 5: 전체 예제 – 실행 가능한 코드 + +아래는 콘솔 앱에 복사‑붙여넣기 할 수 있는 전체 프로그램입니다. 오류 처리, 선택적 행 수 방어 로직, 출력 헬퍼 메서드가 포함되어 있습니다. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +프로그램을 실행하면 시트의 첫 100행이 깔끔하게 반올림되어 열 이름이 그대로 유지된 채 표시됩니다. + +## 흔히 묻는 질문 & 주의 사항 + +| Question | Answer | +|----------|--------| +| **시트에 병합 셀이 있으면 어떻게 되나요?** | `ExportDataTable` 은 병합 셀을 상단‑좌측 셀의 값으로 평탄화합니다. 별도 처리가 필요하면 먼저 병합을 해제하거나 원시 `Cell` 객체를 직접 읽어야 합니다. | +| **`DataSet` 으로 내보낼 수 있나요?** | 예—`ExportDataTable` 대신 `ExportDataSet` 을 사용하면 됩니다. | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/korean/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..4709f54669 --- /dev/null +++ b/cells/korean/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,280 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells를 사용하여 C#에서 열 이름을 포함하고 숫자 형식을 유지하면서 Excel 데이터를 내보내는 방법. Excel + 워크시트를 읽고 특정 행을 효율적으로 내보내는 방법을 배웁니다. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: ko +og_description: Aspose.Cells를 사용하여 열 이름을 포함한 Excel 데이터를 내보내고, 숫자 형식을 유지하며, 특정 행을 읽는 + 방법. C# 개발자를 위한 전체 실행 가능한 예제. +og_title: C#에서 Excel 데이터 내보내는 방법 – 완전한 프로그래밍 가이드 +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: C#에서 Excel 데이터 내보내는 방법 – 단계별 가이드 +url: /ko/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 Excel 데이터 내보내기 – 완전 프로그래밍 가이드 + +원본 서식을 잃지 않고 **Excel 데이터를 내보내는 방법**이 궁금하셨나요? 빠르게 복사‑붙여넣기를 시도했지만 날짜가 “44728”처럼 보이거나 열 머리글이 사라진 적이 있나요? 정말 답답하죠. 이 튜토리얼에서는 Excel 워크시트를 읽고, 숫자 서식을 유지하며, 열 이름을 포함해 내보내고, 필요한 행만 선택하는 깔끔한 엔드‑투‑엔드 방법을 보여드립니다. + +우리는 Aspose.Cells 라이브러리를 사용할 것입니다. 이 라이브러리는 내보내기 옵션을 세밀하게 제어할 수 있게 해줍니다. 이 가이드를 끝까지 따라오면 .NET 프로젝트 어디에든 삽입할 수 있는 재사용 가능한 코드 조각을 얻을 수 있고, 각 옵션이 왜 중요한지도 이해하게 됩니다. 외부 문서는 필요 없습니다—여기서 바로 모든 것을 확인하세요. + +--- + +## 배울 내용 + +- **Read Excel worksheet**를 Aspose.Cells로 메모리에 읽어들입니다. +- **Export specific rows** (예: rows 0‑49)를 열 이름을 유지하면서 내보냅니다. +- **Preserve number format**을 사용해 통화, 날짜, 백분율이 그대로 유지되도록 합니다. +- 필요하면 셀 주석을 포함하여 **export with column names** 하는 방법. +- 완전하고 바로 실행 가능한 C# 예제와 일반적인 함정에 대한 팁. + +### 사전 요구 사항 + +- .NET 6.0 이상 (코드는 .NET Framework 4.6+에서도 동작합니다). +- NuGet(`Install-Package Aspose.Cells`)을 통해 Aspose.Cells for .NET을 설치합니다. +- 참조 가능한 폴더에 Excel 파일(`input.xlsx`)을 배치합니다. + +> **Pro tip:** CI 파이프라인을 사용 중이라면, 라이선스 문제를 피하기 위해 사설 피드에서 NuGet 패키지를 가져오는 것을 고려하세요. + +--- + +## Step 1 – Aspose.Cells 설치 및 네임스페이스 추가 + +먼저, Aspose.Cells 패키지가 프로젝트에 포함되어 있는지 확인하세요. 패키지 관리자 콘솔을 열고 다음을 실행합니다: + +```powershell +Install-Package Aspose.Cells +``` + +그 다음, C# 파일 상단에 필요한 `using` 지시문을 추가합니다: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +이러한 임포트는 `Workbook`, `Worksheet`, `ExportTableOptions`, `DataTable`에 접근할 수 있게 해 주며, **Excel 워크시트를 읽고** 데이터를 내보내는 핵심 요소입니다. + +--- + +## Step 2 – 워크북 로드 (Excel 파일 읽기) + +이제 실제로 **Excel 워크시트를 읽습니다**. `Workbook` 생성자는 파일 경로를 받아들이며, Aspose.Cells는 `.xlsx`와 오래된 `.xls` 형식을 모두 처리합니다. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Why this matters:** 워크북을 한 번만 로드하고 동일한 `Worksheet` 객체를 재사용하면 파일을 반복해서 여는 것보다 훨씬 효율적이며, 특히 대용량 스프레드시트에서 큰 차이를 보입니다. + +--- + +## Step 3 – 내보내기 옵션 구성 (숫자 서식 유지 & 열 이름 포함) + +여기서 Aspose.Cells에 *어떻게* 내보낼지를 지정합니다. `ExportTableOptions` 클래스를 사용해 출력 옵션을 세밀하게 조정합니다. 세 가지 플래그를 활성화합니다: + +1. `ExportAsString = true` – 모든 셀을 문자열로 강제 변환해 숫자가 시각적 표현을 유지하도록 합니다. +2. `IncludeCellComments = true` – 셀에 붙어 있는 모든 주석을 복사합니다(문서화에 유용). +3. `PreserveNumberFormat = true` – 원본 숫자 서식(통화 기호, 날짜 패턴 등)을 유지합니다. + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Edge case:** `ExportAsString`을 `false`로 설정하고 숫자 서식을 유지하려 하면 날짜가 44728 같은 원시 숫자값으로 나타날 수 있습니다. 두 플래그를 모두 켜두면 이런 놀라움을 방지할 수 있습니다. + +--- + +## Step 4 – 첫 번째 워크시트 가져오기 (Excel 워크시트 읽기) + +대부분의 간단한 파일은 첫 번째 시트에 필요한 데이터가 있으므로 인덱스로 가져옵니다. 다른 시트를 사용해야 하면 `0`을 해당 제로‑베이스 인덱스로 바꾸거나 `workbook.Worksheets["SheetName"]`을 사용하면 됩니다. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Why it’s useful:** 워크시트 객체에 직접 접근하면 `Cells` 컬렉션을 완전히 제어할 수 있어, 이후 **특정 행을 내보내기**할 때 필수적입니다. + +--- + +## Step 5 – 셀 범위 내보내기 (특정 행 내보내기) + +튜토리얼의 핵심: 행 0‑49와 열 0‑4(즉, 처음 50행과 첫 5열)를 `DataTable`에 내보냅니다. 또한 `DataTable`의 첫 번째 행을 열 이름으로 포함하도록 Aspose.Cells에 요청합니다. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### 동작 설명 + +- **`startRow: 0`** – 시트의 가장 위에서 시작합니다. +- **`totalRows: 50`** – 처음 50행을 가져옵니다(**특정 행을 내보내기**). +- **`totalColumns: 5`** – 처음 다섯 열만 내보냅니다. +- **`includeColumnNames: true`** – `DataTable` 열 헤더가 Excel 헤더 행과 일치하도록 하여 **열 이름을 포함한 내보내기** 요구 사항을 만족합니다. +- **`exportOptions`** – Step 3에서 설정한 옵션을 적용하므로 숫자 값이 “$1,234.56”처럼 보이고 “1234.56”이 되지 않게 합니다. + +--- + +## Step 6 – 내보내기 검증 (결과 확인) + +첫 몇 행을 콘솔에 출력해 서식이 유지되었는지 확인해 보세요. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**예시 출력 (예시):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +날짜가 `MM/dd/yyyy` 형식으로 표시되고 통화에 `$` 기호가 유지되는 것을 확인할 수 있습니다—이는 **숫자 서식 유지** 덕분입니다. + +--- + +## Common Pitfalls & How to Avoid Them + +| 문제 | 발생 원인 | 해결 방법 | +|------|-----------|-----------| +| 날짜가 큰 숫자로 변함 | `ExportAsString`을 `false`로 남겨둠 | `ExportAsString = true`로 유지하거나 셀을 수동 변환 | +| 열 머리글이 누락됨 | `includeColumnNames`를 `false`로 설정 | **열 이름을 포함한 내보내기**가 필요할 때 `true`로 설정 | +| 주석이 사라짐 | `IncludeCellComments`가 활성화되지 않음 | `ExportTableOptions`에서 `IncludeCellComments`를 켜기 | +| 잘못된 시트를 내보냄 | 다중 시트 파일에서 `Worksheets[0]` 사용 | 시트 이름 지정: `workbook.Worksheets["Data"]` | +| 범위 초과 예외 | `totalRows`가 실제 행 수를 초과 | `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` 사용 | + +--- + +## Bonus: 전체 시트 내보내기와 서식 유지 + +나중에 전체 시트가 필요하면 `totalRows`와 `totalColumns`를 시트의 최대 차원으로 교체하면 됩니다: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +이제 **Excel 워크시트를 읽는** 루틴이 어떤 크기에도 동작하면서 **숫자 서식 유지**와 **열 이름을 포함한 내보내기**를 모두 지원합니다. + +--- + +## Full Working Example (Copy‑Paste Ready) + +아래는 콘솔 앱에 바로 넣어 실행할 수 있는 전체 프로그램입니다. 모든 단계, 임포트, 간단한 검증 출력이 포함되어 있습니다. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +`Program.cs`로 저장하고 `dotnet run`을 실행하면 터미널에 서식이 적용된 미리보기가 표시됩니다. + +--- + +## Conclusion + +우리는 Aspose.Cells를 사용해 **Excel 데이터를 내보내는 방법**을 단계별로 살펴보았으며, 워크북 로드부터 숫자 서식 유지, 열 이름 포함, 특정 행 제한까지 모든 과정을 다루었습니다. 코드는 독립적이며 바로 실행 가능하고, 가장 흔한 엣지 케이스에 대한 실용적인 방어 로직도 포함하고 있습니다. + +다음 도전 과제에 준비가 되었나요? 원본 숫자 서식을 유지하면서 CSV로 직접 내보내보거나, `DataTable`을 Entity Framework Core 컨텍스트에 전달해 대량 데이터베이스 삽입을 수행해 보세요. 두 시나리오 모두 여기서 다룬 기본 원리를 기반으로 합니다. + +If you found this guide helpful + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..5fede67cb1 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 서명을 추가하는 방법을 단계별 가이드를 통해 알아보세요. 문서를 안전하게 보호하세요. | +| [스타일이 적용된 테이블로 Excel 통합 문서 만들기 – 단계별 가이드](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Aspose.Cells for .NET을 활용해 스타일이 적용된 테이블이 포함된 Excel 통합 문서를 단계별로 만드는 방법을 알아보세요. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/korean/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..a6d85e6d69 --- /dev/null +++ b/cells/korean/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,272 @@ +--- +category: general +date: 2026-03-21 +description: Excel 워크북을 생성하고 열 스타일을 지정하면서 데이터테이블을 Excel에 가져오고, 데이터를 Excel로 내보내며, Excel + 셀의 날짜를 분 단위로 포맷합니다. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: ko +og_description: Excel 워크북을 빠르게 만들기. 데이터테이블을 Excel로 가져오고, 열 스타일을 설정하며, 데이터를 Excel로 + 내보내고, Excel 셀 날짜 형식을 지정하는 방법을 한 가이드에서 배워보세요. +og_title: Excel 워크북 만들기 – 스타일링 및 내보내기 전체 튜토리얼 +tags: +- C# +- Aspose.Cells +- Excel automation +title: 스타일이 적용된 테이블이 있는 Excel 워크북 만들기 – 단계별 가이드 +url: /ko/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel 워크북 만들기 – 완전 프로그래밍 튜토리얼 + +코드만으로도 깔끔하게 보이는 **create excel workbook**이 필요했던 적이 있나요? 데이터베이스에서 데이터를 가져오고, 나중에 Excel에서 손볼 필요 없이 날짜가 올바른 형식으로 표시되길 원한다면요. 이는 흔한 문제점이며—특히 결과물이 클라이언트의 메일함에 도착하고 모든 것이 바로 사용 가능하기를 기대할 때 더욱 그렇습니다. + +이 가이드에서는 **imports datatable to excel**을 수행하고, **set column style**을 적용한 뒤, 최종적으로 **export data to excel**을 통해 깔끔하게 포맷된 파일을 만드는 단일, 자체 포함 솔루션을 단계별로 살펴봅니다. **format excel cells date**를 정확히 어떻게 적용하는지 확인하고, 마지막에 완전한 실행 가능한 예제를 제공합니다. 누락된 부분 없이, “문서 참고” 같은 우회 없이 바로 프로젝트에 넣어 사용할 수 있는 순수 코드만 제공합니다. + +--- + +## What You’ll Learn + +- How to **create excel workbook** using the Aspose.Cells library (or any compatible API). +- The quickest way to **import datatable to excel** without manual cell‑by‑cell loops. +- Techniques to **set column style**, including applying a date format to a specific column. +- How to **export data to excel** with a single `Save` call. +- Common pitfalls when you try to **format excel cells date** and how to avoid them. + +### Prerequisites + +- .NET 6+ (or .NET Framework 4.6+). +- Aspose.Cells for .NET installed (`Install-Package Aspose.Cells`). +- A `DataTable` ready to be exported—your data source could be SQL, CSV, or anything that can be turned into a `DataTable`. + +이미 C#에 익숙하고 위 요소들이 준비되어 있다면 바로 시작할 수 있습니다. 그렇지 않다면 위 “Prerequisites” 섹션이 빠른 체크리스트가 될 것입니다. + +--- + +## Step 1 – Create the Excel Workbook Instance + +프로그래밍으로 **create excel workbook**을 하려면 가장 먼저 워크북 객체를 인스턴스화합니다. 이것은 나중에 데이터를 기록할 빈 노트북을 여는 것과 같습니다. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Why this matters:** +> The `Workbook` class is the entry point for every operation in Aspose.Cells. Creating it up front gives you a clean canvas, and you can later load an existing file if you need to append data instead of starting from scratch. + +--- + +## Step 2 – Prepare the DataTable to Import + +**import datatable to excel**을 수행하기 전에 `DataTable`이 필요합니다. 실제 프로젝트에서는 보통 `SqlDataAdapter.Fill`이나 `DataTable.Load`를 통해 얻습니다. 여기서는 이해를 돕기 위해 준비된 테이블을 반환하는 메서드를 스텁으로 만들겠습니다. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tip:** If your dates are stored as strings, convert them to `DateTime` first—otherwise the **format excel cells date** step won’t work as expected. + +--- + +## Step 3 – Define Styles for Each Column (Set Column Style) + +이제 **set column style**을 정의할 차례입니다. 열당 하나씩 `Style` 객체 배열을 만들겠습니다. 첫 번째 열은 내장 날짜 형식(code 14)을 사용하고, 나머지는 일반 형식(code 0)으로 유지합니다. + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Why use style objects?** +> Applying a style once and reusing it is far more efficient than setting the format on each cell individually. It also guarantees that the entire column respects the same **format excel cells date** rule, which is essential for consistency when the file is opened in different locales. + +--- + +## Step 4 – Import the DataTable with Styles into the Worksheet + +워크북이 준비되고 스타일이 정의되었으니 이제 **import datatable to excel**을 수행합니다. `ImportDataTable` 메서드가 핵심 작업을 담당합니다: 열 헤더와 행을 쓰고, 전달한 스타일을 적용합니다. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **What’s happening under the hood?** +> - `true` tells Aspose.Cells to include column names as the first row. +> - `0, 0` are the starting row and column indices (top‑left corner). +> - `columnStyles` aligns each column with the style we prepared, ensuring the **format excel cells date** rule is applied to the date column. + +--- + +## Step 5 – Save (Export) the Workbook to a Physical File + +마지막으로 워크북을 디스크에 저장하여 **export data to excel**을 완료합니다. 경로를 원하는 폴더로 바꾸거나, 웹 API에서는 파일을 직접 HTTP 응답 스트림으로 보낼 수도 있습니다. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** Use `workbook.Save(Stream, SaveFormat.Xlsx)` when you need to send the file over the network without writing to disk. + +--- + +## Full Working Example (All Steps Combined) + +아래는 완전한 실행 가능한 프로그램 전체 코드입니다. 콘솔 앱에 복사·붙여넣기하고 출력 경로만 조정하면 몇 초 만에 깔끔하게 포맷된 Excel 파일을 얻을 수 있습니다. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Expected output:** +When you open `StyledTable.xlsx`, column A shows dates like `03/19/2026` (depending on your locale), while columns B and C display the product names and quantities as plain text/numbers. No extra formatting steps required—your **create excel workbook** process is done. + +--- + +## Frequently Asked Questions & Edge Cases + +### 1️⃣ What if my DataTable has more than three columns? + +`columnStyles` 배열에 `Style` 객체를 더 추가하고, 특수 형식이 필요한 열에 대해 `Number` 속성을 조정하면 됩니다(예: 통화, 백분율). `ImportDataTable` 메서드는 위치에 따라 각 스타일을 매칭합니다. + +### 2️⃣ Can I apply a custom date format instead of the built‑in 14? + +Absolutely. Replace `columnStyles[i].Number = 14;` with: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ How do I **export data to excel** in a web API without writing to disk? + +Use a `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ What if the user’s locale expects a different date separator? + +The built‑in date format (ID 14) respects the workbook’s locale settings. If you need a fixed format regardless of locale, use the `Custom` property as shown above. + +### 5️⃣ Does this work with .NET Core? + +Yes—Aspose.Cells supports .NET Standard 2.0 and later, so the same code runs on .NET 6, .NET 7, or any compatible runtime. + +--- + +## Best‑Practice Tips (Pro Tips) + +- **Reuse styles**: Creating a style per column is cheap, but re‑using the same style object for identical columns saves memory. +- **Avoid cell‑by‑cell loops**: `ImportDataTable` is highly optimized; manual loops are slower and prone to errors. +- **Set workbook culture early** if you need consistent number/date separators across environments: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validate DataTable** before import—null dates will throw an exception when the date style is applied. +- **Turn on calculation** if you add formulas after import: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Conclusion + +이제 **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, 그리고 **format excel cells date**를 모두 한 번에 구현하는 완전한 엔드‑투‑엔드 레시피를 갖추었습니다—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/row-and-column-management/_index.md b/cells/korean/net/row-and-column-management/_index.md index fbee3fe115..8500e4ad32 100644 --- a/cells/korean/net/row-and-column-management/_index.md +++ b/cells/korean/net/row-and-column-management/_index.md @@ -66,6 +66,8 @@ Aspose.Cells for .NET을 사용하여 Excel에서 행과 열을 숨기기 해제 Aspose.Cells for .NET을 사용하여 Excel 파일에서 열을 삭제하는 방법을 알아보세요. 자세한 단계별 가이드를 따라 Excel 파일 수정 작업을 간소화하세요. ### [Aspose.Cells .NET에서 행 삭제](./delete-row-aspose-cells/) Aspose.Cells for .NET을 사용하여 Excel에서 행을 삭제하는 방법을 알아보세요. 이 단계별 가이드에서는 필수 구성 요소, 코드 가져오기, 그리고 원활한 데이터 조작을 위한 자세한 안내를 제공합니다. +### [Excel 파일 로드 C# – 행 삭제 및 특정 행 제거 방법](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Aspose.Cells for .NET을 사용하여 Excel 파일을 로드하고 행을 삭제하거나 특정 행을 제거하는 단계별 가이드를 확인하세요. ### [Aspose.Cells .NET에서 여러 행 삭제](./delete-multiple-rows-aspose-cells/) Aspose.Cells for .NET을 사용하여 Excel에서 여러 행을 삭제하는 방법을 알아보세요. 이 상세하고 단계별 가이드는 개발자를 위한 필수 조건, 코딩 예제, FAQ를 다룹니다. ### [Aspose.Cells .NET에 열 삽입](./insert-column-aspose-cells/) diff --git a/cells/korean/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/korean/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..c62d2aeadc --- /dev/null +++ b/cells/korean/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-21 +description: C#로 Excel 파일을 로드하고 Aspose.Cells를 사용해 데이터 행을 제거합니다. 행 삭제 방법, 특정 행 제거 방법을 + 배우고, 몇 분 안에 C# Excel 행 삭제를 마스터하세요. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: ko +og_description: C#에서 Excel 파일을 로드하고 행을 빠르게 삭제하며, 특정 행을 제거하고, Aspose.Cells를 사용한 C# + Excel 행 삭제를 처리합니다. 완전한 단계별 가이드. +og_title: Excel 파일 로드 C# – 행 삭제 및 특정 행 제거 +tags: +- C# +- Excel +- Aspose.Cells +title: Excel 파일 로드 C# – 행 삭제 및 특정 행 제거 방법 +url: /ko/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel 파일 로드 C# – 행 삭제 및 특정 행 제거 방법 + +필요 없는 행을 정리해야 할 때 **load Excel file C#**를 사용해 본 적이 있나요? 데이터 덤프를 정리하거나, 클라이언트에게 전달하기 전에 템플릿에서 특정 행을 없애야 할 수도 있습니다. 어느 경우든 문제는 동일합니다: 디스크에 `.xlsx` 파일이 있고, 이를 .NET에서 열어 **delete rows**를 수행하면서 숨겨진 테이블이나 리스트 객체를 손상시키지 않아야 합니다. + +핵심은—Aspose.Cells 덕분에 이 작업이 아주 쉬워집니다. 이 튜토리얼에서는 **how to delete rows**와 **remove specific rows**를 정확히 보여주는 완전한 실행 가능한 예제를 제공하고, 처음부터 **c# excel row deletion**에 관심을 가져야 하는 이유도 설명합니다. 최종적으로 원하는 행만 남은 깔끔한 `output.xlsx`를 얻게 됩니다. + +## 이 가이드에서 다루는 내용 + +- Aspose.Cells를 사용해 디스크에서 Excel 워크북 로드 +- ListObject 헤더를 고려하면서 행 범위(예: 5‑10행) 삭제 +- 수정된 워크북을 파일 시스템에 저장 +- 테이블 내부 행을 실수로 삭제하는 일반적인 함정 및 해결 팁 +- 오늘 바로 콘솔 앱에 넣어 실행할 수 있는 전체 코드 샘플 + +> **Prerequisites** +> • .NET 6+ (or .NET Framework 4.6+). +> • Aspose.Cells for .NET installed via NuGet (`Install-Package Aspose.Cells`). +> • Basic familiarity with C# and Excel concepts (worksheets, cells, tables). + +Aspose.Cells를 **why you should use Aspose.Cells** 대신 `Microsoft.Office.Interop.Excel`과 같은 방법을 사용해야 하는 이유는 속도, COM 필요 없음, 그리고 Office가 설치되지 않은 서버에서도 실행할 수 있다는 점입니다. 또한 API가 행 삭제 작업에 직관적입니다. + +--- + +## 단계 1: C#에서 Excel 워크북 로드 + +워크북을 메모리로 가져오기 전까지는 어떤 행도 삭제할 수 없습니다. `Workbook` 클래스는 전체 Excel 파일을 나타냅니다. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Why this matters:** +파일을 로드하면 Excel 구조(워크시트, 셀, 테이블 등)를 반영하는 객체 그래프가 생성됩니다. `ws`에 대한 참조를 보유하면 파일 잠금이나 COM 인터옵 문제에 신경 쓰지 않고 직접 행을 조작할 수 있습니다. + +--- + +## 단계 2: 데이터만 포함된 행 삭제 + +워크북이 메모리에 로드되었으니 이제 행을 삭제할 수 있습니다. `Cells.DeleteRows(startRow, totalRows)` 메서드는 연속된 블록을 제거합니다. 예제에서는 5‑10행을 제거합니다. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**How it works:** +- `startRow`는 0 기반이므로 `5`는 실제 Excel 행 6을 의미합니다. 필요에 따라 조정하세요. +- 워크시트에 **ListObject**(Excel 테이블)가 존재하고 헤더가 4행에 있다면, Aspose.Cells는 헤더를 보호하고 그 아래 데이터 행만 삭제합니다. 이 내장 안전 장치는 **removing data rows**와 같은 구조화된 테이블을 손상시키는 일반적인 엣지 케이스를 방지합니다. + +> **Pro tip:** 연속되지 않은 행(예: 3, 7, 12행)을 삭제해야 할 경우, 행 인덱스 컬렉션을 역순으로 순회하면서 `DeleteRows(rowIndex, 1)`을 호출하세요. 아래에서 위로 삭제하면 남은 행의 원래 인덱스를 유지할 수 있습니다. + +--- + +## 단계 3: 수정된 워크북 저장 + +불필요한 행을 모두 제거했으면 워크북을 디스크에 다시 기록하면 됩니다. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +`Save` 메서드는 확장자(`.xlsx`)를 기준으로 파일 형식을 자동으로 결정합니다. CSV, PDF 등 다른 형식이 필요하면 확장자를 바꾸거나 `SaveFormat` 열거형을 전달하면 됩니다. + +### 예상 결과 + +Excel에서 `output.xlsx`를 열면 5‑14행(원본 5‑10행)이 사라진 것을 확인할 수 있습니다. 나머지 데이터는 위로 이동하고, 삭제된 행을 참조하던 수식은 Aspose.Cells에 의해 자동으로 조정됩니다. + +--- + +## 자주 묻는 질문 (FAQ) + +### 조건에 따라 행을 삭제하려면 어떻게 해야 하나요 (예: 열 A가 비어 있는 모든 행) + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +루프가 역순으로 실행되어 인덱스 이동을 방지합니다. 이 패턴은 조건부 로직이 필요할 때 **c# excel row deletion** 질문에 대한 포괄적인 답변이 됩니다. + +### 워크시트에 여러 개의 ListObject가 있는 경우는 어떻게 하나요? + +Aspose.Cells는 각 ListObject를 독립적으로 처리합니다. 삭제 범위가 테이블 헤더에 영향을 미치면 API가 `InvalidOperationException`을 발생시킵니다. 이를 해결하려면 범위를 조정하거나 일시적으로 ListObject의 `ShowTableStyleFirstColumn` 속성을 해제한 뒤 삭제하고 다시 복원하세요. + +### 전체 워크북을 메모리에 로드하지 않고 행을 삭제할 수 있나요? + +네—Aspose.Cells는 **streaming API**(`Workbook.LoadOptions`)를 제공해 데이터를 청크 단위로 읽습니다. 하지만 행 삭제는 워크시트 구조가 필요하므로 대상 시트를 메모리에 로드해야 합니다. 파일이 500 MB 이상으로 큰 경우 배치 처리하거나 **cell‑by‑cell** API를 활용하는 것을 고려하세요. + +--- + +## 전체 실행 가능한 예제 + +아래는 콘솔 앱으로 컴파일하고 실행할 수 있는 완전한 프로그램입니다. `YOUR_DIRECTORY`를 실제 폴더 경로로 교체하세요. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Running the code:** +1. 터미널이나 Visual Studio를 엽니다. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. `Program.cs`를 위 코드 스니펫으로 교체합니다. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +콘솔에 삭제가 완료되었다는 메시지와 저장된 파일 위치가 출력됩니다. + +--- + +## 일반적인 함정 및 회피 방법 + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Accidentally deleting a ListObject header** | `DeleteRows`가 범위가 헤더와 겹칠 때 숨겨진 테이블 헤더를 확인하지 않습니다. | 시작 행을 **after** 모든 테이블 헤더로 지정하거나 `ListObject` API(`ListObject.DeleteRows`)를 사용해 테이블 내부 행을 삭제하세요. | +| **Row indices off by one** | Aspose.Cells는 0 기반 인덱스를 사용하지만 Excel 사용자는 1 기반으로 생각합니다. | 코딩 시 Excel 행 번호에서 1을 빼야 함을 기억하세요. | +| **Formulas break after deletion** | 행을 삭제하면 삭제된 행을 참조하던 수식이 `#REF!` 오류를 일으킬 수 있습니다. | Aspose.Cells가 대부분의 수식을 자동 업데이트하지만 외부 참조나 이름 정의 영역은 별도로 확인하세요. | +| **Performance slowdown on huge files** | 많은 행을 삭제하면 내부 재인덱싱이 발생합니다. | 가능한 경우 `DeleteRows(start, count)`를 사용해 큰 범위를 한 번에 삭제하고, 다수의 단일 행 삭제를 피하세요. | + +--- + +## 다음 단계 및 관련 주제 + +- **Remove specific rows based on cell values:** FAQ에 나온 조건부 루프와 `DeleteRows`를 결합하세요. +- **Bulk row insertion:** `InsertRows`를 사용해 데이터를 채우기 전에 자리표시자 행을 추가하세요. +- **Working with tables (ListObjects):** 구조화된 테이블 내부에서 행 수준 작업을 수행하려면 `ListObject` 메서드를 탐색하세요. +- **Exporting to CSV after row deletion:** `workbook.Save("output.csv", SaveFormat.Csv)`를 호출해 삭제된 행이 없는 깔끔한 CSV를 생성하세요. + +이 모든 내용은 핵심 **load excel file c#** 워크플로를 기반으로 하며, 프로그래밍 방식으로 Excel 파일을 세밀하게 조정할 수 있게 해줍니다. + +## 결론 + +우리는 **load excel file c#** 시나리오를 실습하고, **how to delete rows**를 시연했으며, Aspose.Cells를 활용해 **remove specific rows**와 **remove data rows**의 미묘한 차이까지 다루었습니다. 워크북을 로드하고 `DeleteRows`를 호출한 뒤 결과를 저장하면 COM 인터옵의 부하 없이 신뢰성 있는 **c# excel row deletion**을 구현할 수 있습니다. + +실제 데이터셋에 적용해 보세요—예를 들어 판매 보고서를 정리하거나 템플릿에서 테스트 행을 제거하는 식으로. 익숙해지면 조건부 삭제와 테이블 인식 작업을 실험해 보세요. API가 충분히 견고해 간단한 스크립트부터 엔터프라이즈 급 배치 프로세서까지 모두 대응합니다. + +행복한 코딩 되세요, 문제가 발생하면 언제든 댓글로 알려 주세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/korean/net/worksheet-operations/_index.md index 1d0b19904c..eb84cba8e1 100644 --- a/cells/korean/net/worksheet-operations/_index.md +++ b/cells/korean/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Aspose.Cells for .NET을 사용하여 ODS 파일에 색상 배경을 설정하 Aspose.Cells for .NET을 사용하여 공유 통합 문서의 수정 로그 기록을 업데이트하는 방법을 알아보세요. 협업을 간소화하고 문서 기록을 명확하게 관리할 수 있습니다. ### [워크시트에서 OpenXml의 Sheet_SheetId 속성 활용](./utilize-sheet-sheetid-property/) Aspose.Cells for .NET으로 Excel의 강력한 기능을 활용하세요. 단계별 가이드를 통해 시트 ID를 효과적으로 조작하는 방법을 알아보세요. +### [워크시트 만들기 – 동적 Excel 생성을 위한 단계별 가이드](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Aspose.Cells for .NET을 사용하여 동적으로 워크시트를 생성하고 Excel 파일을 자동으로 만드는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/korean/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..4f457a4447 --- /dev/null +++ b/cells/korean/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,277 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells를 사용하여 C#에서 워크시트를 만들고, 동적 워크시트 이름으로 Excel 시트를 생성하며, 워크북을 + XLSX 형식으로 저장하는 방법을 배웁니다. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: ko +og_description: Aspose.Cells를 사용하여 Excel에서 워크시트를 만들고, 동적 워크시트 이름으로 Excel 시트를 생성한 뒤 + 워크북을 XLSX 형식으로 저장하는 방법. +og_title: 워크시트 만들기 – 완전 C# 튜토리얼 +tags: +- Aspose.Cells +- C# +- Excel automation +title: 워크시트 만들기 – 동적 엑셀 생성을 위한 단계별 가이드 +url: /ko/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 워크시트 만들기 – 완전 C# 튜토리얼 + +매번 Excel을 직접 열지 않고도 **워크시트를 즉석에서 만들** 수 있는 방법이 궁금하셨나요? 여러분만 그런 것이 아닙니다. 많은 개발자들이 데이터 소스에서 **Excel 시트를 생성**하고 각 시트에 의미 있는 동적 이름을 부여해야 할 때 난관에 부딪히곤 합니다. 좋은 소식은? Aspose.Cells를 사용하면 전체 과정을 자동화하고, **마스터 시트 처리**, 그리고 **워크북을 XLSX로 저장**까지 몇 줄의 코드만으로 가능합니다. + +이 튜토리얼에서는 실제 시나리오를 따라가 보겠습니다. 빈 워크북에서 시작해 Aspose에 어떤 상세 시트를 만들지 알려주는 스마트‑마커 토큰을 삽입하고, 각 시트가 고유한 이름을 갖도록 네이밍 패턴을 설정한 뒤, 최종 결과를 디스크에 저장합니다. 끝까지 진행하면 워크시트를 생성하고, 동적 워크시트 이름을 가진 Excel 시트를 만들며, UI를 전혀 건드리지 않고 **워크북을 XLSX로 저장**하는 실행 가능한 C# 프로그램을 얻게 됩니다. + +> **Prerequisites** +> • .NET 6+ (또는 .NET Framework 4.6+). +> • Aspose.Cells for .NET (무료 체험판으로도 데모 가능). +> • 기본적인 C# 지식—복잡한 Excel Interop 트릭은 필요 없습니다. + +--- + +## 우리가 만들게 될 내용 개요 + +- **마스터 시트**에 스마트‑마커 자리표시자(`«DetailSheetNewName:Dept»`)가 포함됩니다. +- **SmartMarkerProcessor**가 데이터 소스(예: `DataTable`)를 읽어 부서별로 새 워크시트를 생성합니다. +- **동적 워크시트 이름**은 `Dept_{0}` 패턴을 따르며, `{0}`은 부서 이름으로 대체됩니다. +- **최종 XLSX 파일**은 지정한 폴더에 저장됩니다. + +그게 전부입니다. 간단하지만 인보이스, 보고서 또는 다중 탭 Excel 출력에 충분히 강력합니다. + +--- + +![Diagram showing how a master sheet is processed to generate multiple dynamic worksheets](/images/how-to-create-worksheets-diagram.png "워크시트 생성 다이어그램") + +*Alt text: Aspose.Cells를 사용해 동적 워크시트 이름으로 워크시트를 생성하는 방법을 보여주는 일러스트레이션.* + +--- + +## 1단계: 프로젝트 설정 및 Aspose.Cells 추가 + +### 왜 중요한가 +코드가 실행되기 전에 컴파일러가 `Workbook`, `Worksheet`, `SmartMarkerProcessor` 클래스가 어디에 있는지 알아야 합니다. NuGet 패키지를 추가하면 최신 완전 기능 API를 사용할 수 있습니다. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro tip:** Visual Studio를 사용한다면 프로젝트를 마우스 오른쪽 버튼으로 클릭 → *Manage NuGet Packages* → *Aspose.Cells*를 검색하고 최신 안정 버전을 설치하세요. + +--- + +## 2단계: 새 워크북 및 마스터 시트 만들기 + +### 수행 내용 +깨끗한 워크북을 만든 뒤 첫 번째 워크시트(인덱스 0)를 가져옵니다. 이 시트가 **마스터 시트** 역할을 하며 스마트‑마커 토큰을 보관합니다. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +`Workbook` 클래스는 모든 워크시트를 담는 컨테이너입니다. 기본적으로 *Sheet1*이라는 시트를 하나 생성하는데, 이를 “Master”로 이름을 바꾸면 최종 파일을 탐색하기가 더 쉬워집니다. + +--- + +## 3단계: 상세 시트 이름용 스마트‑마커 토큰 삽입 + +### 스마트‑마커를 사용하는 이유 +스마트 마커는 Aspose.Cells가 실행 시점에 자리표시자를 실제 데이터로 교체하도록 해줍니다. 토큰 `«DetailSheetNewName:Dept»`은 프로세서에 *“이 토큰을 만나면 `Dept` 열의 각 행마다 새로운 상세 시트를 만들라”*는 의미를 전달합니다. + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +토큰은 어디에든 넣을 수 있지만, 가독성을 위해 **A1** 셀에 배치했습니다. 프로세서가 실행되면 토큰이 실제 부서 이름으로 교체되고 해당 이름의 워크시트가 생성됩니다. + +--- + +## 4단계: 데이터 소스 준비 + +### 시트 생성을 주도하는 데이터 +Aspose.Cells는 `IEnumerable` 형태의 데이터 소스를 모두 지원합니다. 이번 데모에서는 `Dept`라는 단일 컬럼을 가진 `DataTable`을 사용합니다. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **추가 컬럼이 있으면 어떻게 되나요?** +> 프로세서는 추가 컬럼을 무시합니다(스마트 마커에서 참조하지 않는 한). 따라서 시트 생성이 가볍게 유지됩니다. + +--- + +## 5단계: SmartMarkerProcessor 및 네이밍 패턴 구성 + +### 동적 워크시트 이름 작동 방식 +각 새 시트는 `Dept_Finance`, `Dept_HR` 등으로 이름이 지정됩니다. `DetailSheetNewName` 옵션을 사용해 `{0}`이 실제 부서 이름으로 대체되는 패턴을 정의합니다. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +같은 부서가 두 번 나타나면 Aspose는 자동으로 숫자 접미사(예: `Dept_Finance_1`)를 추가해 중복 시트 이름을 방지합니다. + +--- + +## 6단계: 마스터 시트 처리하여 상세 시트 생성 + +### **process master sheet** 핵심 +`Process` 메서드를 호출하면 스마트 마커를 스캔하고, 새 워크시트를 만들고, 마스터 레이아웃을 복사한 뒤 각 행의 데이터를 채워 넣는 무거운 작업을 수행합니다. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +이 호출 이후 워크북에는 마스터 시트와 네 개의 상세 시트가 들어 있습니다—각 시트는 우리 패턴에 따라 이름이 지정되고 셀 A1에 부서 이름이 채워집니다. + +--- + +## 7단계: 워크북을 XLSX로 저장 + +### 최종 단계—**save workbook as XLSX** +워크시트가 모두 준비되었으니 파일을 디스크에 기록합니다. 경로는 자유롭게 지정하되, 해당 디렉터리가 존재하는지 확인하세요. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +`DetailSheets.xlsx`를 열면 다음과 같이 표시됩니다: + +| Sheet Name | Cell A1 (Content) | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (변경되지 않음) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Edge case:** 출력 폴더가 존재하지 않으면 `Save`가 `DirectoryNotFoundException`을 발생시킵니다. 호출을 try‑catch 블록으로 감싸거나 미리 폴더를 생성하세요. + +--- + +## 전체 작업 예제 + +전체 코드를 한 번에 확인해 보세요. 콘솔 앱에 복사‑붙여넣기만 하면 됩니다: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +프로그램을 실행하고 결과 파일을 열면 앞서 설명한 레이아웃이 정확히 나타납니다. 수동 복사‑붙여넣기, COM Interop 없이도 **Excel 시트를 동적 워크시트 이름**으로 **생성**하는 깔끔한 C# 코드입니다. + +--- + +## 흔히 묻는 질문 및 주의사항 + +| Question | Answer | +|----------|--------| +| *DataSet에 여러 테이블을 사용할 수 있나요?* | 네. 적절한 테이블을 `Process`에 전달하거나 테이블 사전을 사용할 수 있습니다. | +| *마스터 시트에 스마트‑마커를 하나 이상 넣어야 하면?* | `«DetailSheetNewName:Region»`와 같은 추가 토큰을 배치하고 필요에 따라 별도 네이밍 패턴을 구성하면 됩니다. | +| *마스터 시트를 최종 파일에 남기고 싶지 않다면?* | 기본적으로는 남습니다. 필요 없으면 처리 후 `workbook.Worksheets.RemoveAt(0)`을 호출하세요. | +| *대용량 데이터 세트를 어떻게 처리하나요?* | 데이터를 효율적으로 스트리밍하지만 메모리 한계에 도달하면 `MemorySetting`을 늘리는 것이 좋습니다. | +| *CSV로 내보낼 수 있나요?* | 물론 가능합니다—`workbook.Save("file.csv", SaveFormat.Csv)`를 사용하면 됩니다. 시트 생성 로직은 동일하게 적용됩니다. | + +--- + +## 다음 단계 + +이제 **워크시트를 동적으로 생성**하는 방법을 알았으니 다음을 탐색해 보세요: + +- **워크북을 XLSX로 저장**하면서 비밀번호 보호(`workbook.Protect("pwd")`). +- `JsonDataSource` 또는 `XmlDataSource`를 사용해 JSON 또는 XML 소스에서 **Excel 시트 생성**. +- `Style` 객체를 활용해 각 생성된 시트에 **스타일 적용**(폰트, 색상 등). +- 요약 보고서를 위해 **셀 병합**이나 **자동 수식 삽입**. + +이 모든 확장은 동일한 **process master sheet** 개념을 기반으로 하므로 전환이 매우 쉽습니다. + +--- + +## 결론 + +워크북 초기화, 스마트‑마커 삽입, **동적 워크시트 이름** 구성, 마스터 시트 처리로 **Excel 시트 생성**, 그리고 **워크북을 XLSX로 저장**까지 전체 파이프라인을 다루었습니다. 예제는 완전하고 실행 가능하며 성능과 유지 보수성을 모두 고려한 베스트 프랙티스를 보여줍니다. + +한 번 실행해 보고, 네이밍 패턴을 조정하고, 실제 비즈니스 데이터를 연결해 보세요. 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/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/polish/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..e4a5bb28f1 --- /dev/null +++ b/cells/polish/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-21 +description: Jak obliczyć skoroszyt w C# przy użyciu Aspose.Cells – dowiedz się, jak + tworzyć skoroszyt Excel, wypełniać komórki Excel, obliczać formuły Excel oraz używać + funkcji sortowania. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: pl +og_description: Jak szybko obliczyć skoroszyt w C#. Ten poradnik pokazuje, jak utworzyć + skoroszyt Excela, wypełnić komórki, obliczyć formuły oraz użyć funkcji sortowania. +og_title: Jak obliczyć skoroszyt w C# – Kompletny przewodnik po sortowaniu +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Jak obliczyć skoroszyt w C# – Przewodnik po sortowaniu i formułach +url: /pl/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak obliczyć skoroszyt w C# – Przewodnik po Sort i Formułach + +Zastanawiałeś się kiedyś **jak obliczyć wartości w skoroszycie** w locie, bez otwierania Excela? Nie jesteś sam. W wielu scenariuszach automatyzacji musisz utworzyć plik Excel, wstawić kilka liczb, posortować je i pobrać wyniki z powrotem do swojej aplikacji .NET — wszystko programowo. + +W tym przewodniku przejdziemy dokładnie przez to: **utworzymy skoroszyt Excel**, **wypełnimy komórki Excela**, dołączymy formułę **SORT**, a na końcu **obliczymy formuły Excela**, abyś mógł odczytać posortowaną tablicę bezpośrednio z C#. Po zakończeniu będziesz mieć działający fragment kodu, który możesz wkleić do dowolnego projektu odwołującego się do Aspose.Cells (lub podobnej biblioteki). + +## Wymagania wstępne + +- .NET 6+ (kod działa również na .NET Framework 4.7.2) +- Aspose.Cells for .NET (bezpłatny pakiet próbny NuGet `Aspose.Cells`) +- Podstawowa znajomość składni C# +- Nie potrzebujesz zainstalowanej kopii Microsoft Excel; biblioteka wykonuje ciężką pracę za Ciebie + +Jeśli czujesz się z tym komfortowo, zanurzmy się. + +## Jak obliczyć skoroszyt – Inicjalizacja skoroszytu + +Pierwszą rzeczą, którą musisz zrobić, jest utworzenie nowego obiektu skoroszytu. Pomyśl o tym jak o otwarciu zupełnie nowego pliku Excel, który jest całkowicie pusty. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Dlaczego to ważne:** Klasa `Workbook` jest punktem wejścia dla każdej operacji — bez niej nie możesz dodawać arkuszy, komórek ani formuł. Poprawna inicjalizacja zapewnia, że pracujesz na czystym stanie. + +## Utwórz skoroszyt Excel i uzyskaj dostęp do arkusza + +Teraz, gdy skoroszyt istnieje, musimy upewnić się, że wskazujemy właściwy arkusz. Większość bibliotek domyślnie tworzy pojedynczy arkusz o nazwie „Sheet1”, ale możesz go przemianować lub dodać kolejne, jeśli chcesz. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Wskazówka:** Nadawanie nazw arkuszom od początku ułatwia późniejsze odwoływanie się do nich w formułach (`'Data'!A1:A10`). Ułatwia to także debugowanie. + +## Wypełnij komórki Excela danymi + +Następnie **wypełnimy komórki Excela** liczbami, które chcemy posortować. Przykład używa tylko dwóch komórek, ale możesz rozszerzyć zakres do dziesiątek wierszy. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Dlaczego używamy `PutValue`** – Automatycznie wykrywa typ danych (int, double, string itp.) i przechowuje go odpowiednio, oszczędzając Ci ręcznego rzutowania typów. + +## Zastosuj funkcję SORT za pomocą formuły + +Funkcja `SORT` w Excelu robi dokładnie to, co sugeruje jej nazwa: zwraca posortowaną tablicę bez zmieniania oryginalnych danych. Umieścimy tę formułę w komórce `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Uwaga o przypadkach brzegowych:** `SORT` zwraca wynik w postaci **tablicy**. W starszych wersjach Excela (przed Office 365) wymagało to kombinacji Ctrl+Shift+Enter. Z Aspose.Cells otrzymujesz tablicę automatycznie po obliczeniu skoroszytu. + +## Oblicz formuły Excela, aby uzyskać wyniki + +W tym momencie skoroszyt wie tylko *co* obliczyć, a nie *że* ma to zrobić. Wywołanie `CalculateFormula` uruchamia silnik, który ocenia każdą formułę, w tym nasz `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Oczekiwany wynik w konsoli** + +``` +Sorted array: {2, 5} +``` + +> **Co się właśnie stało?** +> 1. Skoroszyt utworzył wewnętrzny silnik obliczeniowy. +> 2. Formuła `SORT` przeanalizowała zakres `A1:A2`. +> 3. Silnik wygenerował nową tablicę, którą pobraliśmy z `B1`. + +Jeśli zmienisz wartości w `A1` i `A2` (lub rozszerzysz zakres) i ponownie uruchomisz `CalculateFormula`, wynik zostanie automatycznie zaktualizowany — nie potrzebny jest dodatkowy kod. + +## Użyj funkcji Sort na większych zbiorach danych (Opcjonalnie) + +Większość rzeczywistych scenariuszy obejmuje więcej niż dwa wiersze. Oto szybka modyfikacja, która działa dla dowolnej liczby wpisów: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Dlaczego możesz tego potrzebować:** Sortowanie dużych zakresów pozwala generować rankingi, porządkować dane finansowe lub po prostu oczyścić zaimportowane pliki CSV przed dalszym przetwarzaniem. + +## Typowe pułapki i jak ich uniknąć + +| Problem | Dlaczego się pojawia | Rozwiązanie | +|---------|----------------------|-------------| +| **`#VALUE!` w B1** | Formuła `SORT` odwołuje się do pustego lub nienumerycznego zakresu. | Upewnij się, że każda komórka w źródłowym zakresie zawiera liczbę lub tekst, który można posortować. | +| **Obcięcie tablicy** | Próba odczytania tablicy z pojedynczej komórki bez rzutowania. | Rzutuj `worksheet.Cells["B1"].Value` na `object[]` (lub odpowiedni typ). | +| **Spowolnienie wydajności** | Ponowne obliczanie ogromnych skoroszytów po każdej drobnej zmianie. | Wywołuj `CalculateFormula` dopiero po zakończeniu modyfikacji arkusza lub użyj `CalculateFormulaOptions`, aby ograniczyć zakres. | + +## Pełny działający przykład (gotowy do kopiowania i wklejenia) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Zrzut ekranu wyniku** +> ![how to calculate workbook result in Excel](https://example.com/images/sorted-result.png "how to calculate workbook result in Excel") + +Powyższy obrazek pokazuje skoroszyt po obliczeniu — komórka **B1** zawiera posortowaną tablicę `{2, 5}`. + +## Zakończenie + +Właśnie omówiliśmy **jak obliczyć wartości w skoroszycie** programowo: tworzenie skoroszytu Excel, wypełnianie komórek Excela, osadzenie formuły `SORT`, a na końcu **obliczenie formuł Excela**, aby wyodrębnić posortowane dane. Podejście działa dla małych przykładów dwukomórkowych i płynnie skaluje się do większych zbiorów danych. + +Co dalej? Spróbuj połączyć to z innymi funkcjami, takimi jak `FILTER`, `UNIQUE`, lub nawet własną logiką w stylu VBA za pomocą `WorksheetFunction`. Możesz także zapisać skoroszyt na dysku (`workbook.Save("Sorted.xlsx")`) i otworzyć go w Excelu w celu wizualnej weryfikacji. + +Śmiało eksperymentuj — zamień liczby, zmień zakres lub połącz ze sobą wiele formuł. Automatyzacja polega na szybkim iterowaniu, a teraz masz solidną podstawę do dalszego rozwoju. + +Miłego kodowania i niech Twoje skoroszyty zawsze obliczają dokładnie tak, jak oczekujesz! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/polish/net/conversion-and-rendering/_index.md index 81d72ab91f..4f2e95298d 100644 --- a/cells/polish/net/conversion-and-rendering/_index.md +++ b/cells/polish/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Naucz się zaawansowanej konwersji Excela do PDF bezproblemowo z Aspose.Cells w Dowiedz się, jak przekonwertować arkusz kalkulacyjny programu Excel do formatu SVG za pomocą Aspose.Cells dla platformy .NET, korzystając z tego przewodnika krok po kroku. Idealne dla programistów .NET, którzy chcą renderować arkusz programu Excel do formatu SVG. ### [Konwersja Excela do MHTML w .NET](./converting-excel-to-mhtml/) Dowiedz się, jak efektywnie konwertować pliki Excel do formatu MHTML w środowisku .NET za pomocą Aspose.Cells, zwiększając w ten sposób możliwości raportowania i udostępniania danych. +### [Utwórz obraz z Excela – eksportuj tabelę przestawną do PNG w C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Dowiedz się, jak wygenerować obraz PNG z tabeli przestawnej w Excelu przy użyciu Aspose.Cells w C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/polish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..8b2ad0eef9 --- /dev/null +++ b/cells/polish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Utwórz obraz z pliku Excel w C# przy użyciu Aspose.Cells. Dowiedz się, + jak przekonwertować Excel na obraz, wyeksportować tabelę przestawną i zapisać obraz + jako PNG, korzystając z pełnego, gotowego do uruchomienia przykładu. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: pl +og_description: Szybko utwórz obraz z Excela w C#. Ten przewodnik pokazuje, jak przekonwertować + Excel na obraz, wyeksportować tabelę przestawną i zapisać obraz jako PNG przy użyciu + przejrzystego kodu. +og_title: Utwórz obraz z Excela – Eksportuj tabelę przestawną do PNG w C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Utwórz obraz z Excela – eksportuj tabelę przestawną do PNG w C# +url: /pl/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tworzenie obrazu z Excela – Eksport tabeli przestawnej do PNG w C# + +Kiedykolwiek potrzebowałeś **utworzyć obraz z Excela**, ale nie wiedziałeś, którego API użyć? Nie jesteś sam — wielu deweloperów napotyka ten problem, gdy próbują zamienić żywą tabelę przestawną na udostępniany plik PNG. + +W tym samouczku przeprowadzimy Cię przez kompletną, gotową do uruchomienia rozwiązanie, które **konwertuje Excel na obraz**, pokazuje **jak wyeksportować tabelę przestawną** i wyjaśnia **jak zapisać obraz** jako plik PNG. Po zakończeniu będziesz mieć jedną metodę, która wykona całą pracę, oraz wskazówki dotyczące przypadków brzegowych, na które możesz natrafić. + +## Czego będziesz potrzebować + +- **Aspose.Cells for .NET** (pakiet NuGet `Aspose.Cells`). To komercyjna biblioteka, ale oferuje darmowy tryb ewaluacyjny — idealny do testów. +- .NET 6+ (lub .NET Framework 4.6+). +- Prosty skoroszyt Excel (`Pivot.xlsx`) zawierający przynajmniej jedną tabelę przestawną. +- Dowolne IDE — Visual Studio, Rider, a nawet VS Code. + +To wszystko. Bez dodatkowych DLL‑ów, bez COM interop i bez skomplikowanych sztuczek automatyzacji Excela. + +Teraz zanurzmy się w kod. + +## Krok 1: Załaduj skoroszyt – Utwórz obraz z Excela + +Pierwszą rzeczą, którą robimy, jest otwarcie pliku Excel zawierającego tabelę przestawną. Ten krok jest kluczowy, ponieważ renderer działa na obiekcie `Workbook` w pamięci. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Dlaczego to ważne:* Załadowanie skoroszytu daje nam dostęp do **pivot** i wszelkiego formatowania, które zostanie zachowane, gdy później **konwertujemy Excel na obraz**. Jeśli pominiesz ten krok, renderer nie będzie miał na czym pracować. + +## Krok 2: Skonfiguruj opcje eksportu – Konwertuj Excel na obraz + +Następnie informujemy Aspose, jak ma wyglądać końcowy obraz. Klasa `ImageOrPrintOptions` pozwala wybrać PNG, ustawić DPI i nawet kontrolować kolor tła. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Dlaczego to ważne:* Ustawiając wysokie DPI, zapewniamy, że **eksport Excel do PNG** będzie ostry, nawet gdy tabela przestawna zawiera wiele wierszy. DPI można obniżyć, jeśli rozmiar pliku jest problemem. + +## Krok 3: Renderuj arkusz – Jak wyeksportować tabelę przestawną + +Teraz serce procesu: przekształcenie arkusza (z tabelą przestawną) w obraz. Klasa `WorksheetRender` wykonuje najcięższą pracę. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Dlaczego to ważne:* To właśnie tutaj **jak wyeksportować tabelę przestawną** do formatu wizualnego. Renderer zachowuje całe formatowanie tabeli przestawnej, slicery i style warunkowe, więc PNG wygląda dokładnie tak, jak w Excelu. + +## Krok 4: Połącz wszystko – Jak zapisać obraz + +Na koniec udostępniamy jedną publiczną metodę, która łączy wszystkie elementy. To metoda, którą wywołasz ze swojej aplikacji, serwisu lub narzędzia konsolowego. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Pełny działający przykład + +Utwórz nowy projekt konsolowy, dodaj pakiet NuGet `Aspose.Cells`, a następnie umieść poniższy plik `Program.cs`: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Oczekiwany rezultat:** Po uruchomieniu programu w folderze, który określiłeś, pojawi się plik `PivotImage.png` przedstawiający piksel‑idealny zrzut tabeli przestawnej. + +![Utworzenie obrazu z Excela – przykład](https://example.com/placeholder.png "Utworzenie obrazu z Excela – przykład") + +*Alt text:* utworzenie obrazu z excela przykład pokazujący wyeksportowaną tabelę przestawną jako PNG. + +## Często zadawane pytania i przypadki brzegowe + +### Co zrobić, jeśli mój skoroszyt ma wiele arkuszy? + +Obecny pomocnik pobiera `Worksheets[0]`. Aby wybrać konkretny arkusz, przekaż nazwę arkusza: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG jest rozmyty — jak to naprawić? + +Zwiększ `HorizontalResolution` i `VerticalResolution` w `GetImageOptions`. Wartości 300–600 DPI zazwyczaj dają ostre wyniki. Pamiętaj, że wyższe DPI oznacza większy rozmiar pliku. + +### Moja tabela przestawna rozciąga się na więcej niż jedną stronę — czy mogę wyeksportować wszystkie strony? + +Tak. Przejdź pętlą po `renderer.PageCount` i wywołaj `ToImage(pageIndex, …)` dla każdej strony, albo ustaw `OnePagePerSheet = false`, aby uzyskać osobne obrazy dla każdej strony. + +### Potrzebuję tylko części arkusza (np. konkretnego zakresu)? + +Użyj `ImageOrPrintOptions`, aby ustawić `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +W ten sposób **konwertujesz Excel na obraz** tylko dla wybranego obszaru. + +### Czy to działa z plikami .xls (Excel 97‑2003)? + +Oczywiście. Aspose.Cells abstrahuje format pliku, więc możesz podać `.xls`, `.xlsx`, `.xlsm` lub nawet `.ods` i nadal **eksportować excel do png**. + +## Profesjonalne wskazówki i pułapki + +- **Licencja ma znaczenie**: w trybie ewaluacyjnym Aspose dodaje znak wodny. Wdroż prawidłową licencję w produkcji. +- **Zużycie pamięci**: renderowanie dużych skoroszytów może być intensywne pod względem pamięci. Szybko zwalniaj obiekt `Workbook` lub otaczaj go blokiem `using`. +- **Bezpieczeństwo wątków**: `Workbook` nie jest wątkowo‑bezpieczny. Twórz nową instancję dla każdego żądania, jeśli pracujesz w usłudze webowej. +- **Elastyczność formatu obrazu**: jeśli potrzebujesz JPEG lub BMP, po prostu zmień `ImageFormat` w `GetImageOptions`. + +## Podsumowanie + +Masz teraz solidny, kompleksowy przepis na **utworzenie obrazu z Excela**, konkretnie na **eksport tabeli przestawnej** jako wysokiej jakości PNG. Powyższy fragment kodu pokazuje pełny, uruchamialny przykład, wyjaśnia **jak zapisać obraz** i omawia warianty, takie jak wiele arkuszy czy niestandardowe obszary wydruku. + +Co dalej? Spróbuj połączyć ten eksporter z usługą e‑mailową, aby automatycznie wysyłać PNG, lub eksperymentuj z `ImageOrPrintOptions`, aby generować PDF‑y zamiast PNG. Ten sam wzorzec sprawdza się przy zadaniach **convert excel to image** w wielu formatach. + +Masz więcej pytań? zostaw komentarz i powodzenia w kodowaniu! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..650a2caa33 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 @@ -46,6 +46,8 @@ Aspose.Cells for .NET upraszcza przekształcanie dokumentów, umożliwiając pro Dowiedz się, jak przekonwertować CSV na JSON w .NET za pomocą Aspose.Cells. Przewodnik krok po kroku dotyczący transformacji danych z łatwymi do naśladowania przykładami kodu. ### [Konwersja pliku Excel do DOCX programowo w .NET](./converting-excel-file-to-docx/) Dowiedz się, jak programowo konwertować pliki Excel do DOCX za pomocą Aspose.Cells dla .NET w tym przewodniku krok po kroku. Idealne do generowania raportów i udostępniania danych. +### [Zapisz plik Excel jako Docx w C# – Kompletny przewodnik krok po kroku](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Dowiedz się, jak programowo zapisać plik Excel jako dokument DOCX w C# przy użyciu Aspose.Cells, krok po kroku. ### [Konwersja pliku Excel do HTML z etykietą podręczną w .NET](./converting-excel-file-to-html-with-tooltip/) Konwertuj Excela do HTML z podpowiedziami za pomocą Aspose.Cells dla .NET w kilku prostych krokach. Ulepszaj swoje aplikacje internetowe za pomocą interaktywnych danych Excela bez wysiłku. ### [Konwersja pliku Excel do formatu Markdown programowo w środowisku .NET](./converting-excel-file-to-markdown/) diff --git a/cells/polish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/polish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..4d0534975d --- /dev/null +++ b/cells/polish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Zapisz Excel jako Docx w C# — dowiedz się, jak konwertować Excel na Word, + osadzać wykresy i ładować skoroszyt Excel w C# przy użyciu Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: pl +og_description: Zapisz Excel jako Docx w C# wyjaśnione w pierwszym zdaniu. Skorzystaj + z tego samouczka, aby przekonwertować Excel na Word, osadzić wykresy i wczytać skoroszyt + Excel w C#. +og_title: Zapisz Excel jako Docx w C# – Kompletny przewodnik +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Zapisz Excel jako Docx w C# – Kompletny przewodnik krok po kroku +url: /pl/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Zapisz Excel jako Docx w C# – Kompletny przewodnik krok po kroku + +Kiedykolwiek potrzebowałeś **save Excel as Docx**, ale nie wiedziałeś od czego zacząć? Nie jesteś sam — wielu programistów napotyka ten sam problem, gdy chcą *convert Excel to Word* zachowując wykresy w nienaruszonym stanie. W tym samouczku przeprowadzimy Cię przez dokładny kod, wyjaśnimy, dlaczego każda linia ma znaczenie, i pokażemy, jak osadzić wykresy Excel bez utraty jakości. + +Dodamy również kilka dodatkowych wskazówek dotyczących scenariuszy **load Excel workbook C#**, tak aby pod koniec czuć się pewnie przy konwertowaniu Excel do Docx w dowolnym projekcie .NET. Bez niejasnych odniesień, tylko konkretny, gotowy do uruchomienia przykład, który możesz skopiować i wkleić od razu. + +--- + +## Co obejmuje ten przewodnik + +- Ładowanie istniejącego pliku `.xlsx` przy użyciu Aspose.Cells (lub dowolnej kompatybilnej biblioteki). +- Opcjonalna manipulacja arkuszami lub wykresami przed konwersją. +- Zapisanie skoroszytu jako pliku `.docx` przy zachowaniu osadzonych wykresów. +- Weryfikacja wyniku i obsługa typowych przypadków brzegowych, takich jak duże skoroszyty lub nieobsługiwane typy wykresów. + +Jeśli zastanawiasz się **why you’d want to convert Excel to Docx**, pomyśl o raportach, które musisz wysłać do nietechnicznych interesariuszy — dokumenty Word są powszechnie akceptowane i zachowują wizualną wierność Twoich wykresów. Zanurzmy się. + +--- + +## Wymagania wstępne – Load Excel Workbook C# + +Zanim napiszemy jakikolwiek kod, upewnij się, że masz następujące elementy: + +| Requirement | Reason | +|-------------|--------| +| **.NET 6.0 or later** | Nowoczesne środowisko uruchomieniowe, lepsza wydajność i pełne wsparcie dla Aspose.Cells. | +| **Aspose.Cells for .NET** (NuGet package `Aspose.Cells`) | Udostępnia klasę `Workbook` używaną do odczytu Excela i eksportu do DOCX. | +| **Visual Studio 2022** (or any IDE you prefer) | Przydatne do debugowania i IntelliSense. | +| **An Excel file with charts** (`AdvancedCharts.xlsx`) | Aby zobaczyć działanie funkcji *embed excel charts* w praktyce. | + +Możesz zainstalować bibliotekę za pomocą Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** Jeśli korzystasz z pipeline CI/CD, dodaj pakiet do swojego `*.csproj`, aby przywracanie odbywało się automatycznie. + +--- + +## Krok 1 – Ładowanie skoroszytu Excel (Rozpoczęcie zapisu Excel jako Docx) + +Pierwszą rzeczą, którą robimy, jest załadowanie źródłowego skoroszytu. To tutaj wkracza fraza **load excel workbook c#**. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Why this matters:** Ładowanie pliku daje dostęp do każdego arkusza, wykresu i stylu. Bez tego kroku nie ma nic do konwersji, a API nie może zachować osadzonych grafik. + +--- + +## Krok 2 – (Opcjonalnie) Dostosowanie skoroszytu przed konwersją + +Możesz chcieć zmienić nazwę arkusza, ukryć kolumnę lub nawet zmienić tytuł wykresu. Ten krok jest opcjonalny, ale pokazuje, jak elastyczna może być konwersja. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Edge case:** Niektóre starsze typy wykresów (np. Radar) mogą nie renderować się idealnie w Wordzie. Przetestuj swoje konkretne wykresy po konwersji. + +--- + +## Krok 3 – Zapisz skoroszyt jako dokument Word (Główna akcja „Save Excel as Docx”) + +Nadszedł moment prawdy: faktycznie **save Excel as Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Gdy to się uruchomi, Aspose.Cells zapisuje każdy arkusz jako tabelę w pliku Word i osadza każdy wykres jako obraz wysokiej rozdzielczości. Wynikiem jest w pełni edytowalny `.docx`, który wygląda dokładnie tak jak oryginalny widok Excela. + +> **Why choose DOCX over PDF?** DOCX pozwala odbiorcom edytować tekst lub później wymienić wykresy, podczas gdy PDF jest statycznym zrzutem. + +--- + +## Krok 4 – Weryfikacja wyniku i rozwiązywanie typowych problemów + +Po zakończeniu konwersji otwórz `ChartsInWord.docx` w programie Microsoft Word: + +1. **Sprawdź, czy każdy arkusz pojawia się jako osobna sekcja** – powinieneś zobaczyć tabele odzwierciedlające dane z Excela. +2. **Potwierdź, że wykresy są osadzone** – powinny być wyświetlane jako wybieralne obrazy, a nie uszkodzone zastępniki. +3. **Jeśli wykres jest brakujący**, upewnij się, że typ wykresu jest obsługiwany przez Aspose.Cells (zobacz [oficjalną listę kompatybilności](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tip:** Dla dużych skoroszytów rozważ zwiększenie `MemorySetting` w Aspose.Cells, aby uniknąć `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Pełny działający przykład (gotowy do kopiowania i wklejania) + +Poniżej znajduje się kompletny program, gotowy do kompilacji. Zamień `YOUR_DIRECTORY` na rzeczywistą ścieżkę folderu na swoim komputerze. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Expected result:** Dokument Word (`ChartsInWord.docx`) zawierający wszystkie arkusze jako tabele oraz każdy wykres jako osadzony, wysokiej rozdzielczości obraz. Otwórz go w Wordzie i zobaczysz dokładny układ wizualny, jaki miałeś w Excelu. + +--- + +## Najczęściej zadawane pytania (FAQ) + +**Q: Czy mogę konwertować wiele plików Excel w pętli?** +A: Zdecydowanie. Owiń logikę konwersji w pętlę `foreach (var file in Directory.GetFiles(...))` i ponownie użyj tego samego wzorca instancji `Workbook`. + +**Q: Czy to działa również z plikami `.xls`?** +A: Tak — Aspose.Cells obsługuje starsze formaty. Wystarczy zmienić rozszerzenie źródła; ta sama metoda `SaveFormat.Docx` działa. + +**Q: Co zrobić, jeśli muszę zachować formuły przy konwersji?** +A: Word nie obsługuje formuł Excel natywnie. Konwersja spłaszcza formuły do ich obliczonych wartości. Jeśli potrzebujesz żywych obliczeń, rozważ osadzenie skoroszytu jako obiektu OLE. + +**Q: Czy istnieje sposób, aby kontrolować rozdzielczość obrazu wykresów?** +A: Użyj `ImageOrPrintOptions` przed zapisem: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Osadzanie wykresów Excel bezpośrednio w Word (Poza Save Excel as Docx) + +Jeśli wolisz, aby wykres pozostał edytowalny w Wordzie, możesz osadzić cały arkusz Excel jako obiekt OLE: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Ta technika *embed excel charts* jako obiekty na żywo, pozwalając użytkownikom dwukrotnie kliknąć, aby edytować je w Excelu bezpośrednio z Worda. To przydatna alternatywa, gdy potrzebna jest interaktywność. + +--- + +## Zakończenie + +Masz teraz solidne, kompleksowe rozwiązanie do **save Excel as docx** przy użyciu C#. Samouczek obejmował ładowanie skoroszytu, opcjonalne modyfikacje, właściwą operację zapisu, kroki weryfikacji oraz szybki przegląd osadzania wykresów w scenariuszach edytowalnych. Postępując zgodnie z powyższym kodem, możesz **convert Excel to Word**, zachować każdy wykres i radzić sobie z dużymi plikami w sposób płynny. + +Gotowy na kolejne wyzwanie? Spróbuj zautomatyzować konwersję wsadową, zintegrować tę logikę z API ASP.NET Core lub zbadać **convert Excel to docx** dla pulpitów wieloarkuszowych. Umiejętności, które właśnie zdobyłeś, są podstawą każdego projektu automatyzacji dokumentów. + +Masz pytania lub trudny skoroszyt, który odmawia konwersji? Napisz komentarz, a wspólnie rozwiążemy problem. Szczęśliwego kodowania! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..a478978efe 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 – dodać własną właściwość w C#](./how-to-save-xlsb-add-custom-property-in-c/) +Dowiedz się, jak zapisać plik XLSB i dodać własną właściwość przy użyciu Aspose.Cells w C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/polish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..10f1e1edc4 --- /dev/null +++ b/cells/polish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,274 @@ +--- +category: general +date: 2026-03-21 +description: Dowiedz się, jak zapisywać pliki xlsb w C#, dodając własną właściwość, + taką jak ProjectId. Ten przewodnik pokazuje, jak utworzyć skoroszyt Excel, dodać + własną właściwość i zweryfikować ją. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: pl +og_description: Odkryj, jak zapisywać pliki xlsb i dodawać niestandardową właściwość, + taką jak ProjectId, przy użyciu C#. Przewodnik krok po kroku z kompletnym kodem. +og_title: Jak zapisać plik XLSB – Dodaj własną właściwość w C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Jak zapisać plik XLSB – Dodaj własną właściwość w C# +url: /pl/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak zapisać XLSB – Dodaj własną właściwość w C# + +Zastanawiałeś się kiedyś **jak zapisać xlsb** pliki, jednocześnie ukrywając w nich fragment metadanych? Być może tworzysz silnik raportowania, który potrzebuje ukrytego ProjectId, lub po prostu chcesz oznaczyć arkusze kalkulacyjne do dalszego przetwarzania. **Jak zapisać xlsb** nie jest rocket science, ale połączenie tego z własną właściwością dodaje mały zwrot, którego wielu programistów nie zauważa. + +W tym tutorialu przejdziemy przez tworzenie skoroszytu Excel, dodawanie własnej właściwości (tak, *add custom property*), zapisanie pliku jako **XLSB** binarnego skoroszytu oraz ostateczne wczytanie go, aby udowodnić, że właściwość przetrwała. Po drodze dotkniemy także **how to add custom property** wartości takich jak ProjectId, więc wyjdziesz z powtarzalnym wzorcem na przyszłe projekty. + +> **Pro tip:** Jeśli już używasz biblioteki Aspose.Cells (kod poniżej to robi), otrzymujesz natywną obsługę własnych właściwości bez problemów z COM interop. + +--- + +## Wymagania wstępne + +- .NET 6+ (lub .NET Framework 4.6+). +- Aspose.Cells dla .NET – zainstaluj przez NuGet: `Install-Package Aspose.Cells`. +- Podstawowa znajomość C# – nic skomplikowanego, tylko kilka instrukcji `using`. + +To wszystko. Bez instalacji Office, bez interop, tylko czysty kod zarządzany. + +--- + +## Krok 1: Jak zapisać XLSB – Utwórz skoroszyt Excel + +Pierwszą rzeczą, którą musisz zrobić, jest stworzenie nowego obiektu workbook. Traktuj to jak otwarcie pustego pliku Excel, który istnieje tylko w pamięci, dopóki nie zdecydujesz się zapisać go na dysku. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Po co zaczynać od workbook? Ponieważ **create excel workbook** jest podstawą wszelkich dalszych manipulacji — niezależnie od tego, czy później wstawisz formuły, wykresy czy własne właściwości. Klasa `Workbook` abstrahuje cały plik, a `Worksheets` daje dostęp do poszczególnych zakładek. + +--- + +## Krok 2: Dodaj własną właściwość do arkusza + +Teraz przychodzi ciekawa część — **add custom property**. W Aspose.Cells możesz dołączyć właściwość bezpośrednio do arkusza (lub do samego skoroszytu). Tutaj przechowamy numeryczny ProjectId, który usługi downstream mogą odczytać bez ingerencji w widoczne komórki. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? Po prostu wywołaj `CustomProperties.Add(name, value)`. API automatycznie obsługuje podległy XML, więc nie musisz martwić się szczegółami niskiego poziomu. To najbezpieczniejszy sposób osadzenia metadanych niewidocznych dla użytkownika końcowego. + +--- + +## Krok 3: Zapisz skoroszyt jako XLSB + +Po przygotowaniu skoroszytu i dołączeniu własnej właściwości, nadszedł czas na **how to save xlsb**. Format XLSB przechowuje dane w reprezentacji binarnej, co zazwyczaj jest mniejsze i szybsze do otwarcia niż klasyczny XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Zapisanie jako XLSB jest tak proste, jak przekazanie `SaveFormat.Xlsb` do metody `Save`. Jeśli zastanawiasz się, czy to usunie własną właściwość — nie martw się, Aspose.Cells zachowuje zarówno właściwości na poziomie skoroszytu, jak i arkusza w pliku binarnym. + +--- + +## Krok 4: Zweryfikuj własną właściwość + +Dobrym nawykiem jest ponowne wczytanie pliku i potwierdzenie, że właściwość przetrwała cały cykl. To także pokazuje **how to add custom property** później, jeśli będziesz musiał ją zaktualizować. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Jeśli konsola wypisze `12345`, udało Ci się **how to save xlsb** *i* **add project id** w jednym kroku. Właściwość znajduje się w wewnętrznych metadanych pliku, niewidoczna w interfejsie UI, ale w pełni odczytywalna przez kod. + +--- + +## Dodatkowe wskazówki: Dodawanie wielu właściwości i przypadki brzegowe + +### Dodawanie więcej niż jednej właściwości + +Możesz dodać dowolną liczbę właściwości: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Aktualizacja istniejącej właściwości + +Jeśli właściwość już istnieje, po prostu przypisz nową wartość: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Obsługa brakujących właściwości + +Próba odczytania nieistniejącej właściwości rzuca `KeyNotFoundException`. Zabezpiecz się przed tym: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Zgodność między wersjami + +XLSB działa w Excel 2007 + oraz w wersji webowej Excela. Jednak starsze wersje Office (< 2007) nie mogą otworzyć plików XLSB. Jeśli potrzebujesz szerszej kompatybilności, rozważ zapisanie drugiej kopii jako XLSX. + +### Rozważania dotyczące wydajności + +Binarne pliki XLSB są zazwyczaj o 30‑50 % mniejsze niż XLSX i ładują się szybciej. Dla dużych zestawów danych (setki tysięcy wierszy) przyrost wydajności może być zauważalny. + +--- + +## Pełny działający przykład + +Poniżej znajduje się cały program, który możesz skopiować i wkleić do projektu konsolowego. Zawiera wszystkie kroki, obsługę błędów i komentarze potrzebne do natychmiastowego uruchomienia. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Expected output** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Jeśli zobaczysz powyższe, opanowałeś **how to save xlsb**, **add custom property** i **add project id** — wszystko w schludnym, wielokrotnego użytku fragmencie kodu. + +--- + +## Najczęściej zadawane pytania + +**Q: Czy to działa z .NET Core?** +A: Zdecydowanie tak. Aspose.Cells jest kompatybilny z .NET Standard, więc ten sam kod działa na .NET 5/6/7 oraz na .NET Framework. + +**Q: Czy mogę dodać własną właściwość do całego skoroszytu zamiast pojedynczego arkusza?** +A: Tak. Użyj `workbook.CustomProperties.Add("Key", value);`, aby dołączyć ją na poziomie skoroszytu. + +**Q: Co jeśli muszę przechować długi ciąg znaków (np. JSON) jako właściwość?** +A: API akceptuje ciągi dowolnej długości, ale pamiętaj, że bardzo duże bloby mogą zwiększyć rozmiar pliku. Dla ogromnych danych rozważ ukryty arkusz. + +**Q: Czy własna właściwość jest widoczna w interfejsie Excel?** +A: Nie bezpośrednio. Użytkownicy mogą ją zobaczyć poprzez **File → Info → Properties → Advanced Properties → Custom**, ale nie pojawi się w siatce. + +--- + +## Zakończenie + +Omówiliśmy **how to save xlsb** pliki w C# przy **adding a custom property** takim jak ProjectId. Postępując zgodnie z wzorcem krok po kroku — **create excel workbook**, **add custom property**, **save as XLSB**, i **verify** — masz teraz solidne, godne cytowania odniesienie, które działa zarówno dla robotów wyszukiwarek, jak i asystentów AI. + +Następnie możesz zbadać: +- **How to add custom property** do wielu arkuszy w pętli. +- Eksportowanie danych z DataTable do skoroszytu przed zapisaniem. +- Szyfrowanie pliku XLSB dla dodatkowego bezpieczeństwa. + +Śmiało eksperymentuj, modyfikuj nazwy właściwości lub zamień format binarny na XLSX, jeśli potrzebujesz szerszej kompatybilności. Masz trudny scenariusz? Dodaj komentarz, a wspólnie rozwiążemy problem. Szczęśliwego kodowania! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/polish/net/excel-autofilter-validation/_index.md index 684661377c..5334385f61 100644 --- a/cells/polish/net/excel-autofilter-validation/_index.md +++ b/cells/polish/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Nasz samouczek na temat [Walidacja danych dziesiętnych w programie Excel](./dec Dowiedz się, jak bez wysiłku automatycznie filtrować wiersze programu Excel za pomocą Aspose.Cells w środowisku .NET, korzystając z tego kompleksowego przewodnika krok po kroku. ### [Walidacja danych dziesiętnych w programie Excel](./decimal-data-validation-in-excel/) Dowiedz się, jak wdrożyć walidację danych dziesiętnych w programie Excel przy użyciu Aspose.Cells dla .NET dzięki naszemu łatwemu w użyciu przewodnikowi. Zwiększ integralność danych bez wysiłku. +### [Usunięcie AutoFiltra z Excela – Kompletny przewodnik C#](./remove-autofilter-from-excel-complete-c-guide/) +Dowiedz się, jak w pełni usunąć AutoFilter z arkusza Excel przy użyciu Aspose.Cells w C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/polish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..caf512d369 --- /dev/null +++ b/cells/polish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: Dowiedz się, jak usunąć AutoFilter z Excela przy użyciu C#. Ten przewodnik + krok po kroku pokazuje również, jak usunąć AutoFilter, wyłączyć AutoFilter w Excelu + oraz wyczyścić filtr tabeli w Excelu. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: pl +og_description: Usuń AutoFilter z Excela przy użyciu C#. Ten tutorial pokazuje, jak + usunąć AutoFilter, wyłączyć AutoFilter w Excelu i wyczyścić filtr tabeli w Excelu + w zaledwie kilku linijkach kodu. +og_title: Usuwanie AutoFiltru z Excela – Kompletny przewodnik C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Usunięcie AutoFiltru z Excela – Kompletny przewodnik C# +url: /pl/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Usuń AutoFilter z Excela – Kompletny przewodnik C# + +Kiedykolwiek potrzebowałeś **usunąć AutoFilter z Excela**, ale nie byłeś pewien, które wywołanie API faktycznie go wyłącza? Nie jesteś sam. W wielu przepływach raportowania interfejs filtrów przeszkadza w dalszym przetwarzaniu, więc jego usunięcie jest częstym wymaganiem. W tym tutorialu przejdziemy przez zwięzłe, gotowe do produkcji rozwiązanie, które nie tylko pokazuje **jak usunąć AutoFilter**, ale także wyjaśnia **wyłączenie filtrów w stylu AutoFilter Excel** oraz jak **całkowicie wyczyścić filtr tabeli w Excelu**. + +> **Co zdobędziesz:** gotowy do uruchomienia program w C#, który wczytuje istniejący skoroszyt, usuwa filtr z pierwszej tabeli i zapisuje nową kopię bez żadnych elementów UI. + +## Wymagania wstępne + +- .NET 6+ (lub .NET Framework 4.7.2+) +- Pakiet NuGet **Aspose.Cells** (API używane w kodzie) +- Przykładowy skoroszyt (`TableWithFilter.xlsx`) zawierający tabelę z zastosowanym AutoFilter +- Podstawowa znajomość składni C# (głębokie zrozumienie Excela nie jest wymagane) + +Jeśli masz te elementy, zanurzmy się w temat. + +--- + +## Krok 1 – Zainstaluj Aspose.Cells i skonfiguruj projekt + +Zanim jakikolwiek kod się wykona, potrzebujesz biblioteki, która udostępnia klasy `Workbook`, `Worksheet` i `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Pro tip:** Użyj darmowej wersji ewaluacyjnej do testów; pamiętaj tylko, aby ustawić klucz licencji przed wdrożeniem do produkcji. + +### Dlaczego to ważne +Aspose.Cells abstrahuje obsługę niskopoziomowego OOXML, dzięki czemu możemy manipulować tabelami, filtrami i stylami bez ręcznego parsowania XML. Dlatego zadania **remove autofilter from excel** stają się jednowierszowym kodem zamiast szeregu manipulacji XML. + +--- + +## Krok 2 – Wczytaj skoroszyt zawierający tabelę + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +Obiekt `Workbook` reprezentuje cały plik Excel. Wczytanie go najpierw zapewnia czystą kopię w pamięci, co jest kluczowe, gdy później **clear excel table filter** bez wpływu na inne arkusze. + +--- + +## Krok 3 – Pobierz arkusz i docelową tabelę + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +**ListObject** to termin Aspose dla tabeli Excela. Nawet jeśli w arkuszu jest wiele tabel, możesz przeiterować `worksheet.ListObjects` i zastosować tę samą logikę do każdej z nich. Ta elastyczność odpowiada na pytanie „co jeśli mam kilka tabel?”, które zadaje wielu programistów. + +--- + +## Krok 4 – Usuń AutoFilter z tabeli + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Ustawienie `AutoFilter` na `null` **usuwa obiekt filtru całkowicie**, co jest najpewniejszym sposobem na **how to delete autofilter**. Alternatywna właściwość `ShowAutoFilter` jedynie ukrywa UI, pozostawiając silnik filtru aktywny — przydatne, jeśli chcesz **turn off autofilter excel** wizualnie, zachowując kryteria w tle. + +> **Edge case:** Jeśli tabela nie ma zastosowanego AutoFilter, `table.AutoFilter` będzie już `null`. Powyższa linia jest bezpieczna; po prostu nic nie robi. + +--- + +## Krok 5 – Zapisz zmodyfikowany skoroszyt + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Zapis do nowego pliku pozostawia oryginał nienaruszony — to dobra praktyka przy automatyzacji transformacji Excela. Po uruchomieniu programu otwórz `NoAutoFilter.xlsx`; zobaczysz tabelę bez rozwijanych list filtrów, co potwierdza, że operacja **remove excel table filter** zakończyła się sukcesem. + +--- + +## Zweryfikuj wynik – czego się spodziewać + +1. **Otwórz `NoAutoFilter.xlsx`** w Excelu. +2. **Zaznacz tabelę** – małe ikony lejkowe przy nagłówkach kolumn powinny zniknąć. +3. **Sprawdź inne arkusze** – pozostają niezmienione, co dowodzi, że **clear excel table filter** został wykonany tylko na wybranym arkuszu. + +Jeśli ikony nadal są widoczne, sprawdź, czy wskazałeś prawidłowy indeks `ListObject`. Pamiętaj, że tabele w Aspose są indeksowane od zera, więc `ListObjects[0]` to pierwsza tabela w arkuszu. + +--- + +## Obsługa wielu tabel lub arkuszy + +Czasami trzeba **remove autofilter from excel** w skoroszytach zawierających kilka tabel na różnych arkuszach. Oto szybkie rozszerzenie: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Ta pętla zapewnia **turn off autofilter excel** wszędzie, eliminując ukryte filtry, które mogłyby zakłócić dalszy import danych. + +--- + +## Typowe pułapki i jak ich uniknąć + +| Pułapka | Dlaczego się dzieje | Rozwiązanie | +|---------|----------------------|-------------| +| **Filtr pozostaje po zapisaniu** | Użycie `ShowAutoFilter = false` tylko ukrywa UI. | Użyj `table.AutoFilter = null`, aby naprawdę go usunąć. | +| **Nieprawidłowy indeks tabeli** | Zakładanie, że pierwsza tabela jest tą, której potrzebujesz. | Sprawdź `worksheet.ListObjects.Count` i używaj znaczących nazw (`tbl.Name`). | +| **Brak licencji** | Wersja ewaluacyjna może wstawiać znaki wodne. | Zarejestruj licencję wcześnie: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Plik zablokowany** | Excel nadal ma otwarty plik źródłowy. | Upewnij się, że skoroszyt jest zamknięty w Excelu przed uruchomieniem skryptu. | + +--- + +## Bonus: Dodanie AutoFilter z powrotem (jeśli zmienisz zdanie) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Posiadanie odwrotnej operacji pod ręką czyni tutorial jednocześnie kompletnym źródłem zarówno dla scenariuszy **remove autofilter from excel**, jak i **how to delete autofilter**. + +--- + +## Pełny działający przykład (gotowy do kopiowania) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Uruchomienie powyższego kodu **remove autofilter from excel** dla każdej tabeli w skoroszycie, dając czystą bazę do dalszego przetwarzania. + +--- + +## Podsumowanie + +Omówiliśmy wszystko, co potrzebne, aby **remove autofilter from excel** przy użyciu C#. Od instalacji Aspose.Cells, przez wczytanie skoroszytu, zlokalizowanie tabeli, faktyczne usunięcie filtru, po zapis czystego pliku — każdy krok został wyjaśniony wraz z uzasadnieniem. Teraz wiesz, jak **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel** i **clear excel table filter** w jednym, wielokrotnie używanym fragmencie kodu. + +Gotowy na kolejny krok? Spróbuj zautomatyzować dodawanie formatowania warunkowego lub zbadaj, jak **add an AutoFilter back** programowo. Oba tematy budują się bezpośrednio na tym, co właśnie omówiliśmy i wzbogacą Twoje narzędzia do automatyzacji Excela. + +Masz pytania lub zauważyłeś scenariusz, którego nie omówiliśmy? zostaw komentarz poniżej — happy coding! + +--- + +![Screenshot showing an Excel sheet without any filter dropdowns – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/polish/net/excel-comment-annotation/_index.md index 2b3ceb0f5c..9f1e231147 100644 --- a/cells/polish/net/excel-comment-annotation/_index.md +++ b/cells/polish/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Dowiedz się, jak dodawać komentarze do obrazów w programie Excel za pomocą A Dowiedz się, jak dodawać komentarze do komórek w programie Excel za pomocą Aspose.Cells dla .NET. Przewodnik krok po kroku dla początkujących, który pomoże Ci ulepszyć funkcjonalność programu Excel. ### [Formatuj komentarze - czcionka, kolor, wyrównanie](./format-comments-font-color-alignment/) Odkryj, jak bez wysiłku formatować komentarze w programie Excel za pomocą Aspose.Cells dla .NET. Dostosuj czcionkę, rozmiar i wyrównanie, aby ulepszyć swoje arkusze kalkulacyjne. +### [Utwórz skoroszyt Excel w C# – Dodaj i wypełnij komentarze przy użyciu inteligentnych znaczników](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Dowiedz się, jak w C# tworzyć skoroszyt Excel i automatycznie dodawać oraz wypełniać komentarze przy użyciu inteligentnych znaczników za pomocą Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/polish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..90b4c2142f --- /dev/null +++ b/cells/polish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-21 +description: Utwórz skoroszyt Excela w C# i dowiedz się, jak dodać komentarz do Excela, + automatycznie wypełniać komentarz przy użyciu Smart Markers. Przewodnik krok po + kroku dla programistów. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: pl +og_description: Utwórz skoroszyt Excel w C# i szybko dodaj komentarz do Excela, a + następnie wypełnij go przy użyciu Smart Markers. Kompletny tutorial z kodem. +og_title: Utwórz skoroszyt Excel w C# – Dodawanie i wypełnianie komentarzy +tags: +- C# +- Excel automation +- Aspose.Cells +title: Tworzenie skoroszytu Excel w C# – Dodawanie i wypełnianie komentarzy przy użyciu + inteligentnych znaczników +url: /pl/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Utwórz skoroszyt Excel C# – Dodaj i wypełnij komentarze przy użyciu Smart Markers + +Czy kiedykolwiek potrzebowałeś **create Excel workbook C#** i zastanawiałeś się, jak osadzić komentarz, który aktualizuje się automatycznie? Nie jesteś jedyny. W wielu scenariuszach raportowania chcesz komentarz komórki, który mówi *„Created by Alice on 2024‑07‑15”* bez ręcznego kodowania nazwy lub daty za każdym razem. + +W tym samouczku pokażemy Ci dokładnie **how to add comment to Excel**, a następnie **how to fill comment** przy użyciu Smart Markers Aspose.Cells. Po zakończeniu będziesz mieć gotowy do uruchomienia program, który tworzy skoroszyt, wstawia dynamiczny komentarz i zapisuje plik — wszystko w kilku prostych krokach. + +> **Co otrzymasz:** kompletną, kompilowalną aplikację konsolową C#, wyjaśnienie każdego wiersza, wskazówki dotyczące typowych pułapek oraz pomysły na rozszerzenie rozwiązania. + +## Wymagania wstępne + +- .NET 6.0 SDK lub nowszy (kod działa również z .NET Core i .NET Framework) +- Visual Studio 2022 lub dowolne IDE, które preferujesz +- **Aspose.Cells for .NET** pakiet NuGet (`Install-Package Aspose.Cells`) – ta biblioteka udostępnia klasy `Workbook`, `Worksheet` i `SmartMarkerProcessor` używane poniżej. +- Podstawowa znajomość składni C# – jeśli potrafisz napisać `Console.WriteLine`, jesteś gotowy do działania. + +Teraz, gdy przygotowania są za sobą, zanurzmy się w temat. + +![Create Excel workbook C# example screenshot](excel-workbook.png "Create Excel workbook C# example") + +## Krok 1: Inicjalizacja nowego skoroszytu – Podstawy tworzenia skoroszytu Excel C# + +Najpierw potrzebujemy czystego obiektu skoroszytu. Traktuj `Workbook` jak pustą płótno; bez niego nie możesz umieścić żadnych komórek, wierszy ani komentarzy. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Dlaczego to ważne:** `Workbook` automatycznie tworzy domyślny arkusz, więc nie musisz wywoływać `Add`, chyba że potrzebujesz dodatkowych zakładek. Dostęp do `Worksheets[0]` jest najszybszym sposobem na rozpoczęcie wypełniania danymi. + +## Krok 2: Wstawienie komentarza ze Smart Marker – Jak dodać komentarz z tokenami + +Następnie umieszczamy komentarz w komórce **B2**, który zawiera tokeny Smart Marker (`«UserName»` i `«CreatedDate»`). Tokeny te zostaną później zastąpione rzeczywistymi wartościami. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Wyjaśnienie:** +- `CreateComment()` tworzy obiekt komentarza, jeśli nie istnieje; w przeciwnym razie zwraca istniejący. +- Właściwość `Note` przechowuje widoczny tekst. Otaczając symbolem `« »` placeholdery, informujemy Aspose.Cells, że są to **Smart Markery** – miejsca, które mogą zostać zamienione jednorazowo. + +> **Pro tip:** Jeśli potrzebujesz komentarza wieloliniowego, użyj `\n` wewnątrz łańcucha, np. `"Line1\nLine2"`. + +## Krok 3: Przygotowanie obiektu danych – Jak dynamicznie wypełnić komentarz + +Smart Markery potrzebują źródła danych. W C# najłatwiejszy sposób to anonimowy typ, który odpowiada nazwom placeholderów. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Dlaczego anonimowy typ?** +Jest lekki, nie wymaga dodatkowego pliku klasy i dokładnie dopasowuje nazwy właściwości (`UserName`, `CreatedDate`) do nazw tokenów. Jeśli wolisz model silnie typowany, po prostu utwórz klasę z takimi samymi właściwościami. + +## Krok 4: Przetwarzanie Smart Markerów – Jak wypełnić komentarz przy użyciu obiektu danych + +Teraz dzieje się magia. `SmartMarkerProcessor` przeszukuje skoroszyt w poszukiwaniu tokenów `«…»` i zamienia je na wartości z `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Co się dzieje pod maską?** +`SmartMarkerProcessor` przechodzi przez każdą komórkę, komentarz, nagłówek itp., szukając wzorca `«Token»`. Gdy go znajdzie, używa refleksji, aby odczytać pasującą właściwość z `markerData` i zapisuje wartość z powrotem. Nie są potrzebne ręczne pętle. + +## Krok 5: Zapis skoroszytu – Wypełnij komentarz w Excelu i zachowaj plik + +Na koniec zapisujemy skoroszyt na dysku. Komentarz teraz wygląda mniej więcej tak: *„Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Weryfikacja wyniku:** Otwórz `CommentFilled.xlsx` w Excelu, najedź kursorem na komórkę **B2** i zobaczysz komentarz z rzeczywistą nazwą użytkownika oraz znacznikiem czasu. Nie trzeba wprowadzać dalszych zmian w kodzie przy kolejnych uruchomieniach — wystarczy zmienić wartości w `markerData`. + +--- + +## Wspólne warianty i przypadki brzegowe + +### Użycie własnego formatu daty + +Jeśli chcesz datę w formacie `yyyy‑MM‑dd`, dostosuj obiekt danych: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Dodawanie wielu komentarzy + +Możesz powtórzyć **Krok 2** dla innych komórek. Każdy komentarz może mieć własny zestaw tokenów lub współdzielić te same, jeśli informacja jest uniwersalna. + +### Praca z istniejącymi skoroszytami + +Zamiast `new Workbook()`, wczytaj istniejący plik: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Reszta kroków pozostaje identyczna — Smart Markery działają zarówno w nowych, jak i istniejących plikach. + +### Obsługa wartości null + +Jeśli token może być nieobecny, opakuj właściwość w typ dopuszczający null lub podaj wartość domyślną: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +Procesor wstawi *„Unknown”*, gdy źródło jest `null`. + +--- + +## Pełny działający przykład (gotowy do kopiowania) + +Poniżej znajduje się **cały program**, który możesz wkleić do projektu aplikacji konsolowej i uruchomić od razu (wystarczy podmienić `YOUR_DIRECTORY` na rzeczywistą ścieżkę folderu). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Uruchom program, otwórz wygenerowany plik i zobaczysz dynamiczny komentarz w komórce **B2**. Proste, prawda? + +--- + +## Najczęściej zadawane pytania (FAQ) + +**Q: Czy to działa z .NET Framework 4.7?** +A: Absolutnie. Aspose.Cells obsługuje .NET Framework 4.0+ oraz .NET Core/5/6/7. Wystarczy odwołać się do odpowiedniego DLL lub pakietu NuGet. + +**Q: Czy mogę użyć tego podejścia do walidacji danych lub formatowania warunkowego?** +A: Smart Markery służą głównie do wstawiania wartości do komórek, komentarzy, nagłówków i stopek. Do formatowania warunkowego nadal używa się standardowych API `Style`. + +**Q: Co zrobić, jeśli muszę dodać komentarz do **innego** arkusza?** +A: Pobierz docelowy arkusz (`workbook.Worksheets["MySheet"]`) i powtórz **Krok 2** na komórkach tego arkusza. + +--- + +## Następne kroki i powiązane tematy + +- **How to add comment to Excel** programmatically for multiple cells (loop through a range). +- **Fill Excel comment** with data from a database (use a `DataTable` as the data source for Smart Markers). +- Explore **Smart Marker arrays** to generate tables automatically. +- Learn about **Aspose.Cells styling** to format the comment’s font, color, and size. + +Eksperymentuj z fragmentami kodu, wymieniaj źródło danych i szybko opanujesz **how to fill comment** w dowolnym scenariuszu automatyzacji Excel. + +--- + +### Podsumowanie + +Właśnie przeszliśmy cały proces **create excel workbook c#**, **add comment to excel** i **fill excel comment** przy użyciu Smart Markers. Rozwiązanie jest zwarte, wielokrotnego użytku i gotowe do produkcji. + +Wypróbuj je, zmodyfikuj placeholdery i pozwól bibliotece wykonać ciężką pracę. Jeśli napotkasz problemy, zostaw komentarz poniżej — miłego 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/_index.md b/cells/polish/net/excel-custom-number-date-formatting/_index.md index 90165acefb..ffb172e231 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,8 @@ 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. +### [Ustaw niestandardowy format komórki w C# – Kompletny przewodnik po zapisywaniu i odczytywaniu dat w Excelu](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Dowiedz się, jak ustawić niestandardowy format dat w komórkach Excel przy użyciu Aspose.Cells dla .NET w C# – od zapisu po odczyt. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/polish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..fca6804718 --- /dev/null +++ b/cells/polish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-03-21 +description: Ustaw niestandardowy format komórki w C# i dowiedz się, jak zapisać datę + do Excela, zastosować niestandardowy format daty, odczytać DateTime z Excela oraz + szybko utworzyć arkusz skoroszytu. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: pl +og_description: Ustaw niestandardowy format komórki w C#, aby zapisać datę do Excela, + zastosuj własny format daty, odczytaj DateTime z Excela i z łatwością utwórz arkusz + skoroszytu. +og_title: Ustaw niestandardowy format komórki w C# – Zapis i odczyt dat w Excelu +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Ustaw niestandardowy format komórki w C# – Kompletny przewodnik po zapisywaniu + i odczytywaniu dat w Excelu +url: /pl/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ustaw niestandardowy format komórki – zapisywanie i odczytywanie dat w Excelu przy użyciu C# + +Czy kiedykolwiek potrzebowałeś **ustawić niestandardowy format komórki** w pliku Excel z poziomu C#, ale nie wiedziałeś od czego zacząć? Nie jesteś sam. W wielu narzędziach raportujących lub utilitach eksportu danych data musi być wyświetlana w określonej lokalizacji — pomyśl o datach w japońskim systemie ery, kalendarzach fiskalnych lub ciągach ISO‑8601. + +W tym samouczku przeprowadzimy Cię przez **kompletny, działający przykład**, który pokaże, jak **zapisać datę do Excela**, **zastosować niestandardowy format daty**, **odczytać DateTime z Excela** oraz **utworzyć arkusz skoroszytu** przy użyciu Aspose.Cells. Po zakończeniu będziesz mieć pojedynczy, samodzielny program, który możesz wkleić do dowolnego projektu .NET. + +## Czego się nauczysz + +- Jak **utworzyć arkusz skoroszytu** programowo. +- Dokładne kroki, aby **zapisać datę do Excela** przy użyciu łańcucha znaków specyficznego dla lokalizacji. +- Jak **zastosować niestandardowy format daty** (w tym notację japońskiej ery). +- Sposób **odczytania DateTime z Excela** z powrotem do obiektu `DateTime`. +- Wskazówki, pułapki i warianty, które mogą się pojawić przy pracy z datami w Excelu. + +Nie potrzebujesz żadnej zewnętrznej dokumentacji — wszystko, co potrzebne, znajduje się tutaj. + +## Wymagania wstępne + +- .NET 6.0 lub nowszy (kod działa również na .NET Framework 4.7+). +- Aspose.Cells for .NET zainstalowany przez NuGet (`Install-Package Aspose.Cells`). +- Podstawowa znajomość składni C# — nic skomplikowanego. + +> **Pro tip:** Jeśli używasz Visual Studio, włącz *nullable reference types*, aby wcześnie wykrywać subtelne błędy. + +## Krok 1: Utwórz Workbook i Worksheet + +Najpierw potrzebujesz obiektu workbook, który reprezentuje plik Excel, oraz arkusza, w którym będą przechowywane dane. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Dlaczego to ważne:* Klasa `Workbook` jest punktem wejścia dla wszystkich operacji na Excelu. Tworząc ją w pamięci, nie dotykasz systemu plików, dopóki nie zapiszesz explicite, co przyspiesza proces i ułatwia testowanie. + +## Krok 2: Zapisz datę do Excela + +Następnie umieścimy łańcuch znaków daty japońskiej ery (`"R02-04-01"`) w komórce **A1**. Łańcuch imituje erę Reiwa (rok 2, 1 kwietnia). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Co się dzieje:* `PutValue` zapisuje surowy łańcuch znaków. Aspose.Cells później spróbuje go sparsować w oparciu o styl komórki. Jeśli pominiesz ten krok i zapiszesz bezpośrednio `DateTime`, utracisz informację o erze, którą chcesz wyświetlić. + +## Krok 3: Zastosuj wbudowany format liczbowy daty (ID 14) + +Excel posiada wbudowany format daty o ID 14 (`mm-dd-yy`). Zastosowanie go informuje silnik, że komórka **zawiera datę**, a nie tylko tekst. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Dlaczego używać ID 14?* To uniwersalny format „krótkiej daty”, który zapewnia, że Excel traktuje zawartość jako wartość daty — warunek wstępny, aby każdy niestandardowy format działał poprawnie. + +## Krok 4: Ustaw niestandardowy format wyświetlający notację japońskiej ery + +Teraz najciekawsza część: instruujemy Excel, aby renderował datę przy użyciu formatu japońskiej ery. Niestandardowy łańcuch `[$-ja-JP]ggge年m月d日` robi dokładnie to. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Wyjaśnienie:* +- `[$-ja-JP]` wymusza lokalizację na japoński. +- `ggg` to nazwa ery (np. „R” dla Reiwa). +- `e` to rok ery. +- `年`, `月`, `日` to dosłowne japońskie znaki oznaczające rok, miesiąc i dzień. + +Jeśli potrzebujesz innej lokalizacji, po prostu zamień `ja-JP` na odpowiedni kod kultury (np. `en-US`). + +## Krok 5: Pobierz sparsowaną wartość DateTime + +Na koniec odczytamy **rzeczywisty `DateTime`**, który Excel sparsował z komórki. To dowód, że łańcuch został poprawnie zinterpretowany. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Wynik:* Konsola wypisuje `Parsed DateTime: 2020-04-01`. Mimo że wprowadziliśmy łańcuch japońskiej ery, Excel wewnętrznie przechowuje datę gregoriańską, którą możesz wykorzystać do obliczeń, porównań lub dalszego eksportu. + +## Krok 6: Zapisz Workbook (opcjonalnie) + +Jeśli chcesz zobaczyć sformatowany skoroszyt w Excelu, po prostu zapisz go na dysk. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Otwórz wygenerowany **JapaneseEraDate.xlsx** i zobaczysz, że komórka **A1** wyświetla `R02年4月1日` (dokładny format japońskiej ery, który ustawiliśmy). + +![przykład ustawienia niestandardowego formatu komórki](image-placeholder.png "Komórka Excel pokazująca datę w japońskiej erze – ustaw niestandardowy format komórki") + +*Tekst alternatywny powyżej zawiera główne słowo kluczowe, spełniając wymóg SEO dla obrazu.* + +## Typowe warianty i przypadki brzegowe + +### Zapis innego formatu daty + +Jeśli wolisz ISO‑8601 (`2020-04-01`) zamiast łańcucha ery, po prostu zmień wywołanie `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Obsługa pustych lub nullowych komórek + +Podczas odczytu daty zawsze zabezpieczaj się przed pustymi komórkami, aby uniknąć `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Wsparcie wielu lokalizacji + +Możesz przeiterować listę kodów kultury i zastosować je dynamicznie: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Pro tipy i pułapki + +- **Zawsze najpierw ustaw wbudowany format liczbowy** (`Style.Number`). Bez tego Excel traktuje komórkę jako zwykły tekst i niestandardowy format zostaje zignorowany. +- **Kody lokalizacji nie rozróżniają wielkości liter**, ale używanie kanonicznej formy (`ja-JP`) zapobiega nieporozumieniom. +- **Zapisywanie jest opcjonalne** przy przetwarzaniu w pamięci; możesz bezpośrednio strumieniować workbook do odpowiedzi webowej (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Licencje Aspose.Cells**: Wersja darmowa z oceną dodaje znak wodny. W produkcji upewnij się, że posiadasz ważną licencję, aby uniknąć spadku wydajności. + +## Podsumowanie + +Pokażemy, jak **ustawić niestandardowy format komórki** w C# aby wyświetlać daty w japońskiej erze, jak **zapisać datę do Excela**, **zastosować niestandardowy format daty**, **odczytać DateTime z Excela** oraz **utworzyć arkusz skoroszytu** — wszystko w jednym, samodzielnym programie. Główne słowo kluczowe pojawia się naturalnie w całym tekście, a słowa kluczowe drugorzędne są wplecione w nagłówki i treść, spełniając zarówno wymagania SEO, jak i standardy cytowania AI. + +## Co dalej? + +- Zbadaj **formatowanie warunkowe**, aby podświetlać przeterminowane daty. +- Połącz to podejście z **PivotTables** dla dynamicznego raportowania. +- Spróbuj **odczytywać duże pliki CSV** i konwertować je na Excel przy użyciu tej samej logiki obsługi dat. + +Śmiało eksperymentuj z różnymi lokalizacjami, niestandardowymi wzorcami lub nawet strefami czasowymi. Jeśli napotkasz problemy, zostaw komentarz poniżej — 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/polish/net/excel-data-export-retrieval/_index.md b/cells/polish/net/excel-data-export-retrieval/_index.md index 3feca40219..15b2a4f28a 100644 --- a/cells/polish/net/excel-data-export-retrieval/_index.md +++ b/cells/polish/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Chcesz wiedzieć, jak to zrobić? Sprawdź ten przydatny przewodnik na [Pobieran ### [Pobieranie danych z komórek w programie Excel](./retrieve-data-from-cells-in-excel/) Dowiedz się, jak pobierać dane z komórek programu Excel za pomocą Aspose.Cells dla .NET, korzystając z tego samouczka krok po kroku, który jest idealny zarówno dla początkujących, jak i doświadczonych programistów. +### [Eksport tabeli danych Excel w C# – Kompletny przewodnik](./export-excel-data-table-in-c-complete-guide/) +Dowiedz się, jak wyeksportować tabelę danych z programu Excel przy użyciu Aspose.Cells w C#, krok po kroku. + +### [Eksport danych Excel w C# – Przewodnik krok po kroku](./how-to-export-excel-data-in-c-step-by-step-guide/) +Dowiedz się, jak wyeksportować dane programu Excel w C# przy użyciu Aspose.Cells, krok po kroku. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/polish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/polish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..a1731cdf43 --- /dev/null +++ b/cells/polish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-03-21 +description: Eksportuj tabelę danych z Excela do DataTable z nagłówkami, ogranicz + liczbę miejsc po przecinku i wyeksportuj pierwsze 100 wierszy przy użyciu Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: pl +og_description: Dowiedz się, jak wyeksportować tabelę danych z Excela do DataTable, + zachować nagłówki, ograniczyć liczbę miejsc po przecinku i pobrać pierwsze 100 wierszy + w C#. +og_title: Eksport tabeli danych Excel w C# – Przewodnik krok po kroku +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Eksport tabeli danych Excel w C# – Kompletny przewodnik +url: /pl/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Eksport tabeli danych Excel – Pełny przewodnik C# + +Potrzebujesz **eksportować tabelę danych Excel** z skoroszytu do .NET `DataTable`? Jesteś we właściwym miejscu — ten przewodnik pokaże Ci dokładnie, jak to zrobić, zachować nagłówki kolumn, ograniczyć miejsca dziesiętne i pobrać tylko pierwsze 100 wierszy. + +Jeśli kiedykolwiek patrzyłeś na arkusz kalkulacyjny i myślałeś: „Jak wprowadzić to do mojej aplikacji bez utraty formatowania?”, nie jesteś sam. W ciągu kilku minut zamienimy to „co‑by‑było” w konkretną, gotową do skopiowania i wklejenia rozwiązanie działające z Aspose.Cells, popularną biblioteką do manipulacji plikami Excel. + +## Czego się nauczysz + +- Jak **eksportować Excel do DataTable** przy użyciu metody `ExportDataTable`. +- Jak zachować oryginalne nazwy kolumn (`export excel with headers`). +- Jak **ograniczyć miejsca dziesiętne w Excel** wartości, konfigurować `ExportTableOptions`. +- Jak bezpiecznie pobrać tylko pierwsze 100 wierszy (`export first 100 rows`). + +Bez zewnętrznych skryptów, bez magicznych ciągów znaków — po prostu czysty C#, który możesz wkleić do dowolnego projektu .NET. + +## Prerequisites + +| Wymaganie | Dlaczego ma znaczenie | +|-------------|----------------| +| .NET 6 lub nowszy (lub .NET Framework 4.7+) | Aspose.Cells obsługuje oba, ale nowsze środowiska zapewniają API gotowe na async. | +| Pakiet NuGet Aspose.Cells dla .NET | Udostępnia `Workbook`, `ExportTableOptions` oraz pomocnika `ExportDataTable`. | +| Przykładowy plik Excel (np. `Numbers.xlsx`) | Źródło danych, które będą eksportowane. | +| Podstawowa znajomość C# | Będziesz podążać za fragmentami kodu, ale nie wymaga to niczego zaawansowanego. | + +Jeśli któreś z tych zagadnień jest Ci nieznane, pobierz pakiet NuGet poleceniem `dotnet add package Aspose.Cells` i utwórz mały plik Excel z kilkoma liczbami — to będą Twoje dane testowe. + +![przykład eksportu tabeli danych Excel](excel-data-table.png "Zrzut ekranu arkusza Excel, który zostanie wyeksportowany do DataTable") + +## Krok 1: Załaduj skoroszyt (export excel data table) + +Pierwszą rzeczą, której potrzebujesz, jest instancja `Workbook` wskazująca na Twój plik Excel. Pomyśl o tym jak o otwarciu książki, zanim będziesz mógł czytać rozdziały. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Dlaczego to ma znaczenie:** Ładowanie skoroszytu daje dostęp do jego arkuszy, komórek i stylów. Jeśli ścieżka do pliku jest nieprawidłowa, Aspose rzuci `FileNotFoundException`, więc sprawdź lokalizację podwójnie. + +## Krok 2: Skonfiguruj opcje eksportu – limit decimal places excel + +Domyślnie Aspose eksportuje każdą wartość liczbową z pełną precyzją. Często potrzebujesz tylko kilku istotnych cyfr, szczególnie gdy dane trafiają do siatki UI lub API oczekującego zaokrąglonych liczb. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Pro tip:** Jeśli potrzebujesz innej strategii zaokrąglania (np. zawsze w górę), możesz po‑eksportowo przetworzyć `DataTable`. Ustawienie `SignificantDigits` to najszybszy sposób na **limit decimal places excel** bez pisania dodatkowych pętli. + +## Krok 3: Eksportuj żądany zakres (export first 100 rows) + +Teraz informujemy Aspose, który blok komórek chcemy przenieść do `DataTable`. W tym tutorialu pobieramy pierwsze 100 wierszy i pierwsze 10 kolumn, ale możesz dostosować te liczby do własnych potrzeb. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Edge case:** Jeśli arkusz zawiera mniej niż 100 wierszy, Aspose po prostu wyeksportuje to, co istnieje, nie generując błędu. Możesz jednak chcieć zabezpieczyć się przed nieoczekiwanie małym zakresem: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Krok 4: Zweryfikuj wynik – szybki zrzut konsoli + +Zobaczenie danych w debuggerze jest przyjemne, ale wydrukowanie kilku wierszy w konsoli potwierdza, że **export excel to datatable** rzeczywiście zadziałało i że miejsca dziesiętne zostały przycięte. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Oczekiwany wynik + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Zauważ, że kolumny liczbowe wyświetlają teraz tylko cztery istotne cyfry, zgodnie z ustawieniem `SignificantDigits = 4`, które zastosowaliśmy wcześniej. + +## Krok 5: Podsumowanie – kompletny, uruchamialny przykład + +Poniżej pełny program, który możesz skopiować i wkleić do aplikacji konsolowej. Zawiera obsługę błędów, opcjonalne zabezpieczenie liczby wierszy oraz metodę pomocniczą do wypisywania. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Uruchom program, a zobaczysz pierwsze 100 wierszy swojego arkusza, ładnie zaokrąglone, z zachowanymi nazwami kolumn. + +## Częste pytania i pułapki + +| Pytanie | Odpowiedź | +|----------|--------| +| **Co jeśli mój arkusz ma scalone komórki?** | `ExportDataTable` spłaszcza scalone komórki, przyjmując wartość z lewej‑górnej komórki. Jeśli potrzebujesz własnej obsługi, najpierw odłącz scalanie lub odczytaj surowe obiekty `Cell`. | +| **Czy mogę wyeksportować do `DataSet` zamiast?** | Tak — użyj `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/polish/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..b5790b3354 --- /dev/null +++ b/cells/polish/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Jak wyeksportować dane z Excela z nazwami kolumn, zachować format liczb + i odczytać określone wiersze przy użyciu Aspose.Cells w C#. Dowiedz się, jak odczytać + arkusz Excela i efektywnie wyeksportować wybrane wiersze. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: pl +og_description: Jak wyeksportować dane z Excela z nazwami kolumn, zachować format + liczb i odczytać określone wiersze przy użyciu Aspose.Cells. Pełny, gotowy do uruchomienia + przykład dla programistów C#. +og_title: Jak wyeksportować dane z Excela w C# – Kompletny przewodnik programistyczny +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Jak wyeksportować dane z Excela w C# – Przewodnik krok po kroku +url: /pl/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak wyeksportować dane z Excela w C# – Kompletny przewodnik programistyczny + +Zastanawiałeś się kiedyś **jak wyeksportować excel** bez utraty oryginalnego formatowania? Być może próbowałeś szybkiego kopiuj‑wklej i skończyło się na datach wyglądających jak „44728” albo brakujących nagłówkach kolumn. To frustrujące, prawda? W tym tutorialu pokażemy czysty, kompleksowy sposób odczytu arkusza Excel, zachowania formatu liczb, eksportu z nazwami kolumn oraz wybrania tylko potrzebnych wierszy. + +Użyjemy biblioteki Aspose.Cells, ponieważ daje ona precyzyjną kontrolę nad opcjami eksportu. Po zakończeniu tego przewodnika będziesz mieć gotowy fragment kodu, który można wstawić do dowolnego projektu .NET, oraz zrozumiesz, dlaczego każda opcja ma znaczenie. Nie potrzebujesz zewnętrznej dokumentacji — wszystko, czego potrzebujesz, znajduje się tutaj. + +--- + +## Co się nauczysz + +- **Odczyt arkusza Excel** do pamięci przy użyciu Aspose.Cells. +- **Eksport wybranych wierszy** (np. wiersze 0‑49) przy zachowaniu nazw kolumn. +- **Zachowanie formatu liczb**, tak aby waluty, daty i procenty pozostały niezmienione. +- Jak **eksportować z nazwami kolumn** i dołączyć komentarze komórek, jeśli są potrzebne. +- Kompletny, gotowy do uruchomienia przykład w C# oraz wskazówki dotyczące typowych pułapek. + +### Wymagania wstępne + +- .NET 6.0 lub nowszy (kod działa również z .NET Framework 4.6+). +- Aspose.Cells for .NET zainstalowany przez NuGet (`Install-Package Aspose.Cells`). +- Plik Excel (`input.xlsx`) umieszczony w folderze, do którego możesz odwołać się w kodzie. + +> **Pro tip:** Jeśli pracujesz w potoku CI, rozważ pobranie pakietu NuGet z prywatnego feedu, aby uniknąć niespodzianek licencyjnych. + +--- + +## Krok 1 – Zainstaluj Aspose.Cells i dodaj przestrzenie nazw + +Najpierw upewnij się, że pakiet Aspose.Cells znajduje się w Twoim projekcie. Otwórz konsolę Package Manager i uruchom: + +```powershell +Install-Package Aspose.Cells +``` + +Następnie dodaj wymagane dyrektywy `using` na początku pliku C#: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Te importy dają dostęp do `Workbook`, `Worksheet`, `ExportTableOptions` i `DataTable` — podstawowych elementów do **odczytu arkusza Excel** i eksportu danych. + +--- + +## Krok 2 – Załaduj skoroszyt (odczytaj plik Excel) + +Teraz faktycznie **odczytujemy arkusz Excel**. Konstruktor `Workbook` przyjmuje ścieżkę do pliku, a Aspose.Cells obsłuży zarówno format `.xlsx`, jak i starszy `.xls`. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Dlaczego to ważne:** Załadowanie skoroszytu raz i ponowne użycie tego samego obiektu `Worksheet` jest znacznie wydajniejsze niż wielokrotne otwieranie pliku, szczególnie przy dużych arkuszach. + +--- + +## Krok 3 – Skonfiguruj opcje eksportu (zachowanie formatu liczb i nazw kolumn) + +Tutaj określamy Aspose.Cells *jak* wyeksportować dane. Klasa `ExportTableOptions` pozwala precyzyjnie dostroić wynik. Włączymy trzy flagi: + +1. `ExportAsString = true` – wymusza konwersję każdej komórki na ciąg znaków, co gwarantuje zachowanie wizualnej reprezentacji liczb. +2. `IncludeCellComments = true` – kopiowanie wszelkich komentarzy dołączonych do komórek (przydatne przy dokumentacji). +3. `PreserveNumberFormat = true` – zachowuje oryginalny format liczbowy (symbole walut, wzorce dat itp.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Przypadek brzegowy:** Jeśli ustawisz `ExportAsString` na `false`, ale nadal chcesz zachować formaty liczb, możesz otrzymać surowe wartości liczbowe (np. 44728 dla daty). Włączenie obu flag zapobiega takim niespodziankom. + +--- + +## Krok 4 – Pobierz pierwszy arkusz (odczyt arkusza Excel) + +Większość prostych plików ma potrzebne dane w pierwszym arkuszu, więc pobierzemy go po indeksie. Jeśli potrzebujesz innego arkusza, zamień `0` na odpowiedni indeks zerowy‑bazowy lub użyj `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Dlaczego to przydatne:** Bezpośredni dostęp do obiektu arkusza daje pełną kontrolę nad jego kolekcją `Cells`, co jest niezbędne do **eksportu wybranych wierszy** w kolejnych krokach. + +--- + +## Krok 5 – Eksport zakresu komórek (eksport wybranych wierszy) + +Teraz serce tutorialu: eksport wierszy 0‑49 i kolumn 0‑4 (czyli pierwszych 50 wierszy i pięciu kolumn) do `DataTable`. Poprosimy także Aspose.Cells o dołączenie nazw kolumn jako pierwszego wiersza `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Co to robi + +- **`startRow: 0`** – zaczyna od samej góry arkusza. +- **`totalRows: 50`** – pobiera pierwsze 50 wierszy (czyli **eksport wybranych wierszy**). +- **`totalColumns: 5`** – ogranicza eksport do pierwszych pięciu kolumn. +- **`includeColumnNames: true`** – zapewnia, że nagłówki `DataTable` odpowiadają wierszowi nagłówków w Excelu, spełniając wymóg **eksportu z nazwami kolumn**. +- **`exportOptions`** – stosuje ustawienia z kroku 3, więc wartości liczbowe pozostają w formacie „$1,234.56” zamiast „1234.56”. + +--- + +## Krok 6 – Zweryfikuj eksport (jak wygląda wynik) + +Wypiszmy kilka pierwszych wierszy na konsolę, aby zobaczyć, że formatowanie przetrwało. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Przykładowy wynik:** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Zauważ, że daty pojawiają się w formacie `MM/dd/yyyy`, a waluta zachowuje symbol `$` — dzięki **preserve number format**. + +--- + +## Typowe pułapki i jak ich unikać + +| Problem | Dlaczego się pojawia | Rozwiązanie | +|---------|----------------------|-------------| +| Daty zamieniają się w duże liczby | `ExportAsString` ustawiono na `false` | Utrzymaj `ExportAsString = true` lub konwertuj komórki ręcznie | +| Brak nagłówków kolumn | `includeColumnNames` ustawiono na `false` | Ustaw `true`, gdy potrzebujesz **eksportu z nazwami kolumn** | +| Komentarze znikają | `IncludeCellComments` nie włączono | Włącz `IncludeCellComments` w `ExportTableOptions` | +| Eksport niewłaściwego arkusza | Użycie `Worksheets[0]` w pliku z wieloma arkuszami | Określ nazwę arkusza: `workbook.Worksheets["Data"]` | +| Wyjątek out‑of‑range | `totalRows` przekracza rzeczywistą liczbę wierszy | Użyj `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## Bonus: Eksport całego arkusza przy zachowaniu formatów + +Jeśli później zechcesz wyeksportować cały arkusz, po prostu zamień `totalRows` i `totalColumns` na maksymalne wymiary arkusza: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Teraz masz **read excel worksheet** procedurę, która działa dla dowolnego rozmiaru, jednocześnie **preserving number format** i **exporting with column names**. + +--- + +## Pełny działający przykład (gotowy do kopiowania) + +Poniżej kompletny program, który możesz wkleić do aplikacji konsolowej. Zawiera wszystkie kroki, importy i prostą weryfikację wyjścia. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Zapisz jako `Program.cs`, uruchom `dotnet run`, a w terminalu zobaczysz sformatowany podgląd. + +--- + +## Zakończenie + +Przeszliśmy przez **jak wyeksportować excel** przy użyciu Aspose.Cells, obejmując wszystko od ładowania skoroszytu, przez zachowanie formatu liczb, eksport z nazwami kolumn, aż po ograniczenie eksportu do wybranych wierszy. Kod jest samodzielny, w pełni uruchamialny i zawiera praktyczne zabezpieczenia przed najczęstszymi przypadkami brzegowymi. + +Gotowy na kolejny krok? Spróbuj wyeksportować bezpośrednio do CSV, zachowując oryginalne formatowanie liczb, albo wstaw `DataTable` do kontekstu Entity Framework Core w celu masowego wstawiania do bazy danych. Oba scenariusze opierają się na fundamentach, które tutaj omówiliśmy. + +Jeśli ten przewodnik okazał się pomocny + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..6a6319ff53 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 skoroszyt programu Excel ze stylowaną tabelą – przewodnik krok po kroku](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Dowiedz się, jak utworzyć skoroszyt programu Excel ze stylowaną tabelą przy użyciu Aspose.Cells dla .NET w przewodniku krok po kroku. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/polish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..d500a0e3e3 --- /dev/null +++ b/cells/polish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-21 +description: Utwórz skoroszyt programu Excel i zaimportuj tabelę danych do Excela, + ustawiając styl kolumn, wyeksportuj dane do Excela oraz sformatuj datę w komórkach + Excela w minutach. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: pl +og_description: Szybko twórz skoroszyt Excel. Dowiedz się, jak zaimportować tabelę + danych do Excela, ustawić styl kolumn, wyeksportować dane do Excela oraz sformatować + daty w komórkach Excela w jednym przewodniku. +og_title: Utwórz skoroszyt Excel – Pełny poradnik stylizacji i eksportu +tags: +- C# +- Aspose.Cells +- Excel automation +title: Utwórz skoroszyt Excel ze stylizowaną tabelą – przewodnik krok po kroku +url: /pl/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Utwórz skoroszyt Excel – Kompletny samouczek programistyczny + +Czy kiedykolwiek potrzebowałeś **create excel workbook**, które wygląda profesjonalnie od razu po wygenerowaniu w kodzie? Być może pobierasz dane z bazy danych i chcesz, aby daty wyświetlały się w odpowiednim formacie bez późniejszego majsterkowania w Excelu. To powszechny problem — zwłaszcza gdy wynik trafia do skrzynki odbiorczej klienta i oczekuje, że wszystko będzie gotowe do użycia. + +W tym przewodniku przejdziemy przez jedną, samodzielną rozwiązanie, które **imports datatable to excel**, stosuje **set column style**, a na koniec **export data to excel** jako ładnie sformatowany plik. Zobaczysz dokładnie, jak **format excel cells date**, aby arkusz wyglądał jak profesjonalny raport, i otrzymasz kompletny, gotowy do uruchomienia przykład na końcu. Bez brakujących elementów, bez skrótów typu „zobacz dokumentację” — po prostu czysty kod, który możesz od razu wstawić do swojego projektu. + +--- + +## Co się nauczysz + +- Jak **create excel workbook** przy użyciu biblioteki Aspose.Cells (lub dowolnego kompatybilnego API). +- Najszybszy sposób na **import datatable to excel** bez ręcznych pętli komórka‑po‑komórce. +- Techniki **set column style**, w tym zastosowanie formatu daty w określonej kolumnie. +- Jak **export data to excel** jednym wywołaniem `Save`. +- Typowe pułapki przy **format excel cells date** i jak ich unikać. + +### Wymagania wstępne + +- .NET 6+ (lub .NET Framework 4.6+). +- Aspose.Cells dla .NET zainstalowany (`Install-Package Aspose.Cells`). +- `DataTable` gotowy do eksportu — Twoje źródło danych może być SQL, CSV lub cokolwiek, co da się przekształcić w `DataTable`. + +Jeśli już czujesz się pewnie w C# i masz te elementy, możesz od razu przystąpić. W przeciwnym razie sekcja „Wymagania wstępne” powyżej zapewni szybki checklist. + +--- + +## Krok 1 – Utwórz instancję skoroszytu Excel + +Pierwszą rzeczą, którą robisz, gdy chcesz **create excel workbook** programowo, jest zainicjowanie obiektu workbook. To jak otwarcie pustego notesu, w którym później zapiszesz swoje dane. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Dlaczego to ważne:** +> Klasa `Workbook` jest punktem wejścia dla każdej operacji w Aspose.Cells. Utworzenie jej na początku daje czyste płótno, a później możesz załadować istniejący plik, jeśli potrzebujesz dopisać dane zamiast zaczynać od zera. + +--- + +## Krok 2 – Przygotuj DataTable do importu + +Zanim będziemy mogli **import datatable to excel**, potrzebujemy `DataTable`. W prawdziwych projektach pochodzi on często z `SqlDataAdapter.Fill` lub `DataTable.Load`. Dla przejrzystości stworzymy metodę, która zwraca gotową tabelę. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Wskazówka:** Jeśli Twoje daty są przechowywane jako ciągi znaków, najpierw przekonwertuj je na `DateTime` — w przeciwnym razie krok **format excel cells date** nie zadziała zgodnie z oczekiwaniami. + +--- + +## Krok 3 – Zdefiniuj style dla każdej kolumny (Set Column Style) + +Teraz nadchodzi część, w której **set column style**. Utworzymy tablicę obiektów `Style` — po jednym dla każdej kolumny. Pierwsza kolumna otrzyma wbudowany format daty (kod 14), a pozostałe pozostaną w formacie ogólnym (kod 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Dlaczego używać obiektów stylu?** +> Zastosowanie stylu raz i ponowne jego użycie jest znacznie wydajniejsze niż ustawianie formatu w każdej komórce osobno. Gwarantuje to także, że cała kolumna respektuje tę samą regułę **format excel cells date**, co jest kluczowe dla spójności przy otwieraniu pliku w różnych ustawieniach regionalnych. + +--- + +## Krok 4 – Importuj DataTable ze stylami do arkusza + +Mając gotowy workbook i zdefiniowane style, teraz **import datatable to excel**. Metoda `ImportDataTable` wykonuje ciężką pracę: zapisuje nagłówki kolumn, wiersze i stosuje przekazane style. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Co się dzieje „pod maską”?** +> - `true` mówi Aspose.Cells, aby uwzględnił nazwy kolumn jako pierwszy wiersz. +> - `0, 0` to indeksy początkowego wiersza i kolumny (górny‑lewy róg). +> - `columnStyles` dopasowuje każdą kolumnę do przygotowanego stylu, zapewniając zastosowanie reguły **format excel cells date** w kolumnie z datą. + +--- + +## Krok 5 – Zapisz (wyeksportuj) skoroszyt do pliku fizycznego + +Na koniec **export data to excel** zapisując workbook na dysku. Możesz zmienić ścieżkę na dowolny folder lub nawet strumieniowo przesłać plik bezpośrednio w odpowiedzi HTTP w API webowym. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** Użyj `workbook.Save(Stream, SaveFormat.Xlsx)`, gdy musisz przesłać plik przez sieć bez zapisywania go na dysku. + +--- + +## Pełny działający przykład (wszystkie kroki razem) + +Poniżej znajduje się kompletny, gotowy do uruchomienia program. Skopiuj‑wklej go do aplikacji konsolowej, dostosuj ścieżkę wyjściową i w kilka sekund będziesz mieć ładnie sformatowany plik Excel. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Oczekiwany wynik:** +Po otwarciu `StyledTable.xlsx` kolumna A wyświetla daty w formacie np. `03/19/2026` (w zależności od Twoich ustawień regionalnych), a kolumny B i C pokazują nazwy produktów oraz ilości jako zwykły tekst/liczby. Nie są potrzebne dodatkowe kroki formatowania — proces **create excel workbook** jest zakończony. + +--- + +## Najczęściej zadawane pytania i przypadki brzegowe + +### 1️⃣ Co zrobić, gdy mój DataTable ma więcej niż trzy kolumny? +Dodaj kolejne obiekty `Style` do tablicy `columnStyles` i dostosuj właściwość `Number` dla każdej kolumny, która wymaga specjalnego formatu (np. waluta, procenty). Metoda `ImportDataTable` dopasuje każdy styl według pozycji. + +### 2️⃣ Czy mogę zastosować własny format daty zamiast wbudowanego 14? +Oczywiście. Zamień `columnStyles[i].Number = 14;` na: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Jak **export data to excel** w API webowym bez zapisywania na dysku? +Użyj `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Co jeśli lokalizacja użytkownika wymaga innego separatora daty? +Wbudowany format daty (ID 14) respektuje ustawienia regionalne skoroszytu. Jeśli potrzebujesz stałego formatu niezależnie od locale, użyj właściwości `Custom`, jak pokazano wyżej. + +### 5️⃣ Czy to działa z .NET Core? +Tak — Aspose.Cells obsługuje .NET Standard 2.0 i nowsze, więc ten sam kod działa na .NET 6, .NET 7 oraz innych kompatybilnych środowiskach. + +--- + +## Wskazówki najlepszych praktyk (Pro Tips) + +- **Ponowne używanie stylów**: Tworzenie stylu na kolumnę jest tanie, ale używanie tego samego obiektu stylu dla identycznych kolumn oszczędza pamięć. +- **Unikaj pętli komórka‑po‑komórce**: `ImportDataTable` jest wysoce zoptymalizowane; ręczne pętle są wolniejsze i podatne na błędy. +- **Ustaw kulturę skoroszytu wcześnie**, jeśli potrzebujesz spójnych separatorów liczb/daty w różnych środowiskach: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Waliduj DataTable** przed importem — null‑owe daty spowodują wyjątek przy zastosowaniu stylu daty. +- **Włącz obliczenia**, jeśli po imporcie dodajesz formuły: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Zakończenie + +Masz teraz kompletny, end‑to‑end przepis na **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel** oraz **format excel cells date** — wszystko w kilkunastu linijkach C#. Podejście jest szybkie, niezawodne i trzyma kwestie formatowania w kodzie, dzięki czemu gotowy arkusz jest gotowy dla użytkowników biznesowych w momencie otwarcia. + +Gotowy na kolejny wyzwanie? Spróbuj dodać formatowanie warunkowe, wstawić wykresy lub przekonwertować + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/polish/net/row-and-column-management/_index.md index c507cf76b1..fe5c35a2d4 100644 --- a/cells/polish/net/row-and-column-management/_index.md +++ b/cells/polish/net/row-and-column-management/_index.md @@ -68,6 +68,8 @@ Dowiedz się, jak usunąć kolumnę w pliku Excel za pomocą Aspose.Cells dla .N Dowiedz się, jak usunąć wiersz w programie Excel za pomocą Aspose.Cells dla .NET. Ten przewodnik krok po kroku obejmuje wymagania wstępne, import kodu i szczegółowy opis płynnej manipulacji danymi. ### [Usuwanie wielu wierszy w Aspose.Cells .NET](./delete-multiple-rows-aspose-cells/) Naucz się usuwać wiele wierszy w programie Excel za pomocą Aspose.Cells dla .NET. Ten szczegółowy przewodnik krok po kroku obejmuje wymagania wstępne, przykłady kodowania i często zadawane pytania dla programistów. +### [Ładowanie pliku Excel w C# – Jak usuwać wiersze i usuwać konkretne wiersze](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Dowiedz się, jak w C# załadować plik Excel oraz usuwać wybrane wiersze przy użyciu Aspose.Cells. ### [Wstawianie kolumny w Aspose.Cells .NET](./insert-column-aspose-cells/) Dowiedz się, jak wstawić kolumnę w programie Excel za pomocą Aspose.Cells dla .NET. Postępuj zgodnie z naszym prostym przewodnikiem krok po kroku, aby bezproblemowo dodać nową kolumnę. Idealne dla programistów .NET. ### [Wstawianie wiersza w Aspose.Cells .NET](./insert-row-aspose-cells/) diff --git a/cells/polish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/polish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..a6a5c81374 --- /dev/null +++ b/cells/polish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-21 +description: Wczytaj plik Excel w C# i usuń wiersze danych przy użyciu Aspose.Cells. + Dowiedz się, jak usuwać wiersze, usuwać konkretne wiersze i opanuj usuwanie wierszy + w Excelu w C# w kilka minut. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: pl +og_description: Wczytaj plik Excel w C# i szybko usuwaj wiersze, usuń określone wiersze + oraz obsłuż usuwanie wierszy w Excelu w C# przy użyciu Aspose.Cells. Kompletny przewodnik + krok po kroku. +og_title: Wczytaj plik Excel w C# – usuń wiersze i usuń określone wiersze +tags: +- C# +- Excel +- Aspose.Cells +title: Wczytywanie pliku Excel w C# – Jak usuwać wiersze i usuwać określone wiersze +url: /pl/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Załaduj plik Excel C# – Jak usuwać wiersze i usuwać określone wiersze + +Kiedykolwiek potrzebowałeś **load Excel file C#** i potem usunąć niepotrzebne wiersze? Być może porządkujesz zrzut danych lub masz szablon, w którym pewne wiersze muszą zniknąć przed wysłaniem skoroszytu do klienta. Niezależnie od przyczyny problem jest ten sam: masz plik `.xlsx` na dysku, chcesz go otworzyć w .NET i potrzebujesz **delete rows** bez uszkadzania ukrytych tabel czy obiektów listy. + +Otóż Aspose.Cells sprawia, że to pestka. W tym tutorialu zobaczysz kompletny, gotowy do uruchomienia przykład, który pokazuje dokładnie **how to delete rows**, jak **remove specific rows**, oraz dlaczego warto zwrócić uwagę na **c# excel row deletion**. Na końcu otrzymasz czysty `output.xlsx` zawierający tylko wybrane wiersze. + +## Co obejmuje ten przewodnik + +- Ładowanie skoroszytu Excel z dysku przy użyciu Aspose.Cells. +- Usuwanie zakresu wierszy (np. wiersze 5‑10) z zachowaniem nagłówków ListObject. +- Zapis zmodyfikowanego skoroszytu z powrotem do systemu plików. +- Typowe pułapki, takie jak przypadkowe usunięcie wierszy wewnątrz tabeli, oraz wskazówki, jak je obejść. +- Pełny, uruchamialny kod, który możesz od razu wkleić do aplikacji konsolowej. + +> **Wymagania wstępne** +> • .NET 6+ (lub .NET Framework 4.6+). +> • Aspose.Cells for .NET zainstalowany przez NuGet (`Install-Package Aspose.Cells`). +> • Podstawowa znajomość C# i pojęć Excel (arkusze, komórki, tabele). + +Jeśli zastanawiasz się **dlaczego warto używać Aspose.Cells** zamiast, powiedzmy, `Microsoft.Office.Interop.Excel`, odpowiedź brzmi: szybkość, brak wymogu COM oraz możliwość uruchamiania na serwerach bez zainstalowanego Office. Dodatkowo API jest proste w zadaniach związanych z usuwaniem wierszy. + +--- + +## Krok 1: Załaduj skoroszyt Excel w C# + +Zanim będziesz mógł usunąć cokolwiek, musisz wczytać skoroszyt do pamięci. Klasa `Workbook` reprezentuje cały plik Excel. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Dlaczego to ważne:** +Ładowanie pliku tworzy graf obiektów odzwierciedlający strukturę Excela — arkusze, komórki, tabele itd. Trzymając odwołanie do `ws`, możesz manipulować wierszami bez obaw o blokady plików czy dziwactwa COM interop. + +--- + +## Krok 2: Usuń wiersze zawierające tylko dane + +Teraz, gdy skoroszyt jest w pamięci, możesz usuwać wiersze. Metoda `Cells.DeleteRows(startRow, totalRows)` usuwa spójny blok. W naszym przykładzie usuniemy wiersze 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Jak to działa:** +- `startRow` jest indeksowany od zera, więc `5` faktycznie odnosi się do wiersza 6 w Excelu. Dostosuj odpowiednio. +- Jeśli arkusz zawiera **ListObject** (tabelę Excel), którego nagłówek znajduje się w wierszu 4, Aspose.Cells ochroni nagłówek i usunie jedynie wiersze danych pod nim. To wbudowane zabezpieczenie zapobiega uszkodzeniu tabel strukturalnych — częsta sytuacja przy **removing data rows**. + +> **Wskazówka:** Jeśli musisz usunąć nieciągłe wiersze (np. wiersze 3, 7, 12), iteruj odwróconą kolekcję indeksów wierszy i wywołuj `DeleteRows(rowIndex, 1)` dla każdego. Usuwanie od dołu w górę zachowuje pierwotne indeksy dla pozostałych wierszy. + +--- + +## Krok 3: Zapisz zmodyfikowany skoroszyt + +Gdy niechciane wiersze znikną, po prostu zapisujesz skoroszyt z powrotem na dysk. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +Metoda `Save` automatycznie określa format pliku na podstawie rozszerzenia (`.xlsx` w tym przypadku). Jeśli potrzebujesz innego formatu — CSV, PDF itp. — wystarczy zmienić rozszerzenie lub przekazać enum `SaveFormat`. + +### Oczekiwany rezultat + +Otwórz `output.xlsx` w Excelu, a zobaczysz, że wiersze 5‑14 (pierwotne wiersze 5‑10) zniknęły. Wszystkie pozostałe dane przesunęły się w górę, a wszelkie formuły odwołujące się do usuniętych wierszy zostały automatycznie dostosowane przez Aspose.Cells. + +--- + +## Najczęściej zadawane pytania (FAQ) + +### Jak usunąć wiersze na podstawie warunku (np. wszystkie wiersze, w których kolumna A jest pusta)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +Pętla działa od końca, aby uniknąć przesuwania indeksów. Ten wzorzec odpowiada szerszemu pytaniu **c# excel row deletion**, gdy potrzebna jest logika warunkowa. + +### Co jeśli mój arkusz zawiera wiele ListObjects? + +Aspose.Cells traktuje każdy ListObject niezależnie. Jeśli nagłówek którejkolwiek tabeli miałby zostać dotknięty zakresem usuwania, API zgłosi `InvalidOperationException`. Aby obejść problem, albo dostosuj zakres, albo tymczasowo wyłącz właściwość `ShowTableStyleFirstColumn` ListObject, wykonaj usunięcie, a potem przywróć ją. + +### Czy mogę usuwać wiersze bez wczytywania całego skoroszytu do pamięci? + +Tak — Aspose.Cells oferuje **streaming API** (`Workbook.LoadOptions`), które czyta dane w kawałkach. Jednak usuwanie wierszy wymaga struktury arkusza, więc i tak musisz wczytać docelowy arkusz do pamięci. W przypadku bardzo dużych plików (>500 MB) rozważ przetwarzanie w partiach lub użycie **cell‑by‑cell** API. + +--- + +## Pełny, uruchamialny przykład + +Poniżej znajduje się kompletny program, który możesz skompilować i uruchomić jako aplikację konsolową. Zamień `YOUR_DIRECTORY` na rzeczywistą ścieżkę folderu na swoim komputerze. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Uruchamianie kodu:** +1. Otwórz terminal lub Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Zamień `Program.cs` na powyższy fragment. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Powinieneś zobaczyć komunikat w konsoli potwierdzający usunięcie oraz lokalizację zapisanego pliku. + +--- + +## Typowe pułapki i jak ich unikać + +| Pułapka | Dlaczego się pojawia | Rozwiązanie | +|---------|----------------------|-------------| +| **Przypadkowe usunięcie nagłówka ListObject** | `DeleteRows` nie sprawdza ukrytych nagłówków tabel, gdy zakres je obejmuje. | Upewnij się, że wiersz początkowy znajduje się **po** nagłówku tabeli, lub użyj API `ListObject` do usuwania wierszy wewnątrz tabeli (`ListObject.DeleteRows`). | +| **Indeksy wierszy o jeden za dużo** | Aspose.Cells używa indeksowania zerowego, a użytkownicy Excela myślą o indeksowaniu jedynkowym. | Pamiętaj, aby odjąć 1 od numeru wiersza Excela przy kodowaniu. | +| **Formuły psują się po usunięciu** | Usunięcie wierszy może spowodować błędy `#REF!`, jeśli formuły odwołują się do usuniętych wierszy. | Aspose.Cells automatycznie aktualizuje większość formuł, ale sprawdź odwołania zewnętrzne i nazwy zakresów. | +| **Spowolnienie przy bardzo dużych plikach** | Usuwanie wielu wierszy wywołuje wewnętrzne przeliczanie indeksów. | Grupuj usunięcia (usuń duży zakres jednorazowo) zamiast wielu pojedynczych wywołań `DeleteRows`. Używaj `DeleteRows(start, count)` wszędzie, gdzie to możliwe. | + +--- + +## Kolejne kroki i tematy pokrewne + +- **Usuwanie konkretnych wierszy na podstawie wartości komórek:** Połącz pętlę warunkową z FAQ z `DeleteRows`. +- **Masowe wstawianie wierszy:** Użyj `InsertRows`, aby dodać wiersze zastępcze przed wypełnieniem danymi. +- **Praca z tabelami (ListObjects):** Zgłęb metody `ListObject` dla operacji na poziomie wiersza w tabelach strukturalnych. +- **Eksport do CSV po usunięciu wierszy:** Wywołaj `workbook.Save("output.csv", SaveFormat.Csv)`, aby uzyskać czysty CSV bez usuniętych wierszy. + +Każdy z tych tematów rozwija podstawowy **load excel file c#** workflow, który właśnie opanowałeś, pozwalając na precyzyjne dostosowywanie plików Excel programowo. + +--- + +## Zakończenie + +Przeszliśmy przez praktyczny scenariusz **load excel file c#**, pokazaliśmy **how to delete rows**, omówiliśmy niuanse **remove specific rows** oraz **remove data rows** przy użyciu Aspose.Cells. Ładując skoroszyt, wywołując `DeleteRows` i zapisując wynik, uzyskasz niezawodne **c# excel row deletion** bez konieczności COM interop. + +Wypróbuj to na rzeczywistym zestawie danych — może wyczyścić raport sprzedaży lub usunąć wiersze testowe z szablonu. Gdy nabierzesz wprawy, eksperymentuj z usuwaniem warunkowym i operacjami na tabelach. API jest wystarczająco solidne zarówno dla prostych skryptów, jak i przetwarzania wsadowego w skali przedsiębiorstwa. + +Powodzenia w kodowaniu i daj znać w komentarzu, jeśli napotkasz trudności! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/polish/net/worksheet-operations/_index.md index 75d3c4468b..d58f962f6e 100644 --- a/cells/polish/net/worksheet-operations/_index.md +++ b/cells/polish/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Naucz się ustawiać tło graficzne w plikach ODS za pomocą Aspose.Cells dla .N Dowiedz się, jak aktualizować historię dziennika rewizji w udostępnionych skoroszytach przy użyciu Aspose.Cells dla .NET. Uprość współpracę i utrzymuj przejrzyste rekordy dokumentów. ### [Wykorzystaj właściwość Sheet_SheetId OpenXml w arkuszu kalkulacyjnym](./utilize-sheet-sheetid-property/) Odblokuj moc programu Excel dzięki Aspose.Cells dla .NET. Naucz się skutecznie manipulować identyfikatorami arkuszy dzięki naszemu przewodnikowi krok po kroku. +### [Jak tworzyć arkusze kalkulacyjne – Przewodnik krok po kroku dla dynamicznego generowania Excela](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Dowiedz się, jak dynamicznie tworzyć arkusze kalkulacyjne w Excelu przy użyciu Aspose.Cells dla .NET, krok po kroku. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/polish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..3fbf4992e1 --- /dev/null +++ b/cells/polish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,278 @@ +--- +category: general +date: 2026-03-21 +description: Dowiedz się, jak tworzyć arkusze, generować pliki Excel z dynamicznymi + nazwami arkuszy oraz zapisywać skoroszyt jako XLSX przy użyciu Aspose.Cells w C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: pl +og_description: Jak tworzyć arkusze w Excelu przy użyciu Aspose.Cells, generować arkusze + Excel z dynamicznymi nazwami arkuszy i zapisywać skoroszyt jako XLSX. +og_title: Jak tworzyć arkusze – Kompletny samouczek C# +tags: +- Aspose.Cells +- C# +- Excel automation +title: Jak tworzyć arkusze kalkulacyjne – Przewodnik krok po kroku po dynamicznym + generowaniu Excela +url: /pl/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak tworzyć arkusze – Kompletny tutorial C# + +Zastanawiałeś się kiedyś **jak tworzyć arkusze** „w locie”, bez ręcznego otwierania Excela za każdym razem? Nie jesteś sam. Wielu programistów napotyka problem, gdy muszą **generować arkusze Excel** z źródeł danych i chcą, aby każdy arkusz miał znaczącą, dynamiczną nazwę. Dobra wiadomość? Dzięki Aspose.Cells możesz zautomatyzować cały proces, **przetworzyć arkusz główny** i w końcu **zapisać skoroszyt jako XLSX** w kilku linijkach kodu. + +W tym tutorialu przejdziemy przez scenariusz z życia wzięty: zaczniemy od pustego skoroszytu, wstawimy token smart‑marker, który mówi Aspose, które arkusze szczegółowe utworzyć, skonfigurujemy wzorzec nazewnictwa, aby każdy arkusz otrzymał unikalną nazwę, i w końcu zapisujemy wynik na dysku. Po zakończeniu będziesz mieć gotowy do uruchomienia program w C#, który tworzy arkusze, generuje arkusze Excel z dynamicznymi nazwami arkuszy i zapisuje skoroszyt jako XLSX — bez interakcji z UI. + +> **Wymagania wstępne** +> • .NET 6+ (lub .NET Framework 4.6+). +> • Aspose.Cells for .NET (bezpłatna wersja próbna wystarczy do tego demo). +> • Podstawowa znajomość C# — nie są potrzebne zaawansowane triki z Excel Interop. + +--- + +## Przegląd tego, co zbudujemy + +- **Arkusz główny** zawierający placeholder smart‑marker (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor**, który odczytuje źródło danych (np. `DataTable`) i tworzy nowy arkusz dla każdego działu. +- **Dynamiczne nazwy arkuszy** według wzorca `Dept_{0}`, gdzie `{0}` zostaje zastąpione nazwą działu. +- **Końcowy plik XLSX** zapisany w wybranym folderze. + +To wszystko. Proste, a jednocześnie wystarczająco potężne dla faktur, raportów czy każdego wielokartkowego wyjścia Excel. + +--- + +![Diagram pokazujący, jak arkusz główny jest przetwarzany w celu wygenerowania wielu dynamicznych arkuszy](/images/how-to-create-worksheets-diagram.png "Diagram tworzenia arkuszy") + +*Alt text: ilustracja pokazująca, jak tworzyć arkusze z dynamicznymi nazwami arkuszy przy użyciu Aspose.Cells.* + +--- + +## Krok 1: Konfiguracja projektu i dodanie Aspose.Cells + +### Dlaczego to ważne +Zanim jakikolwiek kod zostanie skompilowany, kompilator musi wiedzieć, gdzie znajdują się klasy `Workbook`, `Worksheet` i `SmartMarkerProcessor`. Dodanie pakietu NuGet zapewnia najnowsze, w pełni funkcjonalne API. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Porada:** Jeśli używasz Visual Studio, kliknij prawym przyciskiem myszy projekt → *Manage NuGet Packages* → wyszukaj *Aspose.Cells* i zainstaluj najnowszą stabilną wersję. + +--- + +## Krok 2: Utworzenie nowego skoroszytu i arkusza głównego + +### Co robimy +Zaczynamy od czystego skoroszytu, a następnie pobieramy pierwszy arkusz (indeks 0). Ten arkusz będzie pełnił rolę **arkusza głównego**, w którym znajduje się token smart‑marker. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +Klasa `Workbook` jest kontenerem dla wszystkich arkuszy. Domyślnie tworzy jeden arkusz o nazwie *Sheet1*; zmiana nazwy na „Master” ułatwia późniejszą nawigację w pliku. + +--- + +## Krok 3: Wstawienie tokenu smart‑marker dla nazw arkuszy szczegółowych + +### Dlaczego używać smart‑markera? +Smart markery pozwalają Aspose.Cells zastępować placeholdery danymi w czasie wykonywania. Token `«DetailSheetNewName:Dept»` mówi procesorowi: *„Kiedy zobaczysz to, utwórz nowy arkusz szczegółowy dla każdego wiersza w kolumnie `Dept`.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Token możesz umieścić w dowolnym miejscu; wybraliśmy **A1** dla przejrzystości. Gdy procesor zostanie uruchomiony, zamieni token na rzeczywistą nazwę działu i wygeneruje odpowiadający arkusz. + +--- + +## Krok 4: Przygotowanie źródła danych + +### Jak dane napędzają tworzenie arkuszy +Aspose.Cells współpracuje z dowolnym źródłem danych typu `IEnumerable`. W tym demo użyjemy `DataTable` z jedną kolumną o nazwie `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Co jeśli masz więcej kolumn?** +> Procesor zignoruje dodatkowe kolumny, chyba że odwołasz się do nich w kolejnych smart markerach. Dzięki temu generowanie arkuszy pozostaje lekkie. + +--- + +## Krok 5: Konfiguracja SmartMarkerProcessor i wzorca nazewnictwa + +### Dynamiczne nazwy arkuszy w praktyce +Chcemy, aby każdy nowy arkusz miał nazwę `Dept_Finance`, `Dept_HR` itd. Opcja `DetailSheetNewName` pozwala zdefiniować wzorzec, w którym `{0}` zostaje podstawione rzeczywistą nazwą działu. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Jeśli dział pojawi się dwukrotnie, Aspose automatycznie doda przyrostek liczbowy (np. `Dept_Finance_1`), aby uniknąć duplikatów nazw arkuszy. + +--- + +## Krok 6: Przetworzenie arkusza głównego w celu wygenerowania arkuszy szczegółowych + +### Sedno **process master sheet** +Wywołanie `Process` wykonuje najcięższą pracę: skanuje arkusz główny w poszukiwaniu smart markerów, tworzy nowe arkusze, kopiuje układ arkusza głównego i wypełnia je danymi z wiersza. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Po tym wywołaniu skoroszyt zawiera jeden arkusz główny oraz cztery arkusze szczegółowe — każdy nazwany zgodnie z naszym wzorcem i wypełniony nazwą działu w komórce A1. + +--- + +## Krok 7: Zapis skoroszytu jako XLSX + +### Ostatni krok — **save workbook as XLSX** +Teraz, gdy arkusze istnieją, zapisujemy plik na dysku. Możesz wybrać dowolną ścieżkę; upewnij się tylko, że katalog istnieje. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Otwierając `DetailSheets.xlsx`, zobaczysz: + +| Nazwa arkusza | Zawartość komórki A1 | +|---------------|----------------------| +| Master | «DetailSheetNewName:Dept» (bez zmian) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing| Marketing | + +> **Przypadek brzegowy:** Jeśli docelowy folder nie istnieje, `Save` zgłosi `DirectoryNotFoundException`. Owiń wywołanie w blok try‑catch lub utwórz folder wcześniej. + +--- + +## Pełny działający przykład + +Łącząc wszystko razem, oto kompletny program, który możesz skopiować i wkleić do aplikacji konsolowej: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Uruchom program, otwórz wygenerowany plik i zobacz dokładnie taki układ, jak opisano wcześniej. Bez ręcznego kopiowania, bez COM interop — po prostu czysty kod C#, który **generuje arkusze Excel** z **dynamicznymi nazwami arkuszy**. + +--- + +## Częste pytania i pułapki + +| Pytanie | Odpowiedź | +|----------|-----------| +| *Czy mogę użyć DataSet z wieloma tabelami?* | Tak. Przekaż odpowiednią tabelę do `Process` lub użyj słownika tabel. | +| *Co zrobić, jeśli potrzebuję więcej niż jednego smart‑markera na arkuszu głównym?* | Umieść dodatkowe tokeny, np. `«DetailSheetNewName:Region»` i skonfiguruj osobny wzorzec nazewnictwa w razie potrzeby. | +| *Czy arkusz główny pozostaje w pliku końcowym?* | Domyślnie tak. Jeśli go nie potrzebujesz, wywołaj `workbook.Worksheets.RemoveAt(0)` po przetworzeniu. | +| *Jak Aspose radzi sobie z bardzo dużymi zestawami danych?* | Strumieniuje dane efektywnie, ale możesz zwiększyć `MemorySetting`, jeśli napotkasz limity pamięci. | +| *Czy mogę eksportować do CSV zamiast XLSX?* | Oczywiście — użyj `workbook.Save("file.csv", SaveFormat.Csv)`. Logika tworzenia arkuszy pozostaje taka sama. | + +--- + +## Kolejne kroki + +Teraz, gdy wiesz **jak dynamicznie tworzyć arkusze**, możesz rozważyć: + +- **Zapis skoroszytu jako XLSX** z ochroną hasłem (`workbook.Protect("pwd")`). +- **Generowanie arkuszy Excel** z źródeł JSON lub XML przy użyciu `JsonDataSource` lub `XmlDataSource`. +- **Stosowanie stylów** do każdego wygenerowanego arkusza (czcionki, kolory) za pomocą obiektów `Style`. +- **Scalanie komórek** lub automatyczne wstawianie formuł dla raportów podsumowujących. + +Każde z tych rozszerzeń opiera się na tym samym koncepcie **process master sheet**, więc przejście będzie płynne. + +--- + +## Zakończenie + +Omówiliśmy cały pipeline: od inicjalizacji skoroszytu, wstawienia smart‑markera, konfiguracji **dynamicznych nazw arkuszy**, przetworzenia arkusza głównego w celu **generowania arkuszy Excel**, aż po **zapis skoroszytu jako XLSX**. Przykład jest kompletny, gotowy do uruchomienia i demonstruje najlepsze praktyki pod kątem wydajności i utrzymania kodu. + +Wypróbuj go, zmodyfikuj wzorzec nazewnictwa, podaj prawdziwe dane biznesowe i zobacz, jak Twoja automatyzacja Excela nabiera tempa. Jeśli napotkasz problemy, zostaw komentarz poniżej — powodzenia w kodowaniu! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/calculation-engine/_index.md b/cells/portuguese/net/calculation-engine/_index.md index 52f290a929..2a3cb5acb4 100644 --- a/cells/portuguese/net/calculation-engine/_index.md +++ b/cells/portuguese/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ Aprenda a criar e integrar mecanismos de cálculo personalizados em seus aplicat ### [Otimize o tempo de cálculo do Excel com opções recursivas no Aspose.Cells para .NET](./optimize-calculation-time-recursive-aspose-cells-net) Aprenda a otimizar o tempo de cálculo do Excel usando opções recursivas no Aspose.Cells para .NET. Este guia aborda configuração, dicas de desempenho e aplicações práticas. +### [Como calcular uma pasta de trabalho em C# – Guia de ordenação e fórmulas](./how-to-calculate-workbook-in-c-sort-formula-guide/) +Aprenda a calcular uma pasta de trabalho usando C#, incluindo ordenação de dados e aplicação de fórmulas avançadas com Aspose.Cells .NET. ## Benefícios diff --git a/cells/portuguese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/portuguese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..20a5482423 --- /dev/null +++ b/cells/portuguese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Como calcular uma pasta de trabalho em C# com Aspose.Cells – aprenda + a criar uma pasta de trabalho Excel, preencher células do Excel, calcular fórmulas + do Excel e usar a função de ordenação. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: pt +og_description: Como calcular uma pasta de trabalho em C# rapidamente. Este tutorial + mostra como criar uma pasta de trabalho do Excel, preencher células do Excel, calcular + fórmulas do Excel e usar a função de ordenação. +og_title: Como calcular Workbook em C# – Guia completo de ordenação +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Como Calcular Pasta de Trabalho em C# – Guia de Ordenação e Fórmulas +url: /pt/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Calcular Workbook em C# – Guia de Ordenação e Fórmula + +Já se perguntou **como calcular valores de workbook** em tempo real sem abrir o Excel? Você não está sozinho. Em muitos cenários de automação é preciso gerar um arquivo Excel, inserir alguns números, ordená‑los e trazer os resultados de volta para sua aplicação .NET — tudo programaticamente. + +Neste guia vamos percorrer exatamente isso: **criar um workbook Excel**, **preencher células do Excel**, anexar uma fórmula **SORT**, e finalmente **calcular fórmulas do Excel** para que você possa ler o array ordenado diretamente do C#. Ao final você terá um trecho de código executável que pode ser inserido em qualquer projeto que referencie Aspose.Cells (ou uma biblioteca similar). + +## Pré‑requisitos + +- .NET 6+ (o código também funciona no .NET Framework 4.7.2) +- Aspose.Cells para .NET (pacote NuGet de avaliação gratuita `Aspose.Cells`) +- Noções básicas de sintaxe C# +- Não é necessário ter o Microsoft Excel instalado; a biblioteca faz o trabalho pesado por você + +Se você está confortável com esses itens, vamos começar. + +## Como Calcular Workbook – Inicializando o Workbook + +A primeira coisa a fazer é criar um novo objeto workbook. Pense nele como abrir um arquivo Excel novinho em folha, completamente vazio. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Por que isso importa:** A classe `Workbook` é o ponto de entrada para toda operação — sem ela você não pode adicionar planilhas, células ou fórmulas. Inicializá‑la corretamente garante que você está trabalhando com uma tela limpa. + +## Criar Workbook Excel e Acessar a Planilha + +Agora que o workbook existe, precisamos garantir que estamos apontando para a planilha correta. A maioria das bibliotecas cria, por padrão, uma única planilha chamada “Sheet1”, mas você pode renomeá‑la ou adicionar mais, se desejar. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Dica profissional:** Nomear as planilhas logo no início ajuda quando você as referencia mais tarde em fórmulas (`'Data'!A1:A10`). Também facilita a depuração. + +## Preencher Células do Excel com Dados + +Em seguida, vamos **preencher células do Excel** com os números que queremos ordenar. O exemplo usa apenas duas células, mas você pode estender o intervalo para dezenas de linhas. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Por que usamos `PutValue`** – Ele detecta automaticamente o tipo de dado (int, double, string, etc.) e o armazena adequadamente, poupando você de conversões manuais. + +## Aplicar Função SORT via Fórmula + +A função `SORT` do Excel faz exatamente o que o nome sugere: retorna um array ordenado sem alterar os dados originais. Vamos inserir essa fórmula na célula `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Observação sobre casos extremos:** `SORT` devolve um **array** como resultado. Em versões antigas do Excel (pré‑Office 365) isso exigiria Ctrl+Shift+Enter. Com Aspose.Cells o array é obtido automaticamente ao calcular o workbook. + +## Calcular Fórmulas do Excel para Obter Resultados + +Neste ponto o workbook só sabe *o que* calcular, não *que* deve fazer isso. Chamar `CalculateFormula` dispara o motor de cálculo para avaliar todas as fórmulas, inclusive a nossa `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Saída esperada no console** + +``` +Sorted array: {2, 5} +``` + +> **O que acabou de acontecer?** +> 1. O workbook criou um motor de cálculo interno. +> 2. A fórmula `SORT` analisou o intervalo `A1:A2`. +> 3. O motor gerou um novo array, que recuperamos de `B1`. + +Se você alterar os valores em `A1` e `A2` (ou ampliar o intervalo) e executar novamente `CalculateFormula`, a saída será atualizada automaticamente — sem código extra. + +## Usar Função Sort em Conjuntos de Dados Maiores (Opcional) + +A maioria dos cenários reais envolve mais de duas linhas. Aqui está um ajuste rápido que funciona para qualquer quantidade de entradas: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Por que você pode precisar disso:** Ordenar intervalos grandes permite gerar rankings, ordenar dados financeiros ou simplesmente limpar CSVs importados antes de processá‑los. + +## Armadilhas Comuns & Como Evitá‑las + +| Problema | Por que acontece | Correção | +|----------|------------------|----------| +| **`#VALUE!` em B1** | A fórmula `SORT` referencia um intervalo vazio ou não numérico. | Garanta que cada célula do intervalo de origem contenha um número ou texto que possa ser ordenado. | +| **Truncamento de array** | Tentar ler um array a partir de uma única célula sem fazer casting. | Converta `worksheet.Cells["B1"].Value` para `object[]` (ou o tipo apropriado). | +| **Desaceleração de desempenho** | Recalcular workbooks enormes após cada pequena alteração. | Chame `CalculateFormula` somente depois de terminar de modificar a planilha, ou use `CalculateFormulaOptions` para limitar o escopo. | + +## Exemplo Completo (Pronto para Copiar‑Colar) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Captura de tela do resultado** +> ![resultado do cálculo da planilha no Excel](https://example.com/images/sorted-result.png "resultado do cálculo da planilha no Excel") + +A imagem acima mostra o workbook após o cálculo — a célula **B1** contém o array ordenado `{2, 5}`. + +## Conclusão + +Acabamos de cobrir **como calcular valores de workbook** programaticamente: criar um workbook Excel, preencher células, inserir uma fórmula `SORT` e, finalmente, **calcular fórmulas do Excel** para extrair os dados ordenados. A abordagem funciona tanto para exemplos simples de duas células quanto para conjuntos de dados maiores. + +Qual o próximo passo? Experimente combinar isso com outras funções como `FILTER`, `UNIQUE` ou até lógica estilo VBA via `WorksheetFunction`. Você também pode salvar o workbook no disco (`workbook.Save("Sorted.xlsx")`) e abri‑lo no Excel para verificação visual. + +Sinta‑se à vontade para experimentar — troque os números, altere o intervalo ou encadeie múltiplas fórmulas. Automação é sobre iterar rapidamente, e agora você tem uma base sólida para construir. + +Boa codificação, e que seus workbooks sempre calculem exatamente como você espera! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/portuguese/net/conversion-and-rendering/_index.md index 2902089375..7495b46901 100644 --- a/cells/portuguese/net/conversion-and-rendering/_index.md +++ b/cells/portuguese/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Aprenda a converter Excel para PDF de forma avançada e sem complicações com o Aprenda a converter uma planilha do Excel para SVG usando o Aspose.Cells para .NET com este guia passo a passo. Perfeito para desenvolvedores .NET que desejam renderizar Excel para SVG. ### [Convertendo Excel para MHTML no .NET](./converting-excel-to-mhtml/) Aprenda a converter eficientemente arquivos do Excel para o formato MHTML no .NET com o Aspose.Cells, aprimorando seus recursos de relatórios e compartilhamento de dados. +### [Criar imagem a partir do Excel – Exportar Pivot para PNG em C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Aprenda a exportar uma tabela dinâmica do Excel como imagem PNG usando Aspose.Cells em C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/portuguese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..bf97dd6297 --- /dev/null +++ b/cells/portuguese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Criar imagem a partir do Excel em C# usando Aspose.Cells. Aprenda como + converter Excel em imagem, exportar pivot e salvar a imagem como PNG com um exemplo + completo e executável. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: pt +og_description: Crie imagem a partir do Excel em C# rapidamente. Este guia mostra + como converter Excel em imagem, exportar pivô e salvar a imagem como PNG com código + claro. +og_title: Criar imagem a partir do Excel – Exportar Tabela Dinâmica para PNG em C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Criar imagem a partir do Excel – Exportar Tabela Dinâmica para PNG em C# +url: /pt/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar Imagem a partir do Excel – Exportar Pivot para PNG em C# + +Já precisou **criar imagem a partir do Excel** mas não tinha certeza de qual API usar? Você não está sozinho—muitos desenvolvedores encontram esse obstáculo ao tentar transformar uma tabela dinâmica ao vivo em um PNG compartilhável. + +Neste tutorial vamos percorrer uma solução completa, pronta‑para‑executar, que **converte Excel em imagem**, mostra **como exportar pivot** e explica **como salvar a imagem** como um arquivo PNG. Ao final, você terá um único método que realiza todo o trabalho, além de dicas para casos extremos que você pode encontrar. + +## O que você precisará + +- **Aspose.Cells for .NET** (o pacote NuGet `Aspose.Cells`). É uma biblioteca comercial, mas oferece um modo de avaliação gratuito—perfeito para testes. +- .NET 6+ (ou .NET Framework 4.6+). +- Uma planilha Excel simples (`Pivot.xlsx`) que contém ao menos uma tabela dinâmica. +- Qualquer IDE que você prefira—Visual Studio, Rider ou até mesmo VS Code funciona. + +É isso. Sem DLLs extras, sem interop COM, e sem truques complicados de automação do Excel. + +Agora, vamos mergulhar no código. + +## Etapa 1: Carregar a Pasta de Trabalho – Criar Imagem a partir do Excel + +A primeira coisa que fazemos é abrir o arquivo Excel que contém a tabela dinâmica. Esta etapa é crucial porque o renderizador trabalha contra um objeto `Workbook` em memória. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Por que isso importa:* Carregar a pasta de trabalho nos dá acesso ao **pivot** e a qualquer formatação que será respeitada quando posteriormente **converter Excel em imagem**. Se você pular isso, o renderizador não terá nada com o que trabalhar. + +## Etapa 2: Configurar Opções de Exportação – Converter Excel em Imagem + +Em seguida, informamos à Aspose como queremos que a imagem final apareça. A classe `ImageOrPrintOptions` nos permite escolher PNG, definir DPI e até controlar a cor de fundo. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Por que isso importa:* Definindo um DPI alto garantimos que o **export Excel to PNG** fique nítido, mesmo quando o pivot contém muitas linhas. Você pode reduzir o DPI se o tamanho do arquivo for uma preocupação. + +## Etapa 3: Renderizar a Planilha – Como Exportar Pivot + +Agora vem o coração do processo: transformar a planilha (com seu pivot) em uma imagem. A classe `WorksheetRender` faz o trabalho pesado. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Por que isso importa:* É aqui que **como exportar pivot** para um formato visual. O renderizador respeita toda a formatação do pivot, segmentações e estilos condicionais, de modo que o PNG parece exatamente como você vê no Excel. + +## Etapa 4: Juntar Tudo – Como Salvar a Imagem + +Finalmente, expomos um único método público que une todas as partes. Este é o método que você chamará a partir do seu aplicativo, serviço ou ferramenta de console. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Exemplo Completo Funcional + +Crie um novo projeto de console, adicione o pacote NuGet `Aspose.Cells`, e então coloque o seguinte `Program.cs` dentro: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Resultado esperado:** Depois de executar o programa, `PivotImage.png` aparecerá na pasta que você especificou, mostrando uma captura de tela pixel‑perfeita da tabela dinâmica. + +![exemplo de criação de imagem a partir do Excel mostrando a tabela dinâmica exportada como PNG](https://example.com/placeholder.png "Exemplo de criação de imagem a partir do Excel") + +*Alt text:* exemplo de criação de imagem a partir do Excel mostrando a tabela dinâmica exportada como PNG. + +## Perguntas Frequentes & Casos Limite + +### E se minha pasta de trabalho tiver várias planilhas? + +O helper atualmente obtém `Worksheets[0]`. Para direcionar uma planilha específica, passe o nome da planilha: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### O PNG está borrado—como corrigir? + +Aumente `HorizontalResolution` e `VerticalResolution` em `GetImageOptions`. Valores entre 300–600 DPI geralmente produzem resultados nítidos. Lembre-se, DPI mais alto significa tamanho de arquivo maior. + +### Meu pivot abrange mais de uma página—posso exportar todas as páginas? + +Sim. Percorra `renderer.PageCount` e chame `ToImage(pageIndex, ...)` para cada página, ou defina `OnePagePerSheet = false` para obter imagens separadas por página. + +### Preciso apenas de uma parte da planilha (por exemplo, um intervalo específico)? + +Use `ImageOrPrintOptions` para definir `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Dessa forma você **converte Excel em imagem** apenas para a área que lhe interessa. + +### Isso funciona com arquivos .xls (Excel 97‑2003)? + +Absolutamente. Aspose.Cells abstrai o formato do arquivo, então você pode fornecer `.xls`, `.xlsx`, `.xlsm` ou até mesmo `.ods` e ainda **exportar excel para png**. + +## Dicas Profissionais & Armadilhas + +- **Licença importa**: No modo de avaliação, Aspose adiciona uma marca d'água. Implante uma licença adequada para produção. +- **Uso de memória**: Renderizar pastas de trabalho grandes pode consumir muita memória. Libere o objeto `Workbook` prontamente ou envolva-o em um bloco `using`. +- **Segurança de thread**: `Workbook` não é thread‑safe. Crie uma nova instância por requisição se você estiver em um serviço web. +- **Flexibilidade de formato de imagem**: Se precisar de JPEG ou BMP, basta mudar `ImageFormat` em `GetImageOptions`. + +## Conclusão + +Agora você tem uma receita sólida, de ponta a ponta, para **criar imagem a partir do Excel**, especificamente para **exportar pivot** como PNG de alta qualidade. O trecho acima mostra o código completo e executável, explica **como salvar a imagem**, e cobre variações como múltiplas planilhas ou áreas de impressão personalizadas. + +Próximos passos? Tente encadear este exportador com um serviço de e‑mail para enviar o PNG automaticamente, ou experimente `ImageOrPrintOptions` para gerar PDFs em vez de PNGs. O mesmo padrão funciona para tarefas de **converter excel em imagem** em diversos formatos. + +Tem mais perguntas? Deixe um comentário, 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/converting-excel-files-to-other-formats/_index.md b/cells/portuguese/net/converting-excel-files-to-other-formats/_index.md index 69e0db5d97..27b37c9830 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 @@ -46,6 +46,8 @@ O Aspose.Cells para .NET simplifica as transformações de documentos, permitind Aprenda a converter CSV para JSON no .NET usando Aspose.Cells. Guia passo a passo para transformação de dados com exemplos de código fáceis de seguir. ### [Convertendo arquivo Excel para DOCX programaticamente no .NET](./converting-excel-file-to-docx/) Aprenda a converter arquivos do Excel para DOCX programaticamente usando o Aspose.Cells para .NET neste guia passo a passo. Perfeito para geração de relatórios e compartilhamento de dados. +### [Salvar Excel como Docx com C# – Guia Completo Passo a Passo](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Aprenda a salvar arquivos Excel como DOCX usando C# com o Aspose.Cells, seguindo um guia passo a passo completo. ### [Convertendo arquivo Excel para HTML com Tooltip no .NET](./converting-excel-file-to-html-with-tooltip/) Converta Excel para HTML com dicas de ferramentas usando o Aspose.Cells para .NET em poucos passos simples. Aprimore seus aplicativos web com dados interativos do Excel sem esforço. ### [Convertendo arquivo Excel para Markdown programaticamente no .NET](./converting-excel-file-to-markdown/) diff --git a/cells/portuguese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/portuguese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..e7bbffabe6 --- /dev/null +++ b/cells/portuguese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Salvar Excel como Docx em C# — aprenda como converter Excel para Word, + incorporar gráficos e carregar a pasta de trabalho Excel em C# usando Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: pt +og_description: Salvar Excel como Docx em C# explicado na primeira frase. Siga este + tutorial para converter Excel para Word, incorporar gráficos e carregar a pasta + de trabalho do Excel em C#. +og_title: Salvar Excel como Docx com C# – Guia Completo +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Salvar Excel como Docx com C# – Guia Completo Passo a Passo +url: /pt/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Salvar Excel como Docx com C# – Guia Completo Passo a Passo + +Já precisou **salvar Excel como Docx** mas não sabia por onde começar? Você não está sozinho—muitos desenvolvedores enfrentam o mesmo obstáculo quando querem *converter Excel para Word* mantendo os gráficos intactos. Neste tutorial vamos percorrer o código exato que você precisa, explicar por que cada linha é importante e mostrar como incorporar gráficos do Excel sem perder qualidade. + +Também vamos incluir algumas dicas extras sobre **load Excel workbook C#** cenários, para que ao final você se sinta confortável convertendo Excel para Docx em qualquer projeto .NET. Sem referências vagas, apenas um exemplo concreto e executável que você pode copiar‑colar agora mesmo. + +--- + +## O que este Guia Cobre + +- Carregar um arquivo `.xlsx` existente com Aspose.Cells (ou qualquer biblioteca compatível). +- Manipulação opcional de planilhas ou gráficos antes da conversão. +- Salvar a pasta de trabalho como um arquivo `.docx` preservando os gráficos incorporados. +- Verificar a saída e lidar com casos de borda comuns, como pastas de trabalho grandes ou tipos de gráfico não suportados. + +Se você está se perguntando **por que converter Excel para Docx**, pense nos relatórios que você precisa enviar para partes interessadas não técnicas—documentos Word são universalmente aceitos e mantêm a fidelidade visual dos seus gráficos. Vamos mergulhar. + +--- + +## Pré-requisitos – Carregar Pasta de Trabalho Excel C# + +Antes de escrever qualquer código, certifique‑se de que você tem o seguinte: + +| Requirement | Motivo | +|-------------|--------| +| **.NET 6.0 or later** | Tempo de execução moderno, melhor desempenho e suporte total ao Aspose.Cells. | +| **Aspose.Cells for .NET** (NuGet package `Aspose.Cells`) | Fornece a classe `Workbook` usada para ler Excel e exportar para DOCX. | +| **Visual Studio 2022** (or any IDE you prefer) | Útil para depuração e IntelliSense. | +| **An Excel file with charts** (`AdvancedCharts.xlsx`) | Para ver o recurso *embed excel charts* em ação. | + +Você pode instalar a biblioteca via o Console do Gerenciador de Pacotes: + +```powershell +Install-Package Aspose.Cells +``` + +> **Dica profissional:** Se você estiver em um pipeline CI/CD, adicione o pacote ao seu `*.csproj` para que as restaurações ocorram automaticamente. + +--- + +## Etapa 1 – Carregar a Pasta de Trabalho Excel (Início do Salvar Excel como Docx) + +A primeira coisa que fazemos é carregar a pasta de trabalho fonte. É aqui que a frase **load excel workbook c#** entra em ação. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Por que isso importa:** Carregar o arquivo lhe dá acesso a todas as planilhas, gráficos e estilos. Sem esta etapa, não há nada para converter, e a API não pode preservar seus gráficos incorporados. + +--- + +## Etapa 2 – (Opcional) Ajustar a Pasta de Trabalho Antes da Conversão + +Você pode querer renomear uma planilha, ocultar uma coluna ou até mudar o título de um gráfico. Esta etapa é opcional, mas demonstra quão flexível a conversão pode ser. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Caso de borda:** Alguns tipos de gráfico mais antigos (por exemplo, Radar) podem não ser renderizados perfeitamente no Word. Teste seus gráficos específicos após a conversão. + +--- + +## Etapa 3 – Salvar a Pasta de Trabalho como Documento Word (A Ação Central “Salvar Excel como Docx”) + +Agora chega o momento da verdade: realmente **salvamos Excel como Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Quando isso é executado, o Aspose.Cells grava cada planilha como uma tabela dentro do arquivo Word e incorpora cada gráfico como uma imagem de alta resolução. O resultado é um `.docx` totalmente editável que parece exatamente a visualização original do Excel. + +> **Por que escolher DOCX ao invés de PDF?** DOCX permite que os destinatários editem texto ou substituam gráficos posteriormente, enquanto PDF é uma captura estática. + +--- + +## Etapa 4 – Verificar a Saída e Solucionar Problemas Comuns + +Depois que a conversão terminar, abra `ChartsInWord.docx` no Microsoft Word: + +1. **Verifique se cada planilha aparece como uma seção separada** – você deve ver tabelas que espelham seus dados do Excel. +2. **Confirme que os gráficos estão incorporados** – eles devem ser imagens selecionáveis, não marcadores de posição quebrados. +3. **Se um gráfico estiver faltando**, verifique se o tipo de gráfico é suportado pelo Aspose.Cells (veja a [lista oficial de compatibilidade](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Dica profissional:** Para pastas de trabalho grandes, considere aumentar o `MemorySetting` do Aspose.Cells para evitar `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Exemplo Completo (Pronto para Copiar‑Colar) + +Abaixo está o programa completo, pronto para compilar. Substitua `YOUR_DIRECTORY` pelo caminho real da pasta em sua máquina. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Resultado esperado:** Um documento Word (`ChartsInWord.docx`) que contém todas as planilhas como tabelas e cada gráfico como uma imagem incorporada de alta resolução. Abra‑o no Word e você verá o layout visual exato que tinha no Excel. + +--- + +## Perguntas Frequentes (FAQ) + +**Q: Posso converter vários arquivos Excel em um loop?** +A: Absolutamente. Envolva a lógica de conversão em um loop `foreach (var file in Directory.GetFiles(...))` e reutilize o mesmo padrão de instância `Workbook`. + +**Q: Isso também funciona com arquivos `.xls`?** +A: Sim—Aspose.Cells suporta formatos legados. Basta mudar a extensão de origem; a mesma chamada `SaveFormat.Docx` se aplica. + +**Q: E se eu precisar manter as fórmulas ao converter?** +A: O Word não suporta fórmulas do Excel nativamente. A conversão transforma as fórmulas em seus valores calculados. Se precisar de cálculos ao vivo, considere incorporar a pasta de trabalho como um objeto OLE. + +**Q: Existe uma maneira de controlar a resolução da imagem dos gráficos?** +A: Use `ImageOrPrintOptions` antes de salvar: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bônus: Incorporando Gráficos do Excel Diretamente no Word (Além de Salvar Excel como Docx) + +Se você prefere que o gráfico permaneça editável no Word, pode incorporar a planilha inteira do Excel como um objeto OLE: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Esta técnica *embed excel charts* como objetos ao vivo, permitindo que os usuários finais dêem duplo clique para editá‑los no Excel diretamente do Word. É uma alternativa prática quando você precisa de interatividade. + +--- + +## Conclusão + +Agora você tem uma solução sólida, de ponta a ponta, para **salvar Excel como docx** usando C#. O tutorial abordou o carregamento da pasta de trabalho, ajustes opcionais, a operação real de salvamento, etapas de verificação e até uma rápida visão sobre a incorporação de gráficos para cenários editáveis. Seguindo o código acima, você pode **converter Excel para Word**, preservar cada gráfico e lidar com arquivos grandes de forma elegante. + +Pronto para o próximo desafio? Tente automatizar uma conversão em lote, integrar essa lógica em uma API ASP.NET Core, ou explorar **convert Excel to docx** para painéis de múltiplas planilhas. As habilidades que você acabou de adquirir são a base para qualquer projeto de automação de documentos. + +Tem perguntas ou uma pasta de trabalho complicada que se recusa a converter? Deixe um comentário e nós vamos solucionar juntos. Feliz codificação! + +![Diagrama mostrando o fluxo de pasta de trabalho Excel para arquivo Word DOCX – ilustração do processo salvar excel como docx](https://example.com/images/save-excel-as-docx.png "Fluxo Salvar Excel como Docx") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..f739fd981f 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 – Adicionar propriedade personalizada em C#](./how-to-save-xlsb-add-custom-property-in-c/) +Aprenda a salvar arquivos XLSB e inserir propriedades personalizadas em C# usando Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/portuguese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..3b52c204a3 --- /dev/null +++ b/cells/portuguese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: Aprenda como salvar arquivos xlsb em C# enquanto adiciona uma propriedade + personalizada como ProjectId. Este guia mostra como criar uma pasta de trabalho + do Excel, adicionar a propriedade personalizada e verificá‑la. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: pt +og_description: Descubra como salvar arquivos xlsb e adicionar uma propriedade personalizada, + como ProjectId, usando C#. Guia passo a passo com código completo. +og_title: Como salvar XLSB – Adicionar propriedade personalizada em C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Como salvar XLSB – Adicionar propriedade personalizada em C# +url: /pt/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como salvar XLSB – Adicionar Propriedade Personalizada em C# + +Já se perguntou **como salvar xlsb** arquivos enquanto também guarda um pedaço de metadados dentro? Talvez você esteja construindo um mecanismo de relatórios que precise de um ProjectId oculto, ou simplesmente queira marcar planilhas para processamento posterior. **Como salvar xlsb** não é ciência de foguetes, mas combiná‑lo com uma propriedade personalizada adiciona um pequeno detalhe que muitos desenvolvedores ignoram. + +Neste tutorial vamos percorrer a criação de uma pasta de trabalho Excel, a adição de uma propriedade personalizada (sim, *add custom property*), a persistência do arquivo como uma pasta de trabalho binária **XLSB** e, por fim, o carregamento de volta para provar que a propriedade permaneceu. Ao longo do caminho também abordaremos valores de **how to add custom property** como um ProjectId, para que você saia com um padrão reutilizável para projetos futuros. + +> **Dica profissional:** Se você já está usando a biblioteca Aspose.Cells (o código abaixo faz), obtém suporte nativo a propriedades personalizadas sem dores de cabeça de interop COM. + +--- + +## Pré‑requisitos + +- .NET 6+ (ou .NET Framework 4.6+). +- Aspose.Cells for .NET – instale via NuGet: `Install-Package Aspose.Cells`. +- Conhecimento básico de C# – nada sofisticado, apenas alguns `using` statements. + +É só isso. Sem necessidade de instalação do Office, sem interop, apenas código gerenciado puro. + +--- + +## Etapa 1: Como salvar XLSB – Criar Pasta de Trabalho Excel + +A primeira coisa que você precisa fazer é criar um novo objeto workbook. Pense nisso como abrir um arquivo Excel em branco que vive apenas na memória até que você decida gravá‑lo no disco. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Por que começar com um workbook? Porque **create excel workbook** é a base para qualquer manipulação posterior—seja inserindo fórmulas, gráficos ou propriedades personalizadas. A classe `Workbook` abstrai todo o arquivo, enquanto `Worksheets` dão acesso às abas individuais. + +--- + +## Etapa 2: Adicionar Propriedade Personalizada à Planilha + +Agora vem a parte divertida—**add custom property**. No Aspose.Cells você pode anexar uma propriedade diretamente a uma planilha (ou ao próprio workbook). Aqui vamos armazenar um ProjectId numérico que serviços downstream podem ler sem tocar nas células visíveis. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? Basta chamar `CustomProperties.Add(name, value)`. A API cuida automaticamente do XML subjacente, então você não precisa se preocupar com detalhes de baixo nível. Esta é a maneira mais segura de incorporar metadados que não são visíveis ao usuário final. + +--- + +## Etapa 3: Salvar a Pasta de Trabalho como XLSB + +Com o workbook pronto e a propriedade personalizada anexada, é hora de **how to save xlsb**. O formato XLSB armazena os dados em representação binária, que costuma ser menor e mais rápido de abrir que o clássico XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Salvar como XLSB é tão simples quanto passar `SaveFormat.Xlsb` para o método `Save`. Se você está se perguntando se isso removerá a propriedade personalizada—fique tranquilo, o Aspose.Cells preserva tanto as propriedades ao nível do workbook quanto as da planilha no arquivo binário. + +--- + +## Etapa 4: Verificar a Propriedade Personalizada + +Um bom hábito é recarregar o arquivo e confirmar que a propriedade sobreviveu ao ciclo completo. Isso também demonstra **how to add custom property** posteriormente, caso você precise atualizá‑la. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Se o console imprimir `12345`, você conseguiu **how to save xlsb** *e* **add project id** de uma só vez. A propriedade vive dentro dos metadados internos do arquivo, invisível na UI mas perfeitamente legível por código. + +--- + +## Dicas Adicionais: Adicionando Múltiplas Propriedades & Casos de Borda + +### Adicionando Mais de Uma Propriedade + +Você pode empilhar quantas propriedades quiser: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Atualizando uma Propriedade Existente + +Se a propriedade já existir, basta atribuir um novo valor: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Lidando com Propriedades Ausentes + +Tentar ler uma propriedade inexistente lança uma `KeyNotFoundException`. Proteja seu código contra isso: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Compatibilidade entre Versões + +XLSB funciona no Excel 2007 + e na versão web do Excel. Contudo, versões mais antigas do Office (< 2007) não conseguem abrir arquivos XLSB. Se precisar de compatibilidade mais ampla, considere salvar uma segunda cópia como XLSX. + +### Considerações de Performance + +Arquivos binários XLSB são tipicamente 30‑50 % menores que XLSX, e carregam mais rápido. Para conjuntos de dados grandes (centenas de milhares de linhas), o ganho de velocidade pode ser perceptível. + +--- + +## Exemplo Completo + +Abaixo está o programa inteiro que você pode copiar‑colar em um projeto de console. Ele inclui todas as etapas, tratamento de erros e comentários necessários para colocar tudo em funcionamento imediatamente. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Saída esperada** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Se você vir o acima, dominou **how to save xlsb**, **add custom property** e **add project id**—tudo em um snippet limpo e reutilizável. + +--- + +## Perguntas Frequentes + +**P: Isso funciona com .NET Core?** +R: Absolutamente. Aspose.Cells é compatível com .NET Standard, então o mesmo código roda em .NET 5/6/7 e no .NET Framework. + +**P: Posso adicionar uma propriedade personalizada ao workbook inteiro em vez de a uma única planilha?** +R: Sim. Use `workbook.CustomProperties.Add("Key", value);` para anexá‑la ao nível do workbook. + +**P: E se eu precisar armazenar uma string grande (por exemplo, JSON) como propriedade?** +R: A API aceita strings de qualquer tamanho, mas lembre‑se de que blobs muito grandes podem aumentar o tamanho do arquivo. Para dados massivos, considere usar uma planilha oculta. + +**P: A propriedade personalizada é visível na UI do Excel?** +R: Não diretamente. Usuários podem visualizá‑la via **File → Info → Properties → Advanced Properties → Custom**, mas ela não aparecerá na grade. + +--- + +## Conclusão + +Cobremos **how to save xlsb** em C# enquanto **add custom property** como um ProjectId. Seguindo o padrão passo‑a‑passo—**create excel workbook**, **add custom property**, **save as XLSB**, e **verify**—você agora tem uma referência sólida, digna de citação, que funciona tanto para mecanismos de busca quanto para assistentes de IA. + +A seguir, você pode explorar: + +- **How to add custom property** a múltiplas planilhas em um loop. +- Exportar dados de um DataTable para o workbook antes de salvar. +- Criptografar o arquivo XLSB para segurança extra. + +Sinta‑se à vontade para experimentar, ajustar os nomes das propriedades ou trocar o formato binário por XLSX se precisar de compatibilidade maior. Tem um cenário complicado? Deixe um comentário e vamos solucionar juntos. Boa codificação! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/portuguese/net/excel-autofilter-validation/_index.md index fb9309e1ef..a3d88109ec 100644 --- a/cells/portuguese/net/excel-autofilter-validation/_index.md +++ b/cells/portuguese/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Nosso tutorial sobre [Validação de dados decimais no Excel](./decimal-data-val Aprenda como filtrar automaticamente linhas do Excel usando Aspose.Cells no .NET sem esforço com este guia passo a passo abrangente. ### [Validação de dados decimais no Excel](./decimal-data-validation-in-excel/) Descubra como implementar a validação de dados decimais no Excel usando o Aspose.Cells para .NET com nosso guia fácil de seguir. Aprimore a integridade dos dados sem esforço. +### [Remover AutoFiltro do Excel – Guia Completo em C#](./remove-autofilter-from-excel-complete-c-guide/) +Aprenda a remover o AutoFiltro de planilhas Excel usando Aspose.Cells para .NET com este guia completo em C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/portuguese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..24009040ee --- /dev/null +++ b/cells/portuguese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: Aprenda como remover o AutoFiltro do Excel usando C#. Este guia passo + a passo também mostra como excluir o AutoFiltro, desativar o AutoFiltro no Excel + e limpar o filtro da tabela do Excel. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: pt +og_description: Remova o AutoFiltro do Excel com C#. Este tutorial mostra como excluir + o AutoFiltro, desativar o AutoFiltro no Excel e limpar o filtro da tabela do Excel + em apenas algumas linhas de código. +og_title: Remover AutoFiltro do Excel – Guia Completo de C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Remover AutoFiltro do Excel – Guia Completo em C# +url: /pt/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Remover AutoFiltro do Excel – Guia Completo em C# + +Já precisou **remover AutoFiltro do Excel** mas não sabia qual chamada de API realmente o desativa? Você não está sozinho. Em muitas pipelines de relatórios a UI de filtro atrapalha o processamento posterior, então limpá‑la é um requisito comum. Neste tutorial vamos percorrer uma solução concisa e pronta para produção que não só mostra **como excluir AutoFiltro**, mas também explica **desativar filtros no estilo AutoFiltro do Excel** e como **limpar completamente o filtro de tabela do Excel**. + +> **O que você levará:** um programa C# pronto‑para‑executar que carrega uma planilha existente, remove o filtro da primeira tabela e salva uma cópia nova sem nenhum elemento de UI residual. + +## Pré‑requisitos + +- .NET 6+ (ou .NET Framework 4.7.2+) +- O pacote NuGet **Aspose.Cells** (a API que usamos no código) +- Uma planilha de exemplo (`TableWithFilter.xlsx`) que já contém uma tabela com AutoFiltro aplicado +- Noções básicas de sintaxe C# (não é necessário conhecimento profundo do Excel) + +Se você tem tudo isso, vamos começar. + +--- + +## Etapa 1 – Instalar Aspose.Cells e Configurar o Projeto + +Antes de qualquer código ser executado, você precisa da biblioteca que fornece as classes `Workbook`, `Worksheet` e `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Dica de especialista:** Use a versão de avaliação gratuita para testes; apenas lembre‑se de definir a chave de licença antes de colocar em produção. + +### Por que isso importa +Aspose.Cells abstrai o manuseio de OOXML de baixo nível, permitindo manipular tabelas, filtros e estilos sem precisar analisar XML manualmente. Por isso, tarefas de **remover autofiltro do excel** se tornam uma única linha de código em vez de um monte de ajustes em XML. + +--- + +## Etapa 2 – Carregar a Planilha que Contém a Tabela + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +O objeto `Workbook` representa o arquivo Excel completo. Carregá‑lo primeiro garante que temos uma cópia limpa na memória para trabalhar, o que é crucial quando você depois **limpa o filtro da tabela do Excel** sem afetar outras planilhas. + +--- + +## Etapa 3 – Obter a Planilha e a Tabela Alvo + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +Um **ListObject** é o termo da Aspose para uma tabela do Excel. Mesmo que sua planilha tenha várias tabelas, você pode percorrer `worksheet.ListObjects` e aplicar a mesma lógica a cada uma. Essa flexibilidade responde à pergunta “e se eu tiver várias tabelas?” que muitos desenvolvedores fazem. + +--- + +## Etapa 4 – Remover o AutoFiltro da Tabela + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Definir `AutoFilter` como `null` **remove o objeto de filtro totalmente**, que é a forma mais confiável de **como excluir autofiltro**. A propriedade alternativa `ShowAutoFilter` apenas oculta a UI, mas deixa o mecanismo de filtro ativo — útil se você quiser apenas **desativar autofiltro excel** visualmente enquanto preserva os critérios subjacentes. + +> **Caso extremo:** Se a tabela não tiver AutoFiltro aplicado, `table.AutoFilter` já será `null`. A linha acima é segura; simplesmente não faz nada. + +--- + +## Etapa 5 – Salvar a Planilha Modificada + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Salvar em um novo arquivo mantém o original intacto — uma boa prática ao automatizar transformações de Excel. Após executar o programa, abra `NoAutoFilter.xlsx`; você verá a tabela sem nenhum menu suspenso de filtro, confirmando que a operação de **remover filtro de tabela do excel** foi bem‑sucedida. + +--- + +## Verificar o Resultado – O Que Esperar + +1. **Abra `NoAutoFilter.xlsx`** no Excel. +2. **Selecione a tabela** – os pequenos ícones de funil ao lado dos cabeçalhos das colunas devem ter desaparecido. +3. **Verifique as demais planilhas** – elas permanecem inalteradas, provando que apenas **limpamos o filtro da tabela do excel** na planilha desejada. + +Se os ícones ainda aparecerem, verifique se você apontou para o índice correto do `ListObject`. Lembre‑se de que as tabelas do Excel são indexadas a partir de zero na Aspose, então `ListObjects[0]` é a primeira tabela da planilha. + +--- + +## Manipulando Múltiplas Tabelas ou Planilhas + +Às vezes você precisa **remover autofiltro do excel** em pastas de trabalho que contêm várias tabelas em diferentes planilhas. Aqui está uma extensão rápida: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Esse loop garante que **desativar autofiltro excel** aconteça em todos os lugares, eliminando filtros ocultos que poderiam atrapalhar importações de dados posteriores. + +--- + +## Armadilhas Comuns & Como Evitá‑las + +| Armadilha | Por que acontece | Solução | +|-----------|------------------|---------| +| **Filtro permanece após salvar** | Usar `ShowAutoFilter = false` apenas oculta a UI. | Use `table.AutoFilter = null` para realmente excluí‑lo. | +| **Índice da tabela errado** | Supor que a primeira tabela é a que você precisa. | Inspecione `worksheet.ListObjects.Count` e use nomes significativos (`tbl.Name`). | +| **Licença ausente** | Versão de avaliação pode inserir marcas d’água. | Registre sua licença cedo: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Arquivo bloqueado** | O Excel ainda tem o arquivo fonte aberto. | Garanta que a planilha esteja fechada no Excel antes de executar o script. | + +--- + +## Bônus: Re‑Adicionar um AutoFiltro (Caso Mude de Ideia) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Ter a operação inversa à mão transforma o tutorial em um ponto único para cenários de **remover autofiltro do excel** e **como excluir autofiltro**. + +--- + +## Exemplo Completo (Pronto para Copiar‑Colar) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Executar o código acima **removerá autofiltro do excel** de todas as tabelas da pasta de trabalho, proporcionando uma base limpa para processamento adicional. + +--- + +## Conclusão + +Acabamos de cobrir tudo que você precisa para **remover autofiltro do excel** usando C#. Desde a instalação do Aspose.Cells, carregamento da planilha, localização da tabela, exclusão efetiva do filtro, até a gravação do arquivo limpo — cada passo foi explicado com o “porquê” por trás. Agora você sabe como **como excluir autofiltro**, **remover filtro de tabela do excel**, **desativar autofiltro excel** e **limpar filtro de tabela do excel** em um único snippet reutilizável. + +Pronto para o próximo desafio? Tente automatizar a adição de formatação condicional, ou explore como **adicionar um AutoFiltro de volta** programaticamente. Ambos os tópicos se baseiam diretamente nos conceitos que acabamos de abordar e deixarão sua caixa de ferramentas de automação Excel ainda mais robusta. + +Tem dúvidas, ou encontrou um cenário que não cobrimos? Deixe um comentário abaixo — feliz codificação! + +--- + +![Screenshot showing an Excel sheet without any filter dropdowns – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/portuguese/net/excel-comment-annotation/_index.md index 004beebc52..078c14320e 100644 --- a/cells/portuguese/net/excel-comment-annotation/_index.md +++ b/cells/portuguese/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Aprenda a adicionar comentários com imagens no Excel usando o Aspose.Cells para Aprenda a adicionar comentários a células no Excel usando o Aspose.Cells para .NET. Guia passo a passo para iniciantes aprimorarem a funcionalidade do Excel. ### [Comentários de formato - fonte, cor, alinhamento](./format-comments-font-color-alignment/) Descubra como formatar comentários do Excel sem esforço usando o Aspose.Cells para .NET. Personalize a fonte, o tamanho e o alinhamento para aprimorar suas planilhas. +### [Criar Pasta de Trabalho Excel C# – Adicionar e Preencher Comentários com Marcadores Inteligentes](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Aprenda a criar uma pasta de trabalho Excel em C# e inserir comentários usando marcadores inteligentes com Aspose.Cells para .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/portuguese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..5aeca7be31 --- /dev/null +++ b/cells/portuguese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-21 +description: Crie uma pasta de trabalho Excel em C# e aprenda como adicionar comentários + ao Excel, preenchendo-os automaticamente usando Smart Markers. Guia passo a passo + para desenvolvedores. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: pt +og_description: Crie uma pasta de trabalho do Excel em C# e adicione rapidamente um + comentário ao Excel, depois preencha o comentário usando Smart Markers. Tutorial + completo com código. +og_title: Criar Pasta de Trabalho Excel C# – Adicionar e Preencher Comentários +tags: +- C# +- Excel automation +- Aspose.Cells +title: Criar Pasta de Trabalho Excel C# – Adicionar e Preencher Comentários com Marcadores + Inteligentes +url: /pt/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar Pasta de Trabalho Excel C# – Adicionar e Preencher Comentários com Marcadores Inteligentes + +Já precisou **criar pasta de trabalho Excel C#** e se perguntou como incorporar um comentário que se atualiza automaticamente? Você não está sozinho. Em muitos cenários de relatórios, você quer um comentário de célula que diga *“Created by Alice on 2024‑07‑15”* sem codificar o nome ou a data a cada vez. + +Neste tutorial vamos mostrar exatamente **como adicionar comentário ao Excel**, depois **como preencher o comentário** usando os Marcadores Inteligentes do Aspose.Cells. Ao final, você terá um programa pronto‑para‑executar que cria uma pasta de trabalho, injeta um comentário dinâmico e salva o arquivo — tudo em alguns passos simples. + +> **O que você receberá:** um aplicativo console C# completo e compilável, uma explicação de cada linha, dicas para armadilhas comuns e ideias para expandir a solução. + +## Pré-requisitos + +- .NET 6.0 SDK ou superior (o código funciona também com .NET Core e .NET Framework) +- Visual Studio 2022 ou qualquer IDE de sua preferência +- **Aspose.Cells for .NET** pacote NuGet (`Install-Package Aspose.Cells`) – esta biblioteca fornece as classes `Workbook`, `Worksheet` e `SmartMarkerProcessor` usadas abaixo. +- Familiaridade básica com a sintaxe C# – se você já escreveu um `Console.WriteLine`, está pronto para prosseguir. + +Agora que a base está pronta, vamos mergulhar. + +![Captura de tela do exemplo Criar pasta de trabalho Excel C#](excel-workbook.png "Criar pasta de trabalho Excel C# exemplo") + +## Etapa 1: Inicializar uma Nova Pasta de Trabalho – Conceitos Básicos de Criar Pasta de Trabalho Excel C# + +Primeiro precisamos de um objeto de pasta de trabalho limpo. Pense no `Workbook` como a tela em branco; sem ele você não pode colocar células, linhas ou comentários. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Por que isso importa:** `Workbook` cria automaticamente uma planilha padrão, então você não precisa chamar `Add` a menos que precise de abas extras. Acessar `Worksheets[0]` é a maneira mais rápida de começar a preencher dados. + +## Etapa 2: Inserir um Comentário com Marcador Inteligente – Como Adicionar Comentário com Tokens + +Em seguida, colocamos um comentário na célula **B2** que contém tokens de Marcador Inteligente (`«UserName»` e `«CreatedDate»`). Esses tokens serão substituídos mais tarde pelos valores reais. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Explicação:** +- `CreateComment()` cria o objeto de comentário se ele ainda não existir; caso contrário, retorna o já existente. +- A propriedade `Note` contém o texto visível. Ao envolver os marcadores em `« »` informamos ao Aspose.Cells que são **Marcadores Inteligentes** – placeholders que podem ser substituídos de uma só vez. + +> **Dica profissional:** Se precisar de um comentário em várias linhas, use `\n` dentro da string, por exemplo, `"Linha1\nLinha2"`. + +## Etapa 3: Preparar o Objeto de Dados – Como Preencher o Comentário Dinamicamente + +Marcadores Inteligentes precisam de uma fonte de dados. Em C# a maneira mais simples é usar um tipo anônimo que corresponda aos nomes dos placeholders. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Por que um tipo anônimo?** +Ele é leve, não requer um arquivo de classe extra e corresponde exatamente aos nomes das propriedades (`UserName`, `CreatedDate`) aos nomes dos tokens. Se preferir um modelo fortemente tipado, basta criar uma classe com as mesmas propriedades. + +## Etapa 4: Processar os Marcadores Inteligentes – Como Preencher o Comentário Usando o Objeto de Dados + +Agora a mágica acontece. O `SmartMarkerProcessor` varre a pasta de trabalho em busca de quaisquer tokens `«…»` e os substitui pelos valores de `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**O que acontece nos bastidores?** +`SmartMarkerProcessor` percorre cada célula, comentário, cabeçalho etc., procurando o padrão `«Token»`. Quando encontra, usa reflexão para ler a propriedade correspondente de `markerData` e grava o valor de volta. Nenhum loop manual é necessário. + +## Etapa 5: Salvar a Pasta de Trabalho – Preencher o Comentário do Excel e Persistir o Arquivo + +Por fim, gravamos a pasta de trabalho no disco. O comentário agora exibe algo como *“Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Verificação do resultado:** Abra `CommentFilled.xlsx` no Excel, passe o mouse sobre a célula **B2** e você verá o comentário com o nome de usuário e o timestamp reais. Não são necessárias alterações de código para execuções futuras — basta mudar os valores de `markerData`. + +--- + +## Variações Comuns & Casos de Borda + +### Usando um Formato de Data Personalizado + +Se quiser a data no formato `yyyy‑MM‑dd`, ajuste o objeto de dados: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Adicionando Múltiplos Comentários + +Você pode repetir a **Etapa 2** para outras células. Cada comentário pode ter seu próprio conjunto de tokens, ou compartilhar os mesmos se a informação for universal. + +### Trabalhando com Pastas de Trabalho Existentes + +Em vez de `new Workbook()`, carregue um arquivo existente: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +O restante das etapas permanece idêntico — Marcadores Inteligentes funcionam tanto em arquivos novos quanto em arquivos pré‑existentes. + +### Tratando Valores Nulos + +Se um token puder estar ausente, encapsule a propriedade em um tipo anulável ou forneça um valor padrão: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +O processador inserirá *“Unknown”* quando a origem for `null`. + +--- + +## Exemplo Completo Funcional (Pronto para Copiar‑Colar) + +Abaixo está o **programa inteiro** que você pode colocar em um projeto de aplicativo console e executar imediatamente (basta substituir `YOUR_DIRECTORY` por um caminho de pasta real). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Execute o programa, abra o arquivo gerado e você verá o comentário dinâmico na célula **B2**. Fácil, não é? + +--- + +## Perguntas Frequentes (FAQ) + +**P: Isso funciona com .NET Framework 4.7?** +R: Absolutamente. Aspose.Cells suporta .NET Framework 4.0+ e .NET Core/5/6/7. Basta referenciar o DLL ou pacote NuGet apropriado. + +**P: Posso usar essa abordagem para validação de dados ou formatação condicional?** +R: Marcadores Inteligentes são principalmente para inserir valores em células, comentários, cabeçalhos e rodapés. Para formatação condicional, ainda é necessário usar as APIs normais de `Style`. + +**P: E se eu precisar adicionar um comentário a uma **planilha diferente**?** +R: Recupere a planilha alvo (`workbook.Worksheets["MySheet"]`) e repita a **Etapa 2** nas células dessa planilha. + +--- + +## Próximos Passos & Tópicos Relacionados + +- **Como adicionar comentário ao Excel** programaticamente para várias células (percorrer um intervalo). +- **Preencher comentário do Excel** com dados de um banco de dados (usar um `DataTable` como fonte de dados para Marcadores Inteligentes). +- Explorar **arrays de Marcadores Inteligentes** para gerar tabelas automaticamente. +- Aprender sobre **estilização no Aspose.Cells** para formatar a fonte, cor e tamanho do comentário. + +Experimente os trechos, troque a fonte de dados e você dominará rapidamente **como preencher comentário** em qualquer cenário de automação Excel. + +--- + +### Conclusão + +Acabamos de percorrer todo o processo de **criar pasta de trabalho excel c#**, **adicionar comentário ao excel** e **preencher comentário do excel** usando Marcadores Inteligentes. A solução é compacta, reutilizável e pronta para produção. + +Teste, ajuste os placeholders e deixe a biblioteca fazer o trabalho pesado. Se encontrar algum obstáculo, deixe um comentário abaixo — 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/_index.md b/cells/portuguese/net/excel-custom-number-date-formatting/_index.md index 2eef2a2012..70657e4acc 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,8 @@ 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. +### [Definir Formato Personalizado de Célula em C# – Guia Completo para Gravar e Ler Datas no Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Aprenda a definir formatos personalizados de células e a gravar e ler datas no Excel usando C# com Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/portuguese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..0f802e7db0 --- /dev/null +++ b/cells/portuguese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,209 @@ +--- +category: general +date: 2026-03-21 +description: Defina formato personalizado de célula em C# e aprenda como gravar datas + no Excel, aplicar formato de data personalizado, ler DateTime do Excel e criar rapidamente + uma pasta de trabalho. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: pt +og_description: Defina formato personalizado de célula em C# para gravar data no Excel, + aplique formato de data personalizado, leia DateTime do Excel e crie planilha de + workbook com facilidade. +og_title: Definir Formato Personalizado de Célula em C# – Escrever e Ler Datas no + Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Definir Formato Personalizado de Célula em C# – Guia Completo para Escrever + e Ler Datas no Excel +url: /pt/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Definir Formato Personalizado de Célula – Gravar & Ler Datas no Excel com C# + +Já precisou **definir formato personalizado de célula** em um arquivo Excel a partir do C# mas não sabia por onde começar? Você não está sozinho. Em muitas ferramentas de relatório ou utilitários de exportação de dados a data precisa aparecer em um local específico — pense em datas de era japonesa, calendários fiscais ou strings ISO‑8601. + +Neste tutorial vamos percorrer um **exemplo completo e executável** que mostra como **gravar data no Excel**, **aplicar formato de data personalizado**, **ler DateTime do Excel** e **criar planilha de workbook** com Aspose.Cells. Ao final, você terá um programa único e autocontido que pode ser inserido em qualquer projeto .NET. + +## O que Você Vai Aprender + +- Como **criar planilha de workbook** programaticamente. +- Os passos exatos para **gravar data no Excel** usando uma string específica de localidade. +- Como **aplicar formato de data personalizado** (incluindo notação de era japonesa). +- O modo de **ler DateTime do Excel** de volta para um objeto `DateTime`. +- Dicas, armadilhas e variações que você pode encontrar ao lidar com datas no Excel. + +Nenhuma documentação externa necessária — tudo que você precisa está aqui. + +## Pré‑requisitos + +- .NET 6.0 ou superior (o código também funciona no .NET Framework 4.7+). +- Aspose.Cells para .NET instalado via NuGet (`Install-Package Aspose.Cells`). +- Um entendimento básico da sintaxe C# — nada sofisticado. + +> **Dica profissional:** Se você estiver usando o Visual Studio, habilite *nullable reference types* para capturar bugs sutis mais cedo. + +## Etapa 1: Criar um Workbook e uma Worksheet + +Primeiro de tudo: você precisa de um objeto workbook que represente o arquivo Excel e de uma worksheet onde os dados viverão. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Por que isso importa:* A classe `Workbook` é o ponto de entrada para todas as operações do Excel. Criá‑la na memória significa que você nunca toca no sistema de arquivos até salvar explicitamente, o que mantém o processo rápido e amigável a testes. + +## Etapa 2: Gravar Data no Excel + +Em seguida, vamos colocar uma string de data da era japonesa (`"R02-04-01"`) na célula **A1**. A string imita a era Reiwa (ano 2, 1º de abril). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*O que está acontecendo:* `PutValue` armazena a string bruta. Aspose.Cells tentará analisá‑la posteriormente com base no estilo da célula. Se você pular esta etapa e gravar um `DateTime` diretamente, perderá a informação da era que deseja exibir. + +## Etapa 3: Aplicar o Formato Numérico de Data Incorporado (ID 14) + +O Excel possui um formato de data incorporado com ID 14 (`mm-dd-yy`). Aplicá‑lo informa ao motor que a célula **contém uma data**, não apenas texto. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Por que usar o ID 14?* É o formato “data curta” universal que garante que o Excel trate o conteúdo como um valor de data, pré‑requisito para que qualquer formato personalizado funcione corretamente. + +## Etapa 4: Definir um Formato Personalizado para Exibir Notação de Era Japonesa + +Agora vem a parte divertida: instruímos o Excel a renderizar a data usando o formato de era japonesa. A string personalizada `[$-ja-JP]ggge年m月d日` faz exatamente isso. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Explicação:* +- `[$-ja-JP]` força a localidade para japonês. +- `ggg` é o nome da era (ex.: “R” para Reiwa). +- `e` é o ano da era. +- `年`, `月`, `日` são caracteres japoneses literais para ano, mês e dia. + +Se precisar de uma localidade diferente, basta substituir `ja-JP` pelo código cultural adequado (ex.: `en-US`). + +## Etapa 5: Recuperar o Valor DateTime Analisado + +Por fim, vamos ler o **real `DateTime`** que o Excel analisou a partir da célula. Isso comprova que a string foi interpretada corretamente. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Resultado:* O console exibe `Parsed DateTime: 2020-04-01`. Embora tenhamos inserido uma string de era japonesa, o Excel armazena internamente a data gregoriana, que pode ser usada para cálculos, comparações ou exportações adicionais. + +## Etapa 6: Salvar o Workbook (Opcional) + +Se quiser ver a planilha formatada no Excel, basta salvá‑la no disco. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Abra o **JapaneseEraDate.xlsx** gerado e você verá a célula **A1** exibindo `R02年4月1日` (o formato exato de era japonesa que definimos). + +![definir formato personalizado de célula exemplo](image-placeholder.png "Célula do Excel mostrando data da era japonesa – definir formato personalizado de célula") + +*O texto alternativo acima contém a palavra‑chave principal, atendendo ao requisito de SEO da imagem.* + +## Variações Comuns & Casos de Borda + +### Gravando um Formato de Data Diferente + +Se preferir ISO‑8601 (`2020-04-01`) em vez de uma string de era, basta mudar a chamada `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Lidando com Células Nulas ou Vazias + +Ao ler uma data, sempre verifique se a célula não está vazia para evitar `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Suportando Múltiplas Localidades + +Você pode percorrer uma lista de códigos culturais e aplicá‑los dinamicamente: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Dicas Profissionais & Armadilhas + +- **Sempre defina primeiro um formato numérico incorporado** (`Style.Number`). Sem ele, o Excel trata a célula como texto simples e o formato personalizado é ignorado. +- **Códigos de localidade não diferenciam maiúsculas de minúsculas**, mas usar a forma canônica (`ja-JP`) evita confusões. +- **Salvar é opcional** para processamento em memória; você pode transmitir o workbook diretamente para uma resposta web (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Licenças Aspose.Cells**: A versão de avaliação gratuita adiciona marca d'água. Para produção, certifique‑se de ter uma licença válida para evitar penalidades de desempenho. + +## Recapitulação + +Mostramos como **definir formato personalizado de célula** em C# para exibir datas de era japonesa, como **gravar data no Excel**, **aplicar formato de data personalizado**, **ler DateTime do Excel** e **criar planilha de workbook** — tudo em um único programa autocontido. A palavra‑chave principal aparece naturalmente ao longo do texto, enquanto palavras‑chave secundárias são inseridas em títulos e no corpo, atendendo tanto aos requisitos de SEO quanto aos padrões de citação por IA. + +## O que vem a seguir? + +- Explore **formatação condicional** para destacar datas vencidas. +- Combine esta abordagem com **PivotTables** para relatórios dinâmicos. +- Experimente **ler arquivos CSV grandes** e convertê‑los para Excel usando a mesma lógica de tratamento de datas. + +Sinta‑se à vontade para experimentar diferentes localidades, padrões personalizados ou até fusos horários. Se encontrar algum obstáculo, deixe um comentário abaixo — 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-data-export-retrieval/_index.md b/cells/portuguese/net/excel-data-export-retrieval/_index.md index 2991699c04..3e88f7277b 100644 --- a/cells/portuguese/net/excel-data-export-retrieval/_index.md +++ b/cells/portuguese/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Quer saber como fazer isso? Confira este guia prático em [Recuperar dados de c ### [Recuperar dados de células no Excel](./retrieve-data-from-cells-in-excel/) Aprenda como recuperar dados de células do Excel usando o Aspose.Cells para .NET neste tutorial passo a passo, perfeito para iniciantes e desenvolvedores experientes. +### [Exportar Tabela de Dados do Excel em C# – Guia Completo](./export-excel-data-table-in-c-complete-guide/) +Aprenda a exportar tabelas de dados do Excel usando o Aspose.Cells para .NET em C# neste guia completo, ideal para iniciantes e desenvolvedores avançados. + +### [Como Exportar Dados do Excel em C# – Guia Passo a Passo](./how-to-export-excel-data-in-c-step-by-step-guide/) +Aprenda a exportar dados do Excel usando o Aspose.Cells para .NET em C# neste guia passo a passo, ideal para iniciantes e desenvolvedores avançados. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/portuguese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/portuguese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..ef1e7ab9d3 --- /dev/null +++ b/cells/portuguese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-03-21 +description: Exportar tabela de dados do Excel para um DataTable com cabeçalhos, limitar + casas decimais e exportar as primeiras 100 linhas usando Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: pt +og_description: Aprenda a exportar uma tabela de dados do Excel para um DataTable, + manter os cabeçalhos, limitar casas decimais e obter as primeiras 100 linhas em + C#. +og_title: Exportar Tabela de Dados do Excel em C# – Guia Passo a Passo +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Exportar Tabela de Dados do Excel em C# – Guia Completo +url: /pt/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Export Excel Data Table – Full C# Walkthrough + +Precisa **exportar a tabela de dados do Excel** de uma pasta de trabalho para um `DataTable` .NET? Você está no lugar certo — este guia mostra exatamente como fazer isso, manter os cabeçalhos das colunas, limitar casas decimais e extrair apenas as primeiras 100 linhas. + +Se você já ficou olhando para uma planilha e pensou: “Como faço para levar isso para o meu app sem perder formatação?” você não está sozinho. Nos próximos minutos vamos transformar esse “e se” em uma solução concreta, copiar‑colar, que funciona com Aspose.Cells, uma biblioteca popular para manipulação de Excel. + +## O que você vai aprender + +- Como **exportar excel para datatable** usando o método `ExportDataTable`. +- Como manter os nomes originais das colunas (`export excel with headers`). +- Como **limitar casas decimais excel** configurando `ExportTableOptions`. +- Como recuperar com segurança apenas as 100 primeiras linhas (`export first 100 rows`). + +Sem scripts externos, sem strings mágicas — apenas C# puro que você pode inserir em qualquer projeto .NET. + +## Pré‑requisitos + +| Requisito | Por que importa | +|-----------|-----------------| +| .NET 6 ou posterior (ou .NET Framework 4.7+) | Aspose.Cells suporta ambos, mas runtimes mais recentes oferecem APIs prontas para async. | +| Pacote NuGet Aspose.Cells for .NET | Fornece `Workbook`, `ExportTableOptions` e o helper `ExportDataTable`. | +| Um arquivo Excel de exemplo (por exemplo, `Numbers.xlsx`) | A fonte dos dados que você exportará. | +| Conhecimento básico de C# | Você seguirá os trechos de código, mas nada avançado é necessário. | + +Se algum desses itens lhe for desconhecido, obtenha o pacote NuGet com `dotnet add package Aspose.Cells` e crie um pequeno arquivo Excel com alguns números — seus dados de teste. + +![exemplo de exportação de tabela de dados do excel](excel-data-table.png "Captura de tela de uma planilha Excel que será exportada para um DataTable") + +## Etapa 1: Carregar a Pasta de Trabalho (export excel data table) + +A primeira coisa que você precisa é uma instância de `Workbook` que aponte para o seu arquivo Excel. Pense nisso como abrir um livro antes de ler os capítulos. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Por que isso importa:** Carregar a pasta de trabalho lhe dá acesso às suas planilhas, células e estilos. Se o caminho do arquivo estiver errado, o Aspose lançará uma `FileNotFoundException`, então verifique o local. + +## Etapa 2: Configurar Opções de Exportação – limit decimal places excel + +Por padrão o Aspose exporta todo valor numérico com precisão total. Muitas vezes você precisa apenas de alguns dígitos significativos, especialmente ao alimentar os dados em uma grade de UI ou em uma API que espera números arredondados. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Dica de especialista:** Se precisar de uma estratégia de arredondamento diferente (por exemplo, sempre arredondar para cima), você pode pós‑processar o `DataTable` após a exportação. A configuração `SignificantDigits` é a maneira mais rápida de **limitar casas decimais excel** sem escrever loops extras. + +## Etapa 3: Exportar o Intervalo Desejado (export first 100 rows) + +Agora informamos ao Aspose qual bloco de células queremos puxar para um `DataTable`. Neste tutorial pegamos as primeiras 100 linhas e as primeiras 10 colunas, mas você pode ajustar esses números conforme sua necessidade. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Caso de borda:** Se a planilha contiver menos de 100 linhas, o Aspose simplesmente exportará o que existir sem lançar erro. Contudo, pode ser interessante proteger contra um intervalo inesperadamente pequeno: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Etapa 4: Verificar o Resultado – Dump Rápido no Console + +Ver os dados no depurador é bom, mas imprimir algumas linhas no console confirma que o **export excel to datatable** realmente funcionou e que as casas decimais foram truncadas. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Saída esperada + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Observe como as colunas numéricas agora exibem apenas quatro dígitos significativos, correspondendo à configuração `SignificantDigits = 4` que aplicamos anteriormente. + +## Etapa 5: Envolver Tudo – Um Exemplo Completo e Executável + +Abaixo está o programa completo que você pode copiar‑colar em um aplicativo console. Ele inclui tratamento de erros, a proteção opcional de contagem de linhas e o método auxiliar para impressão. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Execute o programa e você verá as primeiras 100 linhas da sua planilha, arredondadas adequadamente, com os nomes das colunas preservados. + +## Perguntas Frequentes & Armadilhas + +| Pergunta | Resposta | +|----------|----------| +| **E se minha planilha tiver células mescladas?** | `ExportDataTable` achata células mescladas pegando o valor da célula superior‑esquerda. Se precisar de tratamento customizado, desfaça a mesclagem primeiro ou leia os objetos `Cell` diretamente. | +| **Posso exportar para um `DataSet` em vez disso?** | Sim — use `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/portuguese/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..e67b0b2727 --- /dev/null +++ b/cells/portuguese/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Como exportar dados do Excel com nomes de colunas, preservar o formato + numérico e ler linhas específicas usando Aspose.Cells em C#. Aprenda a ler a planilha + do Excel e exportar linhas específicas de forma eficiente. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: pt +og_description: Como exportar dados do Excel com nomes de colunas, preservar o formato + numérico e ler linhas específicas usando Aspose.Cells. Um exemplo completo e executável + para desenvolvedores C#. +og_title: Como Exportar Dados do Excel em C# – Guia Completo de Programação +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Como Exportar Dados do Excel em C# – Guia Passo a Passo +url: /pt/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Exportar Dados do Excel em C# – Guia Completo de Programação + +Já se perguntou **como exportar excel** dados sem perder a formatação original? Talvez você tenha tentado um rápido copiar‑colar e acabou com datas aparecendo como “44728” ou cabeçalhos de coluna ausentes. Isso é frustrante, não é? Neste tutorial você verá uma maneira limpa, de ponta a ponta, de ler uma planilha Excel, preservar o formato numérico, exportar com nomes de coluna e até selecionar apenas as linhas que você precisa. + +Usaremos a biblioteca Aspose.Cells porque ela oferece controle detalhado sobre as opções de exportação. Ao final deste guia você terá um trecho reutilizável que pode ser inserido em qualquer projeto .NET, e entenderá por que cada opção é importante. Nenhuma documentação externa necessária — tudo o que você precisa está aqui. + +--- + +## O que Você Vai Aprender + +- **Read Excel worksheet** na memória com Aspose.Cells. +- **Export specific rows** (por exemplo, linhas 0‑49) mantendo os nomes das colunas. +- **Preserve number format** para que moedas, datas e percentuais permaneçam intactos. +- Como **export with column names** e incluir comentários de célula se precisar. +- Um exemplo completo, pronto‑para‑executar em C#, além de dicas para armadilhas comuns. + +### Pré-requisitos + +- .NET 6.0 ou posterior (o código funciona também com .NET Framework 4.6+). +- Aspose.Cells para .NET instalado via NuGet (`Install-Package Aspose.Cells`). +- Um arquivo Excel (`input.xlsx`) colocado em uma pasta que você possa referenciar. + +> **Dica profissional:** Se você estiver em um pipeline CI, considere obter o pacote NuGet de um feed privado para evitar surpresas de licenciamento. + +--- + +## Etapa 1 – Instalar Aspose.Cells e Adicionar Namespaces + +Primeiro, certifique‑se de que o pacote Aspose.Cells está no seu projeto. Abra o Package Manager Console e execute: + +```powershell +Install-Package Aspose.Cells +``` + +Em seguida, adicione as diretivas `using` necessárias no topo do seu arquivo C#: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Essas importações dão acesso a `Workbook`, `Worksheet`, `ExportTableOptions` e `DataTable` — os componentes principais para **reading an Excel worksheet** e exportar dados. + +--- + +## Etapa 2 – Carregar a Pasta de Trabalho (Read the Excel File) + +Agora realmente **read the Excel worksheet**. O construtor `Workbook` recebe um caminho para o arquivo, e o Aspose.Cells lidará tanto com formatos `.xlsx` quanto com os mais antigos `.xls`. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Por que isso importa:** Carregar a pasta de trabalho uma vez e reutilizar o mesmo objeto `Worksheet` é muito mais eficiente do que abrir o arquivo repetidamente, especialmente para planilhas grandes. + +--- + +## Etapa 3 – Configurar Opções de Exportação (Preserve Number Format & Column Names) + +É aqui que dizemos ao Aspose.Cells *como* exportar. A classe `ExportTableOptions` nos permite ajustar finamente a saída. Ativaremos três flags: + +1. `ExportAsString = true` – força cada célula a se tornar uma string, o que garante que os números mantenham sua representação visual. +2. `IncludeCellComments = true` – copia quaisquer comentários anexados às células (útil para documentação). +3. `PreserveNumberFormat = true` – mantém o formato numérico original (símbolos de moeda, padrões de data, etc.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Caso extremo:** Se você definir `ExportAsString` como `false` mas ainda quiser manter os formatos numéricos, pode acabar com valores numéricos brutos (por exemplo, 44728 para uma data). Manter ambas as flags ativadas evita essa surpresa. + +--- + +## Etapa 4 – Obter a Primeira Worksheet (Read Excel Worksheet) + +A maioria dos arquivos simples tem os dados que você precisa na primeira planilha, então a buscaremos por índice. Se precisar de outra planilha, basta substituir `0` pelo índice zero‑based apropriado ou usar `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Por que é útil:** Acessar diretamente o objeto worksheet lhe dá controle total sobre sua coleção `Cells`, o que é essencial para **export specific rows** mais adiante. + +--- + +## Etapa 5 – Exportar um Intervalo de Células (Export Specific Rows) + +Agora o coração do tutorial: exportar linhas 0‑49 e colunas 0‑4 (ou seja, as primeiras 50 linhas e as primeiras cinco colunas) para um `DataTable`. Também pediremos ao Aspose.Cells que inclua os nomes das colunas como a primeira linha do `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### O Que Isso Faz + +- **`startRow: 0`** – começa no topo da planilha. +- **`totalRows: 50`** – captura as primeiras 50 linhas (ou seja, **export specific rows**). +- **`totalColumns: 5`** – limita a exportação às primeiras cinco colunas. +- **`includeColumnNames: true`** – garante que os cabeçalhos de coluna do `DataTable` correspondam à linha de cabeçalho do Excel, atendendo ao requisito de **export with column names**. +- **`exportOptions`** – aplica as configurações da Etapa 3, de modo que seus valores numéricos permaneçam como “$1,234.56” em vez de “1234.56”. + +--- + +## Etapa 6 – Verificar a Exportação (Como o Resultado Se Parece) + +Vamos imprimir as primeiras linhas no console para que você veja que a formatação sobreviveu. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Saída esperada (exemplo):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Observe como as datas aparecem no formato `MM/dd/yyyy` e a moeda mantém o símbolo `$` — graças ao **preserve number format**. + +--- + +## Armadilhas Comuns & Como Evitá‑las + +| Problema | Por que acontece | Correção | +|-------|----------------|-----| +| Dates turn into large numbers | `ExportAsString` left `false` | Keep `ExportAsString = true` or convert cells manually | +| Missing column headers | `includeColumnNames` set to `false` | Set it to `true` when you need **export with column names** | +| Comments disappear | `IncludeCellComments` not enabled | Turn on `IncludeCellComments` in `ExportTableOptions` | +| Exporting the wrong sheet | Using `Worksheets[0]` on a multi‑sheet file | Specify the sheet name: `workbook.Worksheets["Data"]` | +| Out‑of‑range exception | `totalRows` exceeds actual rows | Use `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## Bônus: Exportar a Planilha Inteira Enquanto Ainda Preserva Formatos + +Se mais tarde decidir que precisa da planilha inteira, basta substituir `totalRows` e `totalColumns` pelas dimensões máximas da planilha: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Agora você tem uma rotina de **read excel worksheet** que funciona para qualquer tamanho, enquanto ainda **preserving number format** e **exporting with column names**. + +--- + +## Exemplo Completo Funcional (Pronto para Copiar‑Colar) + +Abaixo está o programa completo que você pode inserir em um aplicativo console. Ele inclui todas as etapas, importações e uma simples impressão de verificação. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Salve isso como `Program.cs`, execute `dotnet run`, e você deverá ver a pré‑visualização formatada no seu terminal. + +--- + +## Conclusão + +Acabamos de percorrer **how to export excel** dados usando Aspose.Cells, cobrindo tudo desde o carregamento da pasta de trabalho até a preservação do formato numérico, exportação com nomes de coluna e limitação da exportação a linhas específicas. O código é autocontido, totalmente executável e inclui salvaguardas práticas para os casos extremos mais comuns. + +Pronto para o próximo desafio? Tente exportar diretamente para um CSV mantendo ainda a formatação numérica original, ou envie o `DataTable` para um contexto Entity Framework Core para inserções em massa no banco de dados. Ambos os cenários se baseiam nos mesmos fundamentos que abordamos aqui. + +Se você achou este guia útil + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..00e308d6bd 100644 --- a/cells/portuguese/net/excel-workbook/_index.md +++ b/cells/portuguese/net/excel-workbook/_index.md @@ -72,7 +72,7 @@ Então, por que não aproveitar esta oportunidade para aprimorar suas habilidade | [Acessar informações de extensão da Web](./access-web-extension-information/) | Aprenda como acessar informações de extensão da Web em arquivos do Excel usando o Aspose.Cells para .NET com nosso guia passo a passo. | | [Adicionar assinatura digital a um arquivo Excel já assinado](./add-digital-signature-to-an-already-signed-excel-file/) | Aprenda como adicionar uma assinatura digital a um arquivo Excel já assinado usando o Aspose.Cells para .NET com este guia passo a passo detalhado. | | [Adicionar extensão da Web](./add-web-extension/) | Aprenda como adicionar extensões da web a arquivos do Excel usando o Aspose.Cells para .NET com este tutorial passo a passo completo que aprimora as funcionalidades da sua planilha. | -| [Ajustar nível de compressão](./adjust-compression-level/) Aprenda a ajustar os níveis de compactação de arquivos do Excel usando o Aspose.Cells para .NET. Otimize o tamanho dos seus arquivos com eficiência com este guia passo a passo. | +| [Ajustar nível de compressão](./adjust-compression-level/) Aprenda a ajustar os níveis de compactação de arquivos do Excel usando o Aspose.Cells para .NET. Otimize o tamanho dos seus arquivos com eficiência com este guia passo a passo. | | [Permitir apóstrofo inicial](./allow-leading-apostrophe/) | Gerencie apóstrofos à esquerda no Excel sem esforço com o Aspose.Cells para .NET. Este tutorial completo guia você passo a passo pelo processo. | | [Criar pasta de trabalho compartilhada](./create-shared-workbook/) | Aprenda a criar uma pasta de trabalho compartilhada usando o Aspose.Cells para .NET com este guia passo a passo simples. Perfeito para aprimorar a colaboração em equipe. | | [Detectar tipos de link](./detect-link-types/) | Aprenda a detectar tipos de hiperlink no Excel usando o Aspose.Cells para .NET. Etapas simples e exemplos de código incluídos. | @@ -85,7 +85,8 @@ Então, por que não aproveitar esta oportunidade para aprimorar suas habilidade | [Atualizar item de fórmula do Power Query](./update-power-query-formula-item/) Atualize facilmente itens de fórmula do Power Query no Excel usando o Aspose.Cells para .NET. Guia passo a passo para otimizar seus processos de manipulação de dados. | | [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. | +| [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 pasta de trabalho Excel com tabela estilizada – Guia passo a passo](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Aprenda a criar uma pasta de trabalho Excel contendo uma tabela estilizada usando Aspose.Cells para .NET, passo a passo. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/portuguese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..edd8796d14 --- /dev/null +++ b/cells/portuguese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-21 +description: Criar uma pasta de trabalho do Excel e importar a tabela de dados para + o Excel definindo o estilo da coluna, exportar os dados para o Excel e formatar + a data das células do Excel em minutos. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: pt +og_description: Crie rapidamente uma pasta de trabalho do Excel. Aprenda a importar + datatable para o Excel, definir o estilo das colunas, exportar dados para o Excel + e formatar datas nas células do Excel em um único guia. +og_title: Criar Pasta de Trabalho Excel – Tutorial Completo de Estilização e Exportação +tags: +- C# +- Aspose.Cells +- Excel automation +title: Criar Pasta de Trabalho do Excel com Tabela Estilizada – Guia Passo a Passo +url: /pt/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar Pasta de Trabalho Excel – Tutorial de Programação Completo + +Já precisou **create excel workbook** que pareça polido direto do código? Talvez você esteja extraindo dados de um banco de dados e queira que as datas apareçam no formato correto sem ter que mexer no Excel depois. Esse é um ponto de dor comum—especialmente quando o resultado chega na caixa de entrada de um cliente e ele espera que tudo esteja pronto para uso. + +Neste guia vamos percorrer uma solução única e autocontida que **imports datatable to excel**, aplica um **set column style** e, finalmente, **export data to excel** como um arquivo bem formatado. Você verá exatamente como **format excel cells date** para que a planilha se pareça com um relatório profissional, e receberá um exemplo completo e executável ao final. Sem peças faltando, sem atalhos “veja a documentação”—apenas código puro que você pode inserir no seu projeto hoje. + +--- + +## O que você aprenderá + +- Como **create excel workbook** usando a biblioteca Aspose.Cells (ou qualquer API compatível). +- A maneira mais rápida de **import datatable to excel** sem loops manuais célula por célula. +- Técnicas para **set column style**, incluindo a aplicação de um formato de data a uma coluna específica. +- Como **export data to excel** com uma única chamada `Save`. +- Armadilhas comuns ao tentar **format excel cells date** e como evitá‑las. + +### Pré‑requisitos + +- .NET 6+ (ou .NET Framework 4.6+). +- Aspose.Cells for .NET instalado (`Install-Package Aspose.Cells`). +- Um `DataTable` pronto para ser exportado—sua fonte de dados pode ser SQL, CSV ou qualquer coisa que possa ser convertida em um `DataTable`. + +Se você já está confortável com C# e tem esses itens em mãos, está pronto para começar. Caso contrário, a seção “Pré‑requisitos” acima fornece uma lista rápida para você conferir. + +--- + +## Etapa 1 – Criar a Instância da Pasta de Trabalho Excel + +A primeira coisa que você faz quando quer **create excel workbook** programaticamente é instanciar o objeto workbook. Pense nisso como abrir um caderno em branco onde você escreverá seus dados mais tarde. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Por que isso importa:** +> A classe `Workbook` é o ponto de entrada para toda operação no Aspose.Cells. Criá‑la antecipadamente fornece uma tela limpa, e você pode carregar um arquivo existente depois, se precisar acrescentar dados em vez de começar do zero. + +--- + +## Etapa 2 – Preparar o DataTable para Importar + +Antes de podermos **import datatable to excel**, precisamos de um `DataTable`. Em projetos reais isso costuma vir de `SqlDataAdapter.Fill` ou `DataTable.Load`. Para fins de clareza, vamos criar um método que devolve uma tabela pronta. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Dica:** Se suas datas estiverem armazenadas como strings, converta‑as para `DateTime` primeiro—caso contrário a etapa **format excel cells date** não funcionará como esperado. + +--- + +## Etapa 3 – Definir Estilos para Cada Coluna (Set Column Style) + +Agora vem a parte em que **set column style**. Criaremos um array de objetos `Style`—um por coluna. A primeira coluna recebe um formato de data embutido (código 14), enquanto as demais permanecem com o formato geral (código 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Por que usar objetos de estilo?** +> Aplicar um estilo uma única vez e reutilizá‑lo é muito mais eficiente do que definir o formato em cada célula individualmente. Também garante que toda a coluna siga a mesma regra **format excel cells date**, o que é essencial para consistência quando o arquivo for aberto em diferentes localidades. + +--- + +## Etapa 4 – Importar o DataTable com Estilos na Worksheet + +Com o workbook pronto e os estilos definidos, agora **import datatable to excel**. O método `ImportDataTable` faz o trabalho pesado: grava os cabeçalhos das colunas, as linhas e aplica os estilos que passamos. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **O que está acontecendo nos bastidores?** +> - `true` indica ao Aspose.Cells que inclua os nomes das colunas na primeira linha. +> - `0, 0` são os índices de linha e coluna iniciais (canto superior esquerdo). +> - `columnStyles` alinha cada coluna ao estilo que preparamos, garantindo que a regra **format excel cells date** seja aplicada à coluna de data. + +--- + +## Etapa 5 – Salvar (Exportar) o Workbook para um Arquivo Físico + +Finalmente, **export data to excel** salvando o workbook no disco. Você pode mudar o caminho para qualquer pasta que desejar, ou até mesmo transmitir o arquivo diretamente como resposta HTTP em uma API web. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro dica:** Use `workbook.Save(Stream, SaveFormat.Xlsx)` quando precisar enviar o arquivo pela rede sem gravá‑lo no disco. + +--- + +## Exemplo Completo Funcionando (Todas as Etapas Combinadas) + +Abaixo está o programa completo, pronto‑para‑executar. Copie‑e‑cole em um aplicativo console, ajuste o caminho de saída e você terá um arquivo Excel bem formatado em segundos. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Saída esperada:** +Ao abrir `StyledTable.xlsx`, a coluna A mostra datas como `03/19/2026` (dependendo da sua localidade), enquanto as colunas B e C exibem os nomes dos produtos e quantidades como texto/números simples. Nenhum passo extra de formatação é necessário—seu processo **create excel workbook** está concluído. + +--- + +## Perguntas Frequentes & Casos de Borda + +### 1️⃣ E se meu DataTable tiver mais de três colunas? +Adicione mais objetos `Style` ao array `columnStyles` e ajuste a propriedade `Number` para qualquer coluna que precise de um formato especial (por exemplo, moeda, porcentagem). O método `ImportDataTable` combinará cada estilo pela posição. + +### 2️⃣ Posso aplicar um formato de data personalizado em vez do embutido 14? +Com certeza. Substitua `columnStyles[i].Number = 14;` por: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Como **export data to excel** em uma API web sem gravar no disco? +Use um `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ E se a localidade do usuário esperar um separador de data diferente? +O formato de data embutido (ID 14) respeita as configurações de localidade do workbook. Se precisar de um formato fixo independente da localidade, use a propriedade `Custom` como mostrado acima. + +### 5️⃣ Isso funciona com .NET Core? +Sim—Aspose.Cells suporta .NET Standard 2.0 e posteriores, então o mesmo código roda no .NET 6, .NET 7 ou qualquer runtime compatível. + +--- + +## Dicas de Melhores Práticas (Pro Tips) + +- **Reutilize estilos**: Criar um estilo por coluna é barato, mas reutilizar o mesmo objeto de estilo para colunas idênticas economiza memória. +- **Evite loops célula por célula**: `ImportDataTable` é altamente otimizado; loops manuais são mais lentos e propensos a erros. +- **Defina a cultura do workbook cedo** se precisar de separadores consistentes de número/data em todos os ambientes: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Valide o DataTable** antes da importação—datas nulas lançarão exceção quando o estilo de data for aplicado. +- **Ative o cálculo** se você adicionar fórmulas após a importação: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Conclusão + +Agora você tem uma receita completa, de ponta a ponta, para **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel** e **format excel cells date**—tudo em menos de uma dúzia de linhas de código C#. A abordagem é rápida, confiável e mantém as preocupações de formatação dentro do código, de modo que a planilha final esteja pronta para os usuários de negócios assim que for aberta. + +Pronto para o próximo desafio? Experimente adicionar formatação condicional, inserir gráficos ou converter 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/row-and-column-management/_index.md b/cells/portuguese/net/row-and-column-management/_index.md index 21e108938b..db1783f6da 100644 --- a/cells/portuguese/net/row-and-column-management/_index.md +++ b/cells/portuguese/net/row-and-column-management/_index.md @@ -76,6 +76,8 @@ Aprenda a inserir uma linha no Excel usando o Aspose.Cells para .NET com este gu Aprenda a inserir uma linha com formatação no Excel usando o Aspose.Cells para .NET. Siga nosso guia passo a passo para uma implementação fácil. ### [Inserir várias linhas em Aspose.Cells .NET](./insert-multiple-rows-aspose-cells/) Aprenda a inserir várias linhas no Excel usando o Aspose.Cells para .NET. Siga nosso tutorial detalhado para uma manipulação de dados simplificada. +### [Carregar arquivo Excel C# – Como excluir linhas e remover linhas específicas](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Aprenda a carregar um arquivo Excel em C# e excluir linhas, incluindo a remoção de linhas específicas, com exemplos passo a passo. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/portuguese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..aaee5b2204 --- /dev/null +++ b/cells/portuguese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,206 @@ +--- +category: general +date: 2026-03-21 +description: Carregue o arquivo Excel em C# e remova linhas de dados com Aspose.Cells. + Aprenda como excluir linhas, remover linhas específicas e dominar a exclusão de + linhas no Excel com C# em minutos. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: pt +og_description: Carregue um arquivo Excel em C# e exclua rapidamente linhas, remova + linhas específicas e manipule a exclusão de linhas no Excel usando Aspose.Cells. + Guia completo passo a passo. +og_title: Carregar Arquivo Excel C# – Excluir Linhas e Remover Linhas Específicas +tags: +- C# +- Excel +- Aspose.Cells +title: Carregar Arquivo Excel C# – Como Excluir Linhas e Remover Linhas Específicas +url: /pt/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Carregar Arquivo Excel C# – Como Excluir Linhas e Remover Linhas Específicas + +Já precisou **carregar arquivo Excel C#** e então remover linhas que não são necessárias? Talvez você esteja limpando um despejo de dados, ou tenha um modelo onde certas linhas precisam desaparecer antes de enviar a planilha ao cliente. De qualquer forma, o problema é o mesmo: você tem um `.xlsx` armazenado no disco, quer abri‑lo no .NET, e precisa **excluir linhas** sem quebrar nenhuma tabela ou objeto de lista oculto. + +Veja, o Aspose.Cells torna isso muito fácil. Neste tutorial você verá um exemplo completo, pronto‑para‑executar, que mostra exatamente **como excluir linhas**, como **remover linhas específicas**, e por que você pode se interessar por **c# excel row deletion**. Ao final, você terá um `output.xlsx` limpo que contém apenas as linhas que deseja. + +## O Que Este Guia Cobre + +- Carregar uma pasta de trabalho Excel do disco usando Aspose.Cells. +- Excluir um intervalo de linhas (por exemplo, linhas 5‑10) respeitando quaisquer cabeçalhos de ListObject. +- Salvar a pasta de trabalho modificada de volta ao sistema de arquivos. +- Armadilhas comuns, como excluir acidentalmente linhas dentro de uma tabela, e dicas para lidar com elas. +- Um exemplo de código completo e executável que você pode inserir em um aplicativo de console hoje. + +> **Pré-requisitos** +> • .NET 6+ (ou .NET Framework 4.6+). +> • Aspose.Cells para .NET instalado via NuGet (`Install-Package Aspose.Cells`). +> • Familiaridade básica com C# e conceitos de Excel (planilhas, células, tabelas). + +Se você está se perguntando **por que usar o Aspose.Cells** em vez, por exemplo, de `Microsoft.Office.Interop.Excel`, a resposta é velocidade, ausência de necessidade de COM e a capacidade de rodar em servidores sem Office instalado. Além disso, a API é simples para tarefas de exclusão de linhas. + +## Etapa 1: Carregar a Pasta de Trabalho Excel em C# + +Antes de poder excluir qualquer coisa, você precisa carregar a pasta de trabalho na memória. A classe `Workbook` representa o arquivo Excel completo. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Por que isso importa:** +Carregar o arquivo cria um grafo de objetos que espelha a estrutura do Excel — planilhas, células, tabelas, etc. Ao manter uma referência a `ws`, você pode manipular linhas diretamente sem se preocupar com bloqueios de arquivo ou peculiaridades do COM interop. + +## Etapa 2: Excluir Linhas Que Contêm Apenas Dados + +Agora que a pasta de trabalho está na memória, você pode excluir linhas. O método `Cells.DeleteRows(startRow, totalRows)` remove um bloco contíguo. No nosso exemplo, vamos remover as linhas 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Como funciona:** +- `startRow` é baseado em zero, então `5` na verdade se refere à linha 6 do Excel. Ajuste conforme necessário. +- Se a planilha contém um **ListObject** (tabela Excel) cujo cabeçalho está na linha 4, o Aspose.Cells protegerá o cabeçalho e excluirá apenas as linhas de dados abaixo dele. Essa segurança incorporada impede que você corrompa tabelas estruturadas — um caso comum ao **remover linhas de dados**. + +> **Dica profissional:** Se precisar excluir linhas não contíguas (por exemplo, linhas 3, 7, 12), percorra uma coleção invertida de índices de linha e chame `DeleteRows(rowIndex, 1)` para cada uma. Excluir de baixo para cima preserva os índices originais das linhas restantes. + +## Etapa 3: Salvar a Pasta de Trabalho Modificada + +Depois que as linhas indesejadas forem removidas, basta gravar a pasta de trabalho de volta ao disco. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +O método `Save` determina automaticamente o formato do arquivo a partir da extensão (`.xlsx` neste caso). Se precisar de um formato diferente — CSV, PDF, etc. — basta mudar a extensão ou passar um enum `SaveFormat`. + +### Resultado Esperado + +Abra `output.xlsx` no Excel e você verá que as linhas 5‑14 (as linhas originais 5‑10) desapareceram. Todos os demais dados são deslocados para cima adequadamente, e quaisquer fórmulas que referenciavam as linhas excluídas são ajustadas automaticamente pelo Aspose.Cells. + +## Perguntas Frequentes (FAQ) + +### Como excluir linhas com base em uma condição (por exemplo, todas as linhas onde a coluna A está vazia)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +O loop percorre de trás para frente para evitar o deslocamento de índices. Esse padrão responde à questão mais ampla de **c# excel row deletion** quando você precisa de lógica condicional. + +### E se minha planilha contiver múltiplos ListObjects? + +O Aspose.Cells trata cada ListObject de forma independente. Se o cabeçalho de alguma tabela for afetado pelo intervalo de exclusão, a API lança uma `InvalidOperationException`. Para contornar isso, ajuste o intervalo ou limpe temporariamente a propriedade `ShowTableStyleFirstColumn` do ListObject, execute a exclusão e então restaure-a. + +### Posso excluir linhas sem carregar toda a pasta de trabalho na memória? + +Sim — o Aspose.Cells oferece uma **API de streaming** (`Workbook.LoadOptions`) que lê os dados em blocos. Contudo, a exclusão de linhas requer inherentemente a estrutura da planilha, então ainda será necessário carregar a planilha alvo na memória. Para arquivos massivos (>500 MB), considere processar em lotes ou usar a API **célula‑por‑célula**. + +## Exemplo Completo e Executável + +Abaixo está o programa completo que você pode compilar e executar como um aplicativo de console. Substitua `YOUR_DIRECTORY` por um caminho de pasta real na sua máquina. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Executando o código:** +1. Abra um terminal ou o Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Substitua `Program.cs` pelo trecho acima. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Você deverá ver a saída no console confirmando a exclusão e a localização do arquivo salvo. + +## Armadilhas Comuns & Como Evitá‑las + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Accidentally deleting a ListObject header** | `DeleteRows` não verifica cabeçalhos de tabela ocultos quando o intervalo os sobrepõe. | Garanta que sua linha inicial seja **depois** de qualquer cabeçalho de tabela, ou use a API `ListObject` para excluir linhas dentro da tabela (`ListObject.DeleteRows`). | +| **Row indices off by one** | Aspose.Cells usa indexação baseada em zero, enquanto usuários do Excel pensam em base 1. | Lembre‑se de subtrair 1 do número da linha do Excel ao codificar. | +| **Formulas break after deletion** | Excluir linhas pode causar erros `#REF!` se fórmulas referenciam as linhas removidas. | O Aspose.Cells atualiza automaticamente a maioria das fórmulas, mas verifique novamente quaisquer referências externas ou intervalos nomeados. | +| **Performance slowdown on huge files** | Excluir muitas linhas aciona a reindexação interna. | Faça exclusões em lote (exclua um grande intervalo de uma vez) em vez de muitas exclusões de linha única. Use `DeleteRows(start, count)` sempre que possível. | + +## Próximos Passos & Tópicos Relacionados + +- **Remover linhas específicas com base em valores de célula:** Combine o loop condicional mostrado no FAQ com `DeleteRows`. +- **Inserção em massa de linhas:** Use `InsertRows` para adicionar linhas de espaço reservado antes de preencher os dados. +- **Trabalhando com tabelas (ListObjects):** Explore os métodos `ListObject` para operações ao nível de linha dentro de tabelas estruturadas. +- **Exportando para CSV após exclusão de linhas:** Chame `workbook.Save("output.csv", SaveFormat.Csv)` para gerar um CSV limpo sem as linhas removidas. + +Cada um desses se baseia no fluxo central de **load excel file c#** que você acabou de dominar, permitindo ajustar programaticamente arquivos Excel. + +## Conclusão + +Percorremos um cenário prático de **load excel file c#**, demonstramos **como excluir linhas** e abordamos as nuances de **remover linhas específicas** e **remover linhas de dados** usando Aspose.Cells. Ao carregar a pasta de trabalho, chamar `DeleteRows` e salvar o resultado, você obtém uma **c# excel row deletion** confiável sem a sobrecarga do COM interop. + +Experimente em um conjunto de dados real — talvez limpando um relatório de vendas ou removendo linhas de teste de um modelo. Quando estiver confortável, experimente exclusões condicionais e operações conscientes de tabelas. A API é robusta o suficiente para scripts simples e processadores em lote de nível empresarial. + +Boa codificação, e sinta‑se à vontade para deixar um comentário se encontrar algum problema! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/portuguese/net/worksheet-operations/_index.md index c55ecca02c..1c0f91e340 100644 --- a/cells/portuguese/net/worksheet-operations/_index.md +++ b/cells/portuguese/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Aprenda a definir um plano de fundo gráfico em arquivos ODS usando o Aspose.Cel Aprenda a atualizar o histórico de logs de revisão em pastas de trabalho compartilhadas usando o Aspose.Cells para .NET. Simplifique a colaboração e mantenha registros claros de documentos. ### [Utilizar a propriedade Sheet_SheetId do OpenXml na planilha](./utilize-sheet-sheetid-property/) Libere o poder do Excel com o Aspose.Cells para .NET. Aprenda a manipular IDs de planilhas de forma eficaz com nosso guia passo a passo. +### [Como criar planilhas – Guia passo a passo para geração dinâmica de Excel](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Aprenda a criar planilhas dinamicamente no Excel usando Aspose.Cells para .NET com este guia passo a passo. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/portuguese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..7a20db3a7a --- /dev/null +++ b/cells/portuguese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,273 @@ +--- +category: general +date: 2026-03-21 +description: Aprenda a criar planilhas, gerar arquivos Excel com nomes de planilhas + dinâmicos e salvar a pasta de trabalho como XLSX usando Aspose.Cells em C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: pt +og_description: Como criar planilhas no Excel usando Aspose.Cells, gerar planilhas + do Excel com nomes de planilhas dinâmicos e salvar a pasta de trabalho como XLSX. +og_title: Como criar planilhas – Tutorial completo de C# +tags: +- Aspose.Cells +- C# +- Excel automation +title: Como Criar Planilhas – Guia Passo a Passo para Geração Dinâmica de Excel +url: /pt/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Criar Planilhas – Tutorial Completo em C# + +Já se perguntou **como criar planilhas** rapidamente sem abrir o Excel manualmente toda vez? Você não está sozinho. Muitos desenvolvedores encontram dificuldades quando precisam **gerar planilhas Excel** a partir de fontes de dados e desejam que cada planilha tenha um nome significativo e dinâmico. A boa notícia? Com Aspose.Cells você pode automatizar todo o processo, **processar a planilha mestre**, e finalmente **salvar a pasta de trabalho como XLSX** em apenas algumas linhas de código. + +Neste tutorial vamos percorrer um cenário real: começar com uma pasta de trabalho em branco, inserir um token smart‑marker que indica ao Aspose quais planilhas detalhadas criar, configurar um padrão de nomenclatura para que cada planilha receba um nome exclusivo e, finalmente, persistir o resultado no disco. Ao final, você terá um programa C# pronto‑para‑executar que cria planilhas, gera planilhas Excel com nomes de planilhas dinâmicos e salva a pasta de trabalho como XLSX — tudo sem tocar na interface do usuário. + +> **Pré-requisitos** +> • .NET 6+ (ou .NET Framework 4.6+). +> • Aspose.Cells for .NET (a versão de avaliação gratuita funciona para esta demonstração). +> • Conhecimento básico de C# — sem necessidade de truques avançados de interop do Excel. + +--- + +## Visão Geral do que Iremos Construir + +- **Planilha mestre** contendo um placeholder smart‑marker (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** que lê uma fonte de dados (por exemplo, um `DataTable`) e cria uma nova planilha para cada departamento. +- **Nomes de planilhas dinâmicos** seguindo o padrão `Dept_{0}` onde `{0}` é substituído pelo nome do departamento. +- **Arquivo XLSX final** salvo em uma pasta que você especificar. + +É isso. Simples, mas poderoso o suficiente para faturas, relatórios ou qualquer saída Excel com várias abas. + +![Diagram showing how a master sheet is processed to generate multiple dynamic worksheets](/images/how-to-create-worksheets-diagram.png "How to create worksheets diagram") + +*Texto alternativo: ilustração de como criar planilhas com nomes de planilhas dinâmicos usando Aspose.Cells.* + +## Etapa 1: Configurar o Projeto e Adicionar Aspose.Cells + +### Por que isso importa +Antes que qualquer código seja executado, o compilador precisa saber onde as classes `Workbook`, `Worksheet` e `SmartMarkerProcessor` estão localizadas. Adicionar o pacote NuGet garante que você tenha a API mais recente e completa. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Dica profissional:** Se você estiver usando o Visual Studio, clique com o botão direito no projeto → *Gerenciar Pacotes NuGet* → procure por *Aspose.Cells* e instale a versão estável mais recente. + +--- + +## Etapa 2: Criar uma Nova Pasta de Trabalho e a Planilha Mestre + +### O que estamos fazendo +Começamos com uma pasta de trabalho limpa, então pegamos a primeira planilha (índice 0). Esta planilha atuará como a **planilha mestre** que contém o token smart‑marker. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +A classe `Workbook` é o contêiner para todas as planilhas. Por padrão, ela cria uma planilha chamada *Sheet1*; renomeá‑la para “Master” facilita a navegação no arquivo final. + +--- + +## Etapa 3: Inserir um Token Smart‑Marker para Nomes de Planilhas Detalhadas + +### Por que usar um smart‑marker? +Smart markers permitem que o Aspose.Cells substitua placeholders por dados em tempo de execução. O token `«DetailSheetNewName:Dept»` indica ao processador: *“Quando você encontrar isso, crie uma nova planilha detalhada para cada linha na coluna `Dept`.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Você pode colocar o token em qualquer lugar; escolhemos **A1** para clareza. Quando o processador for executado, ele substituirá o token pelo nome real do departamento e gerará a planilha correspondente. + +--- + +## Etapa 4: Preparar a Fonte de Dados + +### Como os dados impulsionam a criação de planilhas +Aspose.Cells funciona com qualquer fonte de dados `IEnumerable`. Para esta demonstração, usaremos um `DataTable` com uma única coluna chamada `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **E se você tiver mais colunas?** +> O processador ignorará colunas extras, a menos que você as referencie em smart markers adicionais. Isso mantém a geração de planilhas leve. + +--- + +## Etapa 5: Configurar o SmartMarkerProcessor e o Padrão de Nomenclatura + +### Nomes de planilhas dinâmicos em ação +Queremos que cada nova planilha seja nomeada `Dept_Finance`, `Dept_HR`, etc. A opção `DetailSheetNewName` nos permite definir um padrão onde `{0}` é substituído pelo nome real do departamento. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Se um departamento aparecer duas vezes, o Aspose adicionará automaticamente um sufixo numérico (por exemplo, `Dept_Finance_1`) para evitar nomes de planilhas duplicados. + +--- + +## Etapa 6: Processar a Planilha Mestre para Gerar Planilhas Detalhadas + +### O núcleo do **process master sheet** +Chamar `Process` realiza o trabalho pesado: ele varre a planilha mestre em busca de smart markers, cria novas planilhas, copia o layout mestre e preenche cada uma com os dados da linha. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Após esta chamada, a pasta de trabalho contém uma planilha mestre mais quatro planilhas detalhadas — cada uma nomeada de acordo com nosso padrão e preenchida com o nome do departamento na célula A1. + +--- + +## Etapa 7: Salvar a Pasta de Trabalho como XLSX + +### Etapa final—**save workbook as XLSX** +Agora que as planilhas existem, gravamos o arquivo no disco. Você pode escolher qualquer caminho; apenas certifique-se de que o diretório exista. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Abrindo `DetailSheets.xlsx` você verá: + +| Nome da Planilha | Célula A1 (Conteúdo) | +|------------------|----------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Caso de borda:** Se a pasta de saída não existir, `Save` lança uma `DirectoryNotFoundException`. Envolva a chamada em um bloco try‑catch ou crie a pasta antecipadamente. + +--- + +## Exemplo Completo Funcional + +Juntando tudo, aqui está o programa completo que você pode copiar‑colar em um aplicativo console: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Execute o programa, abra o arquivo resultante e você verá exatamente o layout descrito anteriormente. Sem copiar‑colar manual, sem interop COM — apenas código C# limpo que **gera planilhas Excel** com **nomes de planilhas dinâmicos**. + +--- + +## Perguntas Frequentes & Armadilhas + +| Pergunta | Resposta | +|----------|----------| +| *Posso usar um DataSet com várias tabelas?* | Sim. Passe a tabela apropriada para `Process` ou use um dicionário de tabelas. | +| *E se eu precisar de mais de um smart‑marker na planilha mestre?* | Coloque tokens adicionais como `«DetailSheetNewName:Region»` e configure um padrão de nomenclatura separado, se necessário. | +| *A planilha mestre é mantida no arquivo final?* | Por padrão, sim. Se você não precisar dela, chame `workbook.Worksheets.RemoveAt(0)` após o processamento. | +| *Como o Aspose lida com conjuntos de dados muito grandes?* | Ele transmite os dados de forma eficiente, mas pode ser necessário aumentar `MemorySetting` se você atingir limites de memória. | +| *Posso exportar para CSV em vez de XLSX?* | Absolutamente — use `workbook.Save("file.csv", SaveFormat.Csv)`. A mesma lógica de criação de planilhas se aplica. | + +--- + +## Próximos Passos + +Agora que você sabe **como criar planilhas** dinamicamente, pode explorar: + +- **Salvar a pasta de trabalho como XLSX** com proteção por senha (`workbook.Protect("pwd")`). +- **Gerar planilhas Excel** a partir de fontes JSON ou XML usando `JsonDataSource` ou `XmlDataSource`. +- **Aplicar estilos** a cada planilha gerada (fontes, cores) via objetos `Style`. +- **Mesclar células** ou inserir fórmulas automaticamente para relatórios resumidos. + +Cada uma dessas extensões se baseia no mesmo conceito de **process master sheet**, portanto a transição será tranquila. + +--- + +## Conclusão + +Abordamos todo o pipeline: desde a inicialização de uma pasta de trabalho, inserção de um smart‑marker, configuração de **nomes de planilhas dinâmicos**, processamento da planilha mestre para **gerar planilhas Excel**, e finalmente **salvar a pasta de trabalho como XLSX**. O exemplo está completo, executável e demonstra as melhores práticas tanto de desempenho quanto de manutenção. + +Experimente, ajuste o padrão de nomenclatura, alimente-o com dados reais de negócios e veja sua automação Excel decolar. Se encontrar algum problema, deixe um comentário abaixo — 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/russian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/russian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..76a3048250 --- /dev/null +++ b/cells/russian/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Как вычислять рабочую книгу в C# с помощью Aspose.Cells – изучите создание + Excel‑рабочей книги, заполнение ячеек Excel, вычисление формул Excel и использование + функции сортировки. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: ru +og_description: Как быстро вычислять рабочую книгу в C#. Этот учебник показывает, + как создать книгу Excel, заполнить ячейки Excel, вычислять формулы Excel и использовать + функцию сортировки. +og_title: Как рассчитать рабочую книгу в C# — Полное руководство по сортировке +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Как рассчитать рабочую книгу в C# – руководство по сортировке и формулам +url: /ru/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как вычислять Workbook в C# – руководство по SORT и формулам + +Когда‑нибудь задавались вопросом **как вычислять значения workbook** «на лету», не открывая Excel? Вы не одиноки. Во многих сценариях автоматизации нужно создать файл Excel, поместить туда числа, отсортировать их и получить результаты обратно в ваше .NET‑приложение — полностью программно. + +В этом руководстве мы пройдемся по каждому шагу: **создадим excel workbook**, **заполним ячейки Excel**, добавим формулу **SORT**, а затем **вычислим формулы Excel**, чтобы прочитать отсортированный массив напрямую из C#. В конце вы получите готовый фрагмент кода, который можно вставить в любой проект, использующий Aspose.Cells (или аналогичную библиотеку). + +## Требования + +- .NET 6+ (код также работает на .NET Framework 4.7.2) +- Aspose.Cells for .NET (бесплатный пробный NuGet‑пакет `Aspose.Cells`) +- Базовое понимание синтаксиса C# +- Не требуется установленный Microsoft Excel; библиотека берёт на себя всю тяжёлую работу + +Если всё это у вас есть, приступим. + +## Как вычислять Workbook – инициализация Workbook + +Первое, что нужно сделать, — создать новый объект workbook. Представьте, что вы открываете совершенно новый файл Excel, который полностью пуст. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Почему это важно:** Класс `Workbook` — точка входа для любой операции; без него нельзя добавить листы, ячейки или формулы. Правильная инициализация гарантирует чистый старт. + +## Создание Excel Workbook и доступ к листу + +Теперь, когда workbook существует, нужно убедиться, что мы работаем с нужным листом. Большинство библиотек по умолчанию создают один лист с именем «Sheet1», но вы можете переименовать его или добавить новые листы. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Совет:** Заранее задавать имена листов удобно, когда позже ссылаетесь на них в формулах (`'Data'!A1:A10`). Это также упрощает отладку. + +## Заполнение ячеек Excel данными + +Далее мы **заполним ячейки Excel** числами, которые хотим отсортировать. В примере используется только две ячейки, но диапазон можно расширить до десятков строк. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Почему мы используем `PutValue`** — метод автоматически определяет тип данных (int, double, string и т.д.) и сохраняет его корректно, избавляя от необходимости ручного приведения типов. + +## Применение функции SORT через формулу + +Функция Excel `SORT` делает именно то, что подразумевает её название: возвращает отсортированный массив, не изменяя исходные данные. Мы поместим эту формулу в ячейку `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Примечание о старых версиях:** `SORT` возвращает **массив**. В старых версиях Excel (до Office 365) его нужно было вводить через Ctrl+Shift+Enter. В Aspose.Cells массив возвращается автоматически при вычислении workbook. + +## Вычисление формул Excel для получения результата + +На данном этапе workbook знает *что* нужно вычислить, но ещё не знает *что* действительно выполнить вычисление. Вызов `CalculateFormula` запускает движок, который оценивает каждую формулу, включая нашу `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Ожидаемый вывод в консоль** + +``` +Sorted array: {2, 5} +``` + +> **Что только что произошло?** +> 1. Workbook создал внутренний движок расчётов. +> 2. Формула `SORT` проанализировала диапазон `A1:A2`. +> 3. Движок сформировал новый массив, который мы получили из `B1`. + +Если изменить значения в `A1` и `A2` (или расширить диапазон) и снова вызвать `CalculateFormula`, вывод обновится автоматически — дополнительный код не нужен. + +## Использование функции SORT для больших наборов данных (опционально) + +В реальных задачах обычно больше двух строк. Ниже небольшая модификация, работающая с произвольным количеством записей: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Зачем это может понадобиться:** Сортировка больших диапазонов позволяет создавать таблицы лидеров, ранжировать финансовые данные или просто очищать импортированные CSV‑файлы перед дальнейшей обработкой. + +## Распространённые ошибки и способы их избежать + +| Проблема | Почему возникает | Решение | +|----------|------------------|---------| +| **`#VALUE!` в B1** | Формула `SORT` ссылается на пустой или нечисловой диапазон. | Убедитесь, что каждая ячейка в исходном диапазоне содержит число или текст, который можно отсортировать. | +| **Обрезка массива** | Попытка прочитать массив из одной ячейки без приведения типа. | Приведите `worksheet.Cells["B1"].Value` к `object[]` (или к нужному типу). | +| **Снижение производительности** | Пересчёт огромных workbook после каждой мелкой правки. | Вызывайте `CalculateFormula` только после завершения всех изменений листа, либо используйте `CalculateFormulaOptions` для ограничения области расчётов. | + +## Полный рабочий пример (готов к копированию) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Скриншот результата** +> ![результат расчета рабочей книги в Excel](https://example.com/images/sorted-result.png "результат расчета рабочей книги в Excel") + +На изображении выше показан workbook после вычисления — ячейка **B1** содержит отсортированный массив `{2, 5}`. + +## Заключение + +Мы только что рассмотрели **как вычислять значения workbook** программно: создали Excel workbook, заполнили ячейки, внедрили формулу `SORT` и, наконец, **вычислили формулы Excel**, чтобы извлечь отсортированные данные. Подход работает как для простых примеров с двумя ячейками, так и для больших наборов данных. + +Что дальше? Попробуйте комбинировать это с другими функциями, такими как `FILTER`, `UNIQUE` или даже пользовательской логикой в стиле VBA через `WorksheetFunction`. Вы также можете сохранить workbook на диск (`workbook.Save("Sorted.xlsx")`) и открыть его в Excel для визуальной проверки. + +Экспериментируйте — меняйте числа, диапазоны или цепочки формул. Автоматизация — это быстрые итерации, а теперь у вас есть надёжная база для дальнейшего развития. + +Удачной разработки, и пусть ваши 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/conversion-and-rendering/_index.md b/cells/russian/net/conversion-and-rendering/_index.md index 2efc3df5f9..c02a4002f5 100644 --- a/cells/russian/net/conversion-and-rendering/_index.md +++ b/cells/russian/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Узнайте, как преобразовать лист Excel в SVG с помощью Aspose.Cells для .NET с помощью этого пошагового руководства. Идеально подходит для разработчиков .NET, желающих преобразовать Excel в SVG. ### [Преобразование Excel в MHTML в .NET](./converting-excel-to-mhtml/) Узнайте, как эффективно преобразовывать файлы Excel в формат MHTML в .NET с помощью Aspose.Cells, расширяя возможности создания отчетов и обмена данными. +### [Создание изображения из Excel – экспорт сводной таблицы в PNG в C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Узнайте, как экспортировать сводную таблицу Excel в PNG‑изображение с помощью Aspose.Cells для .NET на C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/russian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..056f521d51 --- /dev/null +++ b/cells/russian/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Создайте изображение из Excel на C# с помощью Aspose.Cells. Узнайте, + как преобразовать Excel в изображение, экспортировать сводную таблицу и сохранить + изображение в формате PNG с полным, готовым к запуску примером. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: ru +og_description: Создайте изображение из Excel в C# быстро. Это руководство показывает, + как преобразовать Excel в изображение, экспортировать сводную таблицу и сохранить + изображение в формате PNG с понятным кодом. +og_title: Создать изображение из Excel – экспортировать сводную таблицу в PNG на C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Создать изображение из Excel – экспорт сводной таблицы в PNG на C# +url: /ru/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создать изображение из Excel – Экспорт сводной таблицы в PNG на C# + +Когда‑нибудь нужно было **create image from Excel**, но вы не знали, какой API использовать? Вы не одиноки — многие разработчики сталкиваются с этой проблемой, пытаясь превратить живую сводную таблицу в удобный PNG. + +В этом руководстве мы пройдем полный, готовый к запуску пример, который **converts Excel to image**, показывает **how to export pivot** и объясняет **how to save image** как файл PNG. К концу вы получите один метод, выполняющий всю работу, а также советы по возможным краевым случаям. + +## Что понадобится + +- **Aspose.Cells for .NET** (пакет NuGet `Aspose.Cells`). Это коммерческая библиотека, но предлагает бесплатный режим оценки — идеально для тестов. +- .NET 6+ (или .NET Framework 4.6+). +- Простой Excel‑файл (`Pivot.xlsx`), содержащий хотя бы одну сводную таблицу. +- Любая IDE — Visual Studio, Rider или даже VS Code. + +Это всё. Никаких дополнительных DLL, без COM‑interop и без сложных трюков автоматизации Excel. + +Теперь перейдём к коду. + +## Шаг 1: Загрузка книги – Create Image from Excel + +Первое, что мы делаем, — открываем Excel‑файл, в котором находится сводная таблица. Этот шаг критичен, потому что рендерер работает с объектом `Workbook` в памяти. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Почему это важно:* Загрузка книги дает нам доступ к **pivot** и любой форматировке, которые будут учтены при последующем **convert Excel to image**. Если пропустить этот шаг, у рендерера не будет чего обрабатывать. + +## Шаг 2: Настройка параметров экспорта – Convert Excel to Image + +Далее мы указываем Aspose, как должна выглядеть конечная картинка. Класс `ImageOrPrintOptions` позволяет выбрать PNG, задать DPI и даже управлять цветом фона. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Почему это важно:* Установив высокое DPI, мы обеспечиваем, что **export Excel to PNG** будет выглядеть чётко, даже если в сводной таблице много строк. DPI можно уменьшить, если важен размер файла. + +## Шаг 3: Рендер листа – How to Export Pivot + +Теперь начинается главное: преобразование листа (со сводной таблицей) в изображение. Класс `WorksheetRender` делает всю тяжёлую работу. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Почему это важно:* Здесь происходит **how to export pivot** в визуальный формат. Рендерер сохраняет всю форматировку сводной таблицы, срезы и условные стили, поэтому PNG выглядит точно так же, как в Excel. + +## Шаг 4: Собираем всё вместе – How to Save Image + +Наконец, мы предоставляем один публичный метод, который связывает все части. Это метод, который вы будете вызывать из вашего приложения, сервиса или консольного инструмента. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Полный рабочий пример + +Создайте новый консольный проект, добавьте пакет NuGet `Aspose.Cells`, затем поместите следующий файл `Program.cs`: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Ожидаемый результат:** После запуска программы файл `PivotImage.png` появится в указанной папке, представляя пиксельно‑точный снимок сводной таблицы. + +![Create image from Excel example](https://example.com/placeholder.png "Create image from Excel example") + +*Alt text:* пример создания изображения из Excel, показывающий экспортированную сводную таблицу в PNG. + +## Часто задаваемые вопросы и краевые случаи + +### Что если в книге несколько листов? + +Помощник сейчас берёт `Worksheets[0]`. Чтобы обратиться к конкретному листу, передайте имя листа: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG размытый — как исправить? + +Увеличьте `HorizontalResolution` и `VerticalResolution` в `GetImageOptions`. Значения 300–600 DPI обычно дают чёткие результаты. Помните, что больше DPI — больше размер файла. + +### Моя сводная таблица занимает более одной страницы — можно экспортировать все страницы? + +Да. Пройдитесь по `renderer.PageCount` и вызовите `ToImage(pageIndex, …)` для каждой страницы, либо установите `OnePagePerSheet = false`, чтобы получить отдельные изображения для каждой страницы. + +### Нужно только часть листа (например, определённый диапазон)? + +Используйте `ImageOrPrintOptions` для задания `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Так вы **convert Excel to image** только для интересующей вас области. + +### Работает ли это с файлами .xls (Excel 97‑2003)? + +Абсолютно. Aspose.Cells абстрагирует формат файла, поэтому вы можете передать `.xls`, `.xlsx`, `.xlsm` или даже `.ods` и всё равно **export excel to png**. + +## Профессиональные советы и подводные камни + +- **Лицензия важна**: В режиме оценки Aspose добавляет водяной знак. Для продакшна используйте полноценную лицензию. +- **Потребление памяти**: Рендеринг больших книг может требовать много памяти. Быстро освобождайте объект `Workbook` или оборачивайте его в `using`. +- **Потокобезопасность**: `Workbook` не является потокобезопасным. Создавайте новый экземпляр для каждого запроса, если работаете в веб‑службе. +- **Гибкость форматов изображений**: Если нужен JPEG или BMP, просто измените `ImageFormat` в `GetImageOptions`. + +## Заключение + +Теперь у вас есть надёжный, сквозной рецепт для **create image from Excel**, конкретно для **export pivot** данных в PNG высокого качества. Приведённый выше фрагмент кода полностью рабочий, объясняет **how to save image** и охватывает варианты, такие как несколько листов или пользовательские области печати. + +Что дальше? Попробуйте связать этот экспортер с сервисом отправки email, чтобы автоматически рассылать PNG, или поэкспериментируйте с `ImageOrPrintOptions`, чтобы генерировать PDF вместо PNG. Та же схема подходит для задач **convert excel to image** во множестве форматов. + +Есть вопросы? Оставляйте комментарий, и 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/russian/net/converting-excel-files-to-other-formats/_index.md b/cells/russian/net/converting-excel-files-to-other-formats/_index.md index 8211f13e09..0e561906a5 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 @@ -46,6 +46,8 @@ Aspose.Cells для .NET упрощает преобразование доку Узнайте, как преобразовать CSV в JSON в .NET с помощью Aspose.Cells. Пошаговое руководство по преобразованию данных с простыми для понимания примерами кода. ### [Программное преобразование файла Excel в DOCX в .NET](./converting-excel-file-to-docx/) Узнайте, как программно преобразовать файлы Excel в DOCX с помощью Aspose.Cells для .NET в этом пошаговом руководстве. Идеально подходит для создания отчетов и обмена данными. +### [Сохранение Excel в Docx с C# – Полное пошаговое руководство](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Узнайте, как программно сохранить файл Excel в формате DOCX с помощью C# и 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/) diff --git a/cells/russian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/russian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..bbecbb145f --- /dev/null +++ b/cells/russian/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Сохранить Excel как Docx в C# — узнайте, как конвертировать Excel в Word, + встраивать диаграммы и загружать рабочую книгу Excel в C# с помощью Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: ru +og_description: Сохранить Excel как Docx в C# объяснено в первом предложении. Следуйте + этому руководству, чтобы конвертировать Excel в Word, встроить диаграммы и загрузить + рабочую книгу Excel в C#. +og_title: Сохранить Excel в формате Docx с помощью C# – Полное руководство +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Сохранить Excel в формате Docx с помощью C# – Полное пошаговое руководство +url: /ru/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Сохранить Excel как Docx с C# – Полное пошаговое руководство + +Когда‑нибудь вам нужно было **save Excel as Docx**, но вы не знали, с чего начать? Вы не одиноки — многие разработчики сталкиваются с тем же, когда хотят *convert Excel to Word*, сохраняя диаграммы нетронутыми. В этом руководстве мы пройдемся по точному коду, который вам нужен, объясним, почему каждая строка важна, и покажем, как встроить диаграммы Excel без потери качества. + +Мы также добавим несколько дополнительных советов по сценариям **load Excel workbook C#**, так что к концу вы будете уверенно конвертировать Excel в Docx в любом проекте .NET. Никаких расплывчатых ссылок, только конкретный, исполняемый пример, который вы можете скопировать‑вставить прямо сейчас. + +--- + +## Что охватывает это руководство + +- Загрузка существующего файла `.xlsx` с помощью Aspose.Cells (или любой совместимой библиотеки). +- Опциональное изменение листов или диаграмм перед конвертацией. +- Сохранение рабочей книги как файла `.docx` с сохранением встроенных диаграмм. +- Проверка результата и обработка распространённых граничных случаев, таких как большие книги или неподдерживаемые типы диаграмм. + +Если вы задаётесь вопросом **why you’d want to convert Excel to Docx**, подумайте о отчетах, которые нужно отправлять нетехническим заинтересованным сторонам — документы Word принимаются везде, и они сохраняют визуальную точность ваших диаграмм. Давайте начнём. + +--- + +## Предварительные требования – Load Excel Workbook C# + +Прежде чем писать код, убедитесь, что у вас есть следующее: + +| Requirement | Reason | +|-------------|--------| +| **.NET 6.0 or later** | Современная среда выполнения, лучшая производительность и полная поддержка Aspose.Cells. | +| **Aspose.Cells for .NET** (NuGet package `Aspose.Cells`) | Предоставляет класс `Workbook`, используемый для чтения Excel и экспорта в DOCX. | +| **Visual Studio 2022** (or any IDE you prefer) | Удобен для отладки и IntelliSense. | +| **An Excel file with charts** (`AdvancedCharts.xlsx`) | Чтобы увидеть в действии функцию *embed excel charts*. | + +You can install the library via the Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** Если вы используете CI/CD конвейер, добавьте пакет в ваш `*.csproj`, чтобы восстановление происходило автоматически. + +--- + +## Шаг 1 – Load the Excel Workbook (Save Excel as Docx Starts Here) + +Первое, что мы делаем, — загружаем исходную рабочую книгу. Здесь в игру вступает фраза **load excel workbook c#**. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Why this matters:** Загрузка файла дает доступ ко всем листам, диаграммам и стилям. Без этого шага нечего конвертировать, и API не может сохранить ваши встроенные графики. + +--- + +## Шаг 2 – (Optional) Tweak the Workbook Before Conversion + +Вы можете захотеть переименовать лист, скрыть столбец или даже изменить заголовок диаграммы. Этот шаг необязателен, но демонстрирует гибкость процесса конвертации. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Edge case:** Некоторые старые типы диаграмм (например, Radar) могут отображаться не идеально в Word. Проверьте ваши конкретные диаграммы после конвертации. + +--- + +## Шаг 3 – Save the Workbook as a Word Document (The Core “Save Excel as Docx” Action) + +Настал момент истины: мы действительно **save Excel as Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +При выполнении этого кода Aspose.Cells записывает каждый лист как таблицу внутри файла Word и встраивает каждую диаграмму как изображение высокого разрешения. В результате получаем полностью редактируемый `.docx`, который выглядит точно так же, как оригинальный вид Excel. + +> **Why choose DOCX over PDF?** DOCX позволяет получателям позже редактировать текст или заменять диаграммы, тогда как PDF — статичный снимок. + +--- + +## Шаг 4 – Verify the Output and Troubleshoot Common Issues + +После завершения конвертации откройте `ChartsInWord.docx` в Microsoft Word: + +1. **Проверьте, что каждый лист отображается как отдельный раздел** — вы должны увидеть таблицы, отражающие ваши данные из Excel. +2. **Подтвердите, что диаграммы встроены** — они должны быть выбираемыми изображениями, а не сломанными заполнителями. +3. **Если диаграмма отсутствует**, убедитесь, что тип диаграммы поддерживается Aspose.Cells (см. [official compatibility list](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tip:** Для больших книг рассмотрите возможность увеличения `MemorySetting` Aspose.Cells, чтобы избежать `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Полный рабочий пример (готов к копированию‑вставке) + +Ниже приведена полная программа, готовая к компиляции. Замените `YOUR_DIRECTORY` реальным путём к папке на вашем компьютере. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Expected result:** Word‑документ (`ChartsInWord.docx`), содержащий все листы в виде таблиц и каждую диаграмму как встроенное изображение высокого разрешения. Откройте его в Word, и вы увидите точную визуальную раскладку, как в Excel. + +--- + +## Часто задаваемые вопросы (FAQ) + +**Q: Могу ли я конвертировать несколько файлов Excel в цикле?** +A: Конечно. Оберните логику конвертации в цикл `foreach (var file in Directory.GetFiles(...))` и переиспользуйте тот же шаблон экземпляра `Workbook`. + +**Q: Работает ли это также с файлами `.xls`?** +A: Да — Aspose.Cells поддерживает устаревшие форматы. Просто измените расширение исходного файла; тот же вызов `SaveFormat.Docx` применим. + +**Q: Что делать, если нужно сохранить формулы при конвертации?** +A: Word не поддерживает формулы Excel напрямую. При конвертации формулы преобразуются в их вычисленные значения. Если нужны живые расчёты, рассмотрите возможность встраивания рабочей книги как OLE‑объекта. + +**Q: Можно ли управлять разрешением изображений диаграмм?** +A: Используйте `ImageOrPrintOptions` перед сохранением: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Бонус: Embedding Excel Charts Directly into Word (Beyond Save Excel as Docx) + +Если вы хотите, чтобы диаграмма оставалась редактируемой в Word, вы можете встроить весь лист Excel как OLE‑объект: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Эта техника *embed excel charts* как живые объекты, позволяя конечным пользователям двойным щелчком редактировать их в Excel непосредственно из Word. Это удобная альтернатива, когда требуется интерактивность. + +--- + +## Заключение + +Теперь у вас есть надёжное сквозное решение для **save Excel as docx** с использованием C#. Руководство охватывало загрузку рабочей книги, опциональные изменения, саму операцию сохранения, шаги проверки и даже быстрый взгляд на встраивание диаграмм для редактируемых сценариев. Следуя приведённому коду, вы сможете **convert Excel to Word**, сохранить каждую диаграмму и эффективно работать с большими файлами. + +Готовы к следующему вызову? Попробуйте автоматизировать пакетную конвертацию, интегрировать эту логику в ASP.NET Core API или изучить **convert Excel to docx** для многолистовых панелей. Навыки, которые вы только что получили, являются основой любого проекта по автоматизации документов. + +Есть вопросы или проблемный файл Excel, который отказывается конвертироваться? Оставьте комментарий, и мы разберёмся вместе. Счастливого кодинга! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..fadb05ffee 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-add-custom-property-in-c/) +Узнайте, как сохранить файл XLSB и добавить пользовательское свойство с помощью Aspose.Cells для .NET в C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/russian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..9393e4ac98 --- /dev/null +++ b/cells/russian/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,257 @@ +--- +category: general +date: 2026-03-21 +description: Узнайте, как сохранять файлы xlsb в C#, добавляя пользовательское свойство, + например ProjectId. Это руководство показывает, как создать рабочую книгу Excel, + добавить пользовательское свойство и проверить его. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: ru +og_description: Узнайте, как сохранять файлы xlsb и добавлять пользовательское свойство, + например ProjectId, с помощью C#. Пошаговое руководство с полным кодом. +og_title: Как сохранить XLSB – добавить пользовательское свойство в C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Как сохранить XLSB – добавить пользовательское свойство в C# +url: /ru/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как сохранить XLSB – добавить пользовательское свойство в C# + +Когда‑нибудь задумывались **how to save xlsb** файлы, одновременно пряча кусочек метаданных внутри? Возможно, вы создаёте движок отчётности, которому нужен скрытый ProjectId, или просто хотите пометить листы для последующей обработки. **How to save xlsb** не высший пилотаж, но сочетание с пользовательским свойством добавляет небольшую изюминку, которую многие разработчики упускают. + +В этом руководстве мы пройдём процесс создания рабочей книги Excel, добавления пользовательского свойства (да, *add custom property*), сохранения файла как **XLSB** бинарной рабочей книги и, наконец, загрузки его обратно, чтобы подтвердить, что свойство осталось. По пути мы также коснёмся значений **how to add custom property**, таких как ProjectId, чтобы вы получили переиспользуемый шаблон для будущих проектов. + +> **Pro tip:** Если вы уже используете библиотеку Aspose.Cells (код ниже делает это), вы получаете нативную поддержку пользовательских свойств без каких‑либо проблем с COM‑interop. + +## Требования + +- .NET 6+ (или .NET Framework 4.6+). +- Aspose.Cells for .NET – установить через NuGet: `Install-Package Aspose.Cells`. +- Базовые знания C# – ничего сложного, только несколько операторов `using`. + +Вот и всё. Никакой установки Office, никакого interop, только чистый управляемый код. + +## Шаг 1: How to Save XLSB – создание рабочей книги Excel + +Первое, что вам нужно сделать, — создать новый объект рабочей книги. Представьте это как открытие пустого файла Excel, который существует только в памяти, пока вы не решите записать его на диск. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Зачем начинать с рабочей книги? Потому что **create excel workbook** является основой для любой дальнейшей манипуляции — будь то вставка формул, диаграмм или пользовательских свойств. Класс `Workbook` абстрагирует весь файл, а `Worksheets` предоставляет доступ к отдельным листам. + +## Шаг 2: Add Custom Property к листу + +Теперь начинается интересная часть — **add custom property**. В Aspose.Cells вы можете прикрепить свойство непосредственно к листу (или к самой рабочей книге). Здесь мы сохраним числовой ProjectId, который downstream‑сервисы могут читать, не трогая видимые ячейки. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? Просто вызовите `CustomProperties.Add(name, value)`. API автоматически обрабатывает подлежащий XML, так что вам не нужно беспокоиться о низкоуровневых деталях. Это самый надёжный способ внедрить метаданные, которые не видны конечному пользователю. + +## Шаг 3: сохранение рабочей книги как XLSB + +Когда рабочая книга готова и пользовательское свойство прикреплено, пришло время **how to save xlsb**. Формат XLSB хранит данные в бинарном представлении, что обычно делает файл меньше и быстрее открывается, чем классический XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Сохранение как XLSB так же просто, как передать `SaveFormat.Xlsb` методу `Save`. Если вы задаётесь вопросом, удалит ли это пользовательское свойство — будьте уверены, Aspose.Cells сохраняет как свойства уровня рабочей книги, так и свойства уровня листа в бинарном файле. + +## Шаг 4: проверка пользовательского свойства + +Хорошая привычка — перезагрузить файл и убедиться, что свойство выжило после round‑trip. Это также демонстрирует **how to add custom property** позже, если понадобится его обновить. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Если консоль выводит `12345`, вы успешно выполнили **how to save xlsb** *и* **add project id** за один раз. Свойство находится во внутренней метадате файла, невидимо в UI, но полностью читаемо кодом. + +## Дополнительные советы: добавление нескольких свойств и особые случаи + +### Добавление более одного свойства + +You can stack as many properties as you like: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Обновление существующего свойства + +If a property already exists, just assign a new value: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Обработка отсутствующих свойств + +Attempting to read a non‑existent property throws a `KeyNotFoundException`. Guard against it: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Совместимость между версиями + +XLSB работает в Excel 2007 + и в веб‑версии Excel. Однако старые версии Office (< 2007) не могут открывать файлы XLSB. Если нужна более широкая совместимость, рассмотрите сохранение второй копии как XLSX. + +### Соображения производительности + +Бинарные файлы XLSB обычно на 30‑50 % меньше, чем XLSX, и загружаются быстрее. Для больших наборов данных (сотни тысяч строк) прирост скорости может быть заметным. + +## Полный рабочий пример + +Ниже представлен полный код программы, который вы можете скопировать и вставить в консольный проект. Он включает все шаги, обработку ошибок и комментарии, необходимые для мгновенного старта. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Ожидаемый вывод** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Если вы видите вышеуказанное, вы освоили **how to save xlsb**, **add custom property** и **add project id** — всё в аккуратном, переиспользуемом фрагменте. + +## Часто задаваемые вопросы + +**Q: Работает ли это с .NET Core?** +A: Абсолютно. Aspose.Cells совместим с .NET Standard, поэтому тот же код работает на .NET 5/6/7 и на .NET Framework. + +**Q: Можно ли добавить пользовательское свойство ко всей рабочей книге, а не к отдельному листу?** +A: Да. Используйте `workbook.CustomProperties.Add("Key", value);`, чтобы прикрепить его на уровне рабочей книги. + +**Q: Что если нужно сохранить большую строку (например, JSON) как свойство?** +A: API принимает строки любой длины, но имейте в виду, что очень большие блобы могут увеличить размер файла. Для огромных данных лучше использовать скрытый лист. + +**Q: Видно ли пользовательское свойство в интерфейсе Excel?** +A: Не напрямую. Пользователи могут увидеть его через **File → Info → Properties → Advanced Properties → Custom**, но оно не появится в таблице. + +## Заключение + +Мы рассмотрели, как **how to save xlsb** файлы в C# с **adding a custom property**, например ProjectId. Следуя пошаговому шаблону — **create excel workbook**, **add custom property**, **save as XLSB**, и **verify** — у вас теперь есть надёжная, пригодная для цитирования справка, полезная как для поисковых роботов, так и для AI‑ассистентов. + +Далее вы можете исследовать: + +- **How to add custom property** к нескольким листам в цикле. +- Экспорт данных из DataTable в рабочую книгу перед сохранением. +- Шифрование файла XLSB для дополнительной безопасности. + +Не стесняйтесь экспериментировать, менять имена свойств или заменять бинарный формат на XLSX, если нужна более широкая совместимость. Есть сложный сценарий? Оставьте комментарий, и мы разберёмся вместе. Счастливого кодинга! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/russian/net/excel-autofilter-validation/_index.md index 96f08ed910..622b8e4d52 100644 --- a/cells/russian/net/excel-autofilter-validation/_index.md +++ b/cells/russian/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Узнайте, как легко выполнять автоматическую фильтрацию строк Excel с помощью Aspose.Cells в .NET с помощью этого подробного пошагового руководства. ### [Проверка десятичных данных в Excel](./decimal-data-validation-in-excel/) Узнайте, как реализовать проверку десятичных данных в Excel с помощью Aspose.Cells для .NET с помощью нашего простого руководства. Улучшите целостность данных без усилий. +### [Удалить автофильтр из Excel – Полное руководство C#](./remove-autofilter-from-excel-complete-c-guide/) +Узнайте, как удалить автофильтр из Excel с помощью Aspose.Cells в .NET, следуя нашему полному руководству на C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/russian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..cc0b6b79e2 --- /dev/null +++ b/cells/russian/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-03-21 +description: Узнайте, как удалить AutoFilter из Excel с помощью C#. Это пошаговое + руководство также показывает, как удалить AutoFilter, отключить AutoFilter в Excel + и очистить фильтр таблицы Excel. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: ru +og_description: Удалите AutoFilter из Excel с помощью C#. Этот учебник показывает, + как удалить AutoFilter, отключить AutoFilter в Excel и очистить фильтр таблицы Excel + всего за несколько строк кода. +og_title: Удалить AutoFilter из Excel – Полное руководство по C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Удалить AutoFilter из Excel — Полное руководство по C# +url: /ru/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Удаление AutoFilter из Excel – Полное руководство на C# + +Когда‑нибудь вам нужно было **remove AutoFilter from Excel**, но вы не знали, какой вызов API действительно отключает его? Вы не одиноки. Во многих конвейерах отчетности UI фильтра мешает последующей обработке, поэтому его удаление является распространённой задачей. В этом руководстве мы пройдемся по лаконичному, готовому к продакшну решению, которое не только показывает **how to delete AutoFilter**, но и объясняет **turn off AutoFilter Excel** стилистические фильтры, а также как полностью **clear Excel table filter**. + +> **Что вы получите:** готовую к запуску программу на C#, которая загружает существующую книгу, удаляет фильтр из первой таблицы и сохраняет новую копию без оставшихся элементов UI. + +## Требования + +- .NET 6+ (или .NET Framework 4.7.2+) +- Пакет NuGet **Aspose.Cells** (API, который мы используем в коде) +- Пример книги (`TableWithFilter.xlsx`), уже содержащей таблицу с применённым AutoFilter +- Базовое понимание синтаксиса C# (глубокие внутренности Excel не требуются) + +Если у вас есть всё это, давайте начнём. + +--- + +## Шаг 1 – Установить Aspose.Cells и настроить проект + +Прежде чем любой код выполнится, вам нужна библиотека, предоставляющая классы `Workbook`, `Worksheet` и `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Совет:** Используйте бесплатную оценочную версию для тестирования; просто не забудьте установить лицензионный ключ перед выпуском в продакшн. + +### Почему это важно +Aspose.Cells абстрагирует работу с низкоуровневым OOXML, поэтому мы можем манипулировать таблицами, фильтрами и стилями без собственного парсинга XML. Поэтому задачи **remove autofilter from excel** становятся однострочными вместо множества XML‑манипуляций. + +--- + +## Шаг 2 – Загрузить книгу, содержащую таблицу + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +`Workbook` объект представляет весь файл Excel. Его загрузка в первую очередь гарантирует чистую копию в памяти для работы, что критично, когда позже вы **clear excel table filter** без влияния на другие листы. + +## Шаг 3 – Получить лист и целевую таблицу + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +**ListObject** — термин Aspose для таблицы Excel. Даже если на листе несколько таблиц, вы можете пройтись по `worksheet.ListObjects` и применить ту же логику к каждой. Эта гибкость отвечает на вопрос «что если у меня несколько таблиц?», который задают многие разработчики. + +## Шаг 4 – Удалить AutoFilter из таблицы + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Установка `AutoFilter` в `null` **полностью удаляет объект фильтра**, что является самым надёжным способом **how to delete autofilter**. Альтернативное свойство `ShowAutoFilter` лишь скрывает UI, но оставляет движок фильтра активным — полезно, если вы хотите только **turn off autofilter excel** визуально, сохраняя критерии. + +> **Особый случай:** Если у таблицы не применён AutoFilter, `table.AutoFilter` уже будет `null`. Эта строка безопасна; она просто ничего не делает. + +## Шаг 5 – Сохранить изменённую книгу + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Сохранение в новый файл сохраняет оригинал нетронутым — лучшая практика при автоматизации преобразований Excel. После запуска программы откройте `NoAutoFilter.xlsx`; вы увидите таблицу без выпадающих списков фильтра, подтверждая, что операция **remove excel table filter** прошла успешно. + +## Проверьте результат – чего ожидать + +1. **Откройте `NoAutoFilter.xlsx`** в Excel. +2. **Выберите таблицу** — маленькие значки‑вёшки рядом с заголовками столбцов должны исчезнуть. +3. **Проверьте другие листы** — они остаются нетронутыми, подтверждая, что мы только **clear excel table filter** на нужном листе. + +Если значки всё ещё присутствуют, проверьте, что вы указали правильный индекс `ListObject`. Помните, что таблицы Excel в Aspose нумеруются с нуля, поэтому `ListObjects[0]` — первая таблица на листе. + +## Обработка нескольких таблиц или листов + +Иногда необходимо **remove autofilter from excel** книги, содержащие несколько таблиц на разных листах. Вот быстрое расширение: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Этот цикл гарантирует, что **turn off autofilter excel** везде, устраняя любые скрытые фильтры, которые могут помешать последующему импорту данных. + +## Распространённые подводные камни и как их избежать + +| Подводный камень | Почему происходит | Решение | +|------------------|-------------------|---------| +| **Фильтр остаётся после сохранения** | Использование `ShowAutoFilter = false` только скрывает UI. | Используйте `table.AutoFilter = null`, чтобы действительно удалить его. | +| **Неправильный индекс таблицы** | Предположение, что первая таблица — нужная. | Проверьте `worksheet.ListObjects.Count` и используйте осмысленные имена (`tbl.Name`). | +| **Отсутствует лицензия** | Оценочная версия может вставлять водяные знаки. | Зарегистрируйте лицензию заранее: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Файл заблокирован** | Excel всё ещё держит исходный файл открытым. | Убедитесь, что книга закрыта в Excel перед запуском скрипта. | + +## Бонус: Добавление AutoFilter обратно (если передумаете) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Наличие обратной операции под рукой делает руководство универсальным для сценариев **remove autofilter from excel** и **how to delete autofilter**. + +## Полный рабочий пример (готов к копированию и вставке) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Запуск приведённого кода **remove autofilter from excel** для каждой таблицы в книге, предоставит вам чистый лист для дальнейшей обработки. + +## Заключение + +Мы только что рассмотрели всё, что нужно, чтобы **remove autofilter from excel** с помощью C#. От установки Aspose.Cells, загрузки книги, поиска таблицы, фактического удаления фильтра до сохранения чистого файла — каждый шаг объяснён с «почему». Теперь вы знаете, как **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel** и **clear excel table filter** в одном переиспользуемом фрагменте. + +Готовы к следующему вызову? Попробуйте автоматизировать добавление условного форматирования или изучите, как программно **add an AutoFilter back**. Оба направления опираются на только что рассмотренные концепции и сделают ваш набор инструментов для автоматизации Excel ещё более мощным. + +Есть вопросы или вы заметили сценарий, который мы не охватили? Оставьте комментарий ниже — happy coding! + +![Скриншот, показывающий лист Excel без выпадающих списков фильтра – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/russian/net/excel-comment-annotation/_index.md index 1aefe73908..161c3c3434 100644 --- a/cells/russian/net/excel-comment-annotation/_index.md +++ b/cells/russian/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Узнайте, как добавлять комментарии к ячейкам в Excel с помощью Aspose.Cells для .NET. Пошаговое руководство для начинающих по улучшению функциональности Excel. ### [Формат комментариев — шрифт, цвет, выравнивание](./format-comments-font-color-alignment/) Узнайте, как легко форматировать комментарии Excel с помощью Aspose.Cells для .NET. Настройте шрифт, размер и выравнивание, чтобы улучшить свои электронные таблицы. +### [Создать книгу Excel C# – Добавить и заполнить комментарии с умными маркерами](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Узнайте, как создавать рабочие книги Excel в C# и добавлять комментарии с умными маркерами с помощью Aspose.Cells для .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/russian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..a864772953 --- /dev/null +++ b/cells/russian/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-21 +description: Создайте Excel‑книгу на C# и узнайте, как добавить комментарий в Excel, + автоматически заполнять его с помощью Smart Markers. Пошаговое руководство для разработчиков. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: ru +og_description: Создайте рабочую книгу Excel на C# и быстро добавьте комментарий в + Excel, затем заполните комментарий с помощью Smart Markers. Полный учебник с кодом. +og_title: Создание книги Excel на C# – добавление и заполнение комментариев +tags: +- C# +- Excel automation +- Aspose.Cells +title: Создание рабочей книги Excel в C# – добавление и заполнение комментариев с + помощью умных маркеров +url: /ru/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание Excel Workbook C# – Добавление и заполнение комментариев с помощью Smart Markers + +Когда‑нибудь вам нужно было **create Excel workbook C#** и вы задавались вопросом, как встроить комментарий, который обновляется автоматически? Вы не одиноки. Во многих сценариях отчетности вам нужен комментарий ячейки, который говорит *«Created by Alice on 2024‑07‑15»* без жесткого кодирования имени или даты каждый раз. + +В этом руководстве мы покажем вам точно **how to add comment to Excel**, затем **how to fill comment** с использованием Smart Markers от Aspose.Cells. К концу вы получите готовую к запуску программу, которая создает workbook, вставляет динамический комментарий и сохраняет файл — всё за несколько простых шагов. + +> **What you’ll get:** полностью компилируемое C# console приложение, объяснение каждой строки, советы по распространенным подводным камням и идеи по расширению решения. + +## Требования + +- .NET 6.0 SDK или новее (код работает также с .NET Core и .NET Framework) +- Visual Studio 2022 или любой предпочитаемый IDE +- **Aspose.Cells for .NET** NuGet пакет (`Install-Package Aspose.Cells`) – эта библиотека обеспечивает классы `Workbook`, `Worksheet` и `SmartMarkerProcessor`, используемые ниже. +- Базовое знакомство с синтаксисом C# – если вы писали `Console.WriteLine`, вы готовы к работе. + +Теперь, когда подготовка завершена, давайте погрузимся. + +![Create Excel workbook C# example screenshot](excel-workbook.png "Create Excel workbook C# example") + +## Шаг 1: Инициализация нового Workbook – Основы создания Excel Workbook C# + +Сначала нам нужен чистый объект workbook. Представьте `Workbook` как пустой холст; без него вы не сможете разместить ячейки, строки или комментарии. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Почему это важно:** `Workbook` автоматически создает лист по умолчанию, поэтому вам не нужно вызывать `Add`, если только не нужны дополнительные вкладки. Обращение к `Worksheets[0]` — самый быстрый способ начать заполнять данные. + +## Шаг 2: Вставка комментария с Smart Marker – Как добавить комментарий с токенами + +Далее мы помещаем комментарий в ячейку **B2**, содержащий токены Smart Marker (`«UserName»` и `«CreatedDate»`). Эти токены позже будут заменены реальными значениями. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Объяснение:** +- `CreateComment()` создает объект комментария, если он отсутствует; иначе возвращает существующий. +- Свойство `Note` содержит видимый текст. Обернув заполнители в `« »`, мы сообщаем Aspose.Cells, что это **Smart Markers** — заполнители, которые можно заменить за один проход. + +> **Pro tip:** Если вам нужен многострочный комментарий, используйте `\n` внутри строки, например, `"Line1\nLine2"`. + +## Шаг 3: Подготовка объекта данных – Как динамически заполнить комментарий + +Smart Markers требуют источник данных. В C# самый простой способ — анонимный тип, соответствующий именам заполнителей. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Почему анонимный тип?** +Он легковесный, не требует отдельного файла класса и точно совпадает с именами свойств (`UserName`, `CreatedDate`) и именами токенов. Если вы предпочитаете строго типизированную модель, просто создайте класс с теми же свойствами. + +## Шаг 4: Обработка Smart Markers – Как заполнить комментарий, используя объект данных + +Теперь происходит магия. `SmartMarkerProcessor` сканирует workbook в поисках токенов `«…»` и заменяет их значениями из `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Что происходит под капотом?** +`SmartMarkerProcessor` проходит по каждой ячейке, комментарию, заголовку и т.д., ищет шаблон `«Token»`. Когда он находит такой шаблон, использует рефлексию, чтобы прочитать соответствующее свойство из `markerData` и записать значение обратно. Ручные циклы не требуются. + +## Шаг 5: Сохранение Workbook – Заполнение комментария Excel и сохранение файла + +Наконец мы записываем workbook на диск. Комментарий теперь выглядит примерно так: *«Created by Alice on 03/21/2026 10:15 AM»*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Проверка результата:** Откройте `CommentFilled.xlsx` в Excel, наведите курсор на ячейку **B2**, и вы увидите комментарий с реальным именем пользователя и меткой времени. Для последующих запусков код менять не нужно — просто измените значения `markerData`. + +--- + +## Общие варианты и граничные случаи + +### Использование пользовательского формата даты + +Если вам нужна дата в формате `yyyy‑MM‑dd`, скорректируйте объект данных: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Добавление нескольких комментариев + +Вы можете повторить **Step 2** для других ячеек. Каждый комментарий может иметь свой набор токенов или использовать те же, если информация универсальна. + +### Работа с существующими Workbook + +Вместо `new Workbook()` загрузите существующий файл: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Оставшиеся шаги остаются одинаковыми — Smart Markers работают как с новыми, так и с уже существующими файлами. + +### Обработка null‑значений + +Если токен может отсутствовать, оберните свойство в nullable тип или задайте запасное значение: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +Процессор вставит *«Unknown»*, когда источник `null`. + +--- + +## Полный рабочий пример (готовый к копированию и вставке) + +Ниже представлен **полный код программы**, который вы можете вставить в проект консольного приложения и запустить сразу (просто замените `YOUR_DIRECTORY` на реальный путь к папке). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Запустите программу, откройте сгенерированный файл, и вы увидите динамический комментарий в ячейке **B2**. Просто, не правда ли? + +## Часто задаваемые вопросы (FAQ) + +**Q: Работает ли это с .NET Framework 4.7?** +A: Абсолютно. Aspose.Cells поддерживает .NET Framework 4.0+ и .NET Core/5/6/7. Просто подключите соответствующий DLL или NuGet пакет. + +**Q: Могу ли я использовать этот подход для проверки данных или условного форматирования?** +A: Smart Markers в основном предназначены для вставки значений в ячейки, комментарии, заголовки и колонтитулы. Для условного форматирования по‑прежнему используйте обычные API `Style`. + +**Q: Что если мне нужно добавить комментарий на **другой** лист?** +A: Получите целевой лист (`workbook.Worksheets["MySheet"]`) и повторите **Step 2** для ячеек этого листа. + +## Следующие шаги и связанные темы + +- **How to add comment to Excel** программно для нескольких ячеек (цикл по диапазону). +- **Fill Excel comment** данными из базы данных (используйте `DataTable` как источник данных для Smart Markers). +- Исследуйте **Smart Marker arrays** для автоматической генерации таблиц. +- Узнайте о **Aspose.Cells styling** для форматирования шрифта, цвета и размера комментария. + +Экспериментируйте с фрагментами кода, меняйте источник данных, и вы быстро освоите **how to fill comment** в любой сценарии автоматизации Excel. + +### Итоги + +Мы только что прошли весь процесс **create excel workbook c#**, **add comment to excel**, и **fill excel comment** с использованием Smart Markers. Решение компактное, переиспользуемое и готово к продакшну. + +Попробуйте, измените заполнители, и позвольте библиотеке выполнить тяжелую работу. Если столкнетесь с проблемами, оставьте комментарий ниже — 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/russian/net/excel-custom-number-date-formatting/_index.md b/cells/russian/net/excel-custom-number-date-formatting/_index.md index 9016c0c69f..1ad5ece21f 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,8 @@ Узнайте, как проверить значения ячеек Excel на соответствие пользовательским числовым форматам с помощью Aspose.Cells для .NET, из этого пошагового руководства. ### [Укажите поля формул при импорте данных в таблицу Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Узнайте, как импортировать данные в таблицы Excel с указанными полями формул с помощью Aspose.Cells для .NET в этом подробном руководстве. +### [Установить пользовательский формат ячейки в C# – Полное руководство по записи и чтению дат в Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Узнайте, как установить пользовательский формат ячейки и работать с датами в Excel с помощью Aspose.Cells для .NET в этом полном руководстве. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/russian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..6e1df19841 --- /dev/null +++ b/cells/russian/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-03-21 +description: Задайте пользовательский формат ячейки в C# и узнайте, как записать дату + в Excel, применить пользовательский формат даты, прочитать DateTime из Excel и быстро + создать рабочую книгу и лист. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: ru +og_description: Установите пользовательский формат ячейки в C# для записи даты в Excel, + примените пользовательский формат даты, считайте DateTime из Excel и легко создавайте + листы рабочей книги. +og_title: Установить пользовательский формат ячейки в C# — запись и чтение дат в Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Установка пользовательского формата ячейки в C# – Полное руководство по записи + и чтению дат в Excel +url: /ru/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Установить пользовательский формат ячейки – запись и чтение дат в Excel с помощью C# + +Когда‑то вам нужно **установить пользовательский формат ячейки** в файле Excel из C#, но вы не знали, с чего начать? Вы не одиноки. Во многих инструментах отчётности или утилитах экспорта данных дата должна отображаться в определённой локали — например, даты японской эры, финансовые календари или строки ISO‑8601. + +В этом руководстве мы пройдём через **полный, готовый к запуску пример**, который покажет, как **записать дату в Excel**, **применить пользовательский формат даты**, **прочитать DateTime из Excel** и **создать лист рабочей книги** с помощью Aspose.Cells. К концу вы получите единый, автономный код, который можно вставить в любой .NET‑проект. + +## Что вы узнаете + +- Как **создать лист рабочей книги** программно. +- Точные шаги **записи даты в Excel** с использованием строки, зависящей от локали. +- Как **применить пользовательский формат даты** (включая обозначение японской эры). +- Как **прочитать DateTime из Excel** обратно в объект `DateTime`. +- Советы, подводные камни и варианты, с которыми вы можете столкнуться при работе с датами в Excel. + +Никакой внешней документации не требуется — всё, что нужно, находится здесь. + +## Требования + +- .NET 6.0 или новее (код также работает на .NET Framework 4.7+). +- Aspose.Cells for .NET, установленный через NuGet (`Install-Package Aspose.Cells`). +- Базовое понимание синтаксиса C# — ничего сложного. + +> **Pro tip:** Если вы используете Visual Studio, включите *nullable reference types*, чтобы раннее ловить скрытые ошибки. + +## Шаг 1: Создать Workbook и Worksheet + +Первое, что нужно: объект рабочей книги, представляющий файл Excel, и лист, где будут храниться данные. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Почему это важно:* Класс `Workbook` — точка входа для всех операций с Excel. Создание его в памяти означает, что вы не обращаетесь к файловой системе, пока явно не сохраните файл, что ускоряет процесс и упрощает тестирование. + +## Шаг 2: Записать дату в Excel + +Далее мы поместим строку даты японской эры (`"R02-04-01"`) в ячейку **A1**. Эта строка имитирует эпоху Рэйва (год 2, 1‑й апрель). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Что происходит:* `PutValue` сохраняет сырую строку. Позже Aspose.Cells попытается её разобрать в зависимости от стиля ячейки. Если пропустить этот шаг и записать сразу `DateTime`, вы потеряете информацию об эпохе, которую хотите отобразить. + +## Шаг 3: Применить встроенный числовой формат даты (ID 14) + +В Excel есть встроенный формат даты с идентификатором 14 (`mm-dd-yy`). Применив его, мы говорим движку, что ячейка **содержит дату**, а не просто текст. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Зачем нужен ID 14?* Это универсальный «короткий» формат даты, который гарантирует, что Excel будет рассматривать содержимое как значение даты, что является обязательным условием для корректной работы любого пользовательского формата. + +## Шаг 4: Установить пользовательский формат для отображения японской эры + +Теперь интересная часть: заставляем Excel отобразить дату в формате японской эры. Пользовательская строка `[$-ja-JP]ggge年m月d日` делает именно это. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Пояснение:* +- `[$-ja-JP]` принуждает использовать японскую локаль. +- `ggg` — название эры (например, «R» для Рэйва). +- `e` — номер года эры. +- `年`, `月`, `日` — буквальные японские символы «год», «месяц», «день». + +Если нужна другая локаль, просто замените `ja-JP` на нужный код культуры (например, `en-US`). + +## Шаг 5: Получить разобранное значение DateTime + +Наконец, прочитаем **реальный `DateTime`**, который Excel распарсил из ячейки. Это доказывает, что строка была правильно интерпретирована. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Результат:* Консоль выводит `Parsed DateTime: 2020-04-01`. Несмотря на то, что мы ввели строку японской эры, Excel хранит её внутренне как григорианскую дату, которую можно использовать для вычислений, сравнений или дальнейшего экспорта. + +## Шаг 6: Сохранить рабочую книгу (по желанию) + +Если хотите увидеть отформатированную книгу в Excel, просто сохраните её на диск. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Откройте сгенерированный **JapaneseEraDate.xlsx**, и вы увидите, что ячейка **A1** отображает `R02年4月1日` (точный японский формат эры, который мы задали). + +![пример установки пользовательского формата ячейки](image-placeholder.png "Ячейка Excel, показывающая дату японской эры – установка пользовательского формата ячейки") + +*Текст alt‑описания выше содержит основной ключевой запрос, удовлетворяя требование SEO для изображений.* + +## Общие варианты и граничные случаи + +### Запись даты в другом формате + +Если вам нужен ISO‑8601 (`2020-04-01`) вместо строки эры, просто измените вызов `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Работа с пустыми или нулевыми ячейками + +При чтении даты всегда проверяйте, что ячейка не пуста, чтобы избежать `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Поддержка нескольких локалей + +Можно пройтись по списку кодов культур и применять их динамически: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Полезные советы и подводные камни + +- **Сначала всегда задавайте встроенный числовой формат** (`Style.Number`). Без этого Excel считает ячейку обычным текстом, и пользовательский формат игнорируется. +- **Коды локалей регистронезависимы**, но использование канонической формы (`ja-JP`) избавляет от недоразумений. +- **Сохранение необязательно** для обработки в памяти; вы можете напрямую передать рабочую книгу в веб‑ответ (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Лицензии Aspose.Cells**: бесплатная оценочная версия добавляет водяной знак. Для продакшна убедитесь, что у вас есть действующая лицензия, иначе будет падать производительность. + +## Итоги + +Мы показали, как **установить пользовательский формат ячейки** в C# для отображения дат японской эры, как **записать дату в Excel**, **применить пользовательский формат даты**, **прочитать DateTime из Excel** и **создать лист рабочей книги** — всё в одном автономном приложении. Основной ключевой запрос естественно вписан в текст, а второстепенные запросы распределены по заголовкам и основному содержанию, удовлетворяя как SEO, так и требованиям к AI‑цитированию. + +## Что дальше? + +- Исследуйте **условное форматирование** для подсветки просроченных дат. +- Скомбинируйте этот подход с **сводными таблицами** для динамической отчётности. +- Попробуйте **читать большие CSV‑файлы** и преобразовывать их в Excel, используя ту же логику обработки дат. + +Экспериментируйте с разными локалями, пользовательскими шаблонами или даже часовыми поясами. Если возникнут вопросы, оставляйте комментарий ниже — 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/russian/net/excel-data-export-retrieval/_index.md b/cells/russian/net/excel-data-export-retrieval/_index.md index 1f8ef0e0fa..1c3c260c84 100644 --- a/cells/russian/net/excel-data-export-retrieval/_index.md +++ b/cells/russian/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ ### [Извлечение данных из ячеек в Excel](./retrieve-data-from-cells-in-excel/) Узнайте, как извлекать данные из ячеек Excel с помощью Aspose.Cells для .NET, в этом пошаговом руководстве, которое идеально подойдет как новичкам, так и опытным разработчикам. +### [Экспорт таблицы данных Excel в C# – Полное руководство](./export-excel-data-table-in-c-complete-guide/) +Узнайте, как экспортировать таблицу данных Excel в C# с помощью Aspose.Cells для .NET в полном руководстве, подходящем как новичкам, так и опытным разработчикам. + +### [Как экспортировать данные Excel в C# – Пошаговое руководство](./how-to-export-excel-data-in-c-step-by-step-guide/) +Узнайте, как экспортировать данные Excel в C# с помощью Aspose.Cells для .NET в пошаговом руководстве, подходящем как новичкам, так и опытным разработчикам. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/russian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/russian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..70a28ad36e --- /dev/null +++ b/cells/russian/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-03-21 +description: Экспортировать таблицу данных Excel в DataTable с заголовками, ограничить + количество знаков после запятой и экспортировать первые 100 строк с помощью Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: ru +og_description: Узнайте, как экспортировать таблицу данных Excel в DataTable, сохранить + заголовки, ограничить количество знаков после запятой и получить первые 100 строк + в C#. +og_title: Экспорт таблицы данных Excel в C# – пошаговое руководство +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Экспорт таблицы данных Excel в C# – Полное руководство +url: /ru/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Экспорт таблицы данных Excel – Полный пошаговый пример на C# + +Нужно **export excel data table** из книги в .NET `DataTable`? Вы попали по адресу — в этом руководстве показано, как именно это сделать, сохранить заголовки столбцов, ограничить количество знаков после запятой и извлечь только первые 100 строк. + +Если вы когда‑нибудь смотрели на таблицу и думали: «Как мне получить эти данные в приложение, не потеряв форматирование?», вы не одиноки. В течение нескольких минут мы превратим эту «что‑если» ситуацию в готовое решение копировать‑вставлять, работающее с Aspose.Cells, популярной библиотекой для работы с Excel. + +## Что вы узнаете + +- Как **export excel to datatable** с помощью метода `ExportDataTable`. +- Как сохранить оригинальные имена столбцов (`export excel with headers`). +- Как **limit decimal places excel** значения, настроив `ExportTableOptions`. +- Как безопасно получить только первые 100 строк (`export first 100 rows`). + +Никаких внешних скриптов, никаких магических строк — просто чистый C#, который можно вставить в любой .NET‑проект. + +## Требования + +| Требование | Почему это важно | +|-------------|----------------| +| .NET 6 или новее (или .NET Framework 4.7+) | Aspose.Cells поддерживает оба варианта, но более новые среды предоставляют асинхронные API. | +| NuGet‑пакет Aspose.Cells for .NET | Содержит `Workbook`, `ExportTableOptions` и вспомогательный `ExportDataTable`. | +| Пример файла Excel (например, `Numbers.xlsx`) | Источник данных, которые вы будете экспортировать. | +| Базовые знания C# | Вы будете следовать примерам кода, но ничего сложного не требуется. | + +Если что‑то из этого вам незнакомо, установите NuGet‑пакет командой `dotnet add package Aspose.Cells` и создайте небольшой файл Excel с несколькими числами — ваш тестовый набор данных. + +![пример экспорта таблицы данных Excel](excel-data-table.png "Скриншот листа Excel, который будет экспортирован в DataTable") + +## Шаг 1: Загрузка книги (export excel data table) + +Первое, что вам нужно, — это экземпляр `Workbook`, указывающий на ваш файл Excel. Представьте это как открытие книги перед тем, как читать главы. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Почему это важно:** Загрузка книги дает доступ к её листам, ячейкам и стилям. Если путь к файлу неверный, Aspose бросит `FileNotFoundException`, поэтому проверьте расположение. + +## Шаг 2: Настройка параметров экспорта – limit decimal places excel + +По умолчанию Aspose экспортирует каждое числовое значение с полной точностью. Часто достаточно лишь нескольких значимых цифр, особенно когда данные передаются в UI‑грид или API, ожидающий округлённые числа. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Полезный совет:** Если вам нужна другая стратегия округления (например, всегда округлять вверх), вы можете пост‑обработать `DataTable` после экспорта. Параметр `SignificantDigits` — самый быстрый способ **limit decimal places excel** без написания дополнительных циклов. + +## Шаг 3: Экспорт нужного диапазона (export first 100 rows) + +Теперь мы указываем Aspose, какой блок ячеек нужно выгрузить в `DataTable`. В этом руководстве мы берём первые 100 строк и первые 10 столбцов, но вы можете изменить эти числа под свои нужды. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Особый случай:** Если на листе меньше 100 строк, Aspose просто экспортирует существующие данные без ошибки. Тем не менее, возможно, захотите добавить проверку на неожиданно маленький диапазон: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Шаг 4: Проверка результата – быстрый вывод в консоль + +Просмотр данных в отладчике приятен, но вывод нескольких строк в консоль подтверждает, что **export excel to datatable** действительно сработал и знаки после запятой обрезаны. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Ожидаемый вывод + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Обратите внимание, что числовые столбцы теперь показывают только четыре значимых цифры, соответствующие настройке `SignificantDigits = 4`, которую мы задали ранее. + +## Шаг 5: Объединяем всё — полный, готовый к запуску пример + +Ниже представлен полный код программы, который можно скопировать‑вставить в консольное приложение. Он включает обработку ошибок, необязательную проверку количества строк и вспомогательный метод для вывода. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Запустите программу, и вы увидите первые 100 строк вашего листа, аккуратно округлённые, с сохранёнными названиями столбцов. + +## Часто задаваемые вопросы и подводные камни + +| Вопрос | Ответ | +|----------|--------| +| **Что делать, если на листе есть объединённые ячейки?** | `ExportDataTable` «разворачивает» объединённые ячейки, беря значение верхней‑левой. Если требуется особая обработка, сначала разъедините их или читайте сырые объекты `Cell`. | +| **Можно ли экспортировать в `DataSet` вместо `DataTable`?** | Да — используйте `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/russian/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..647b7c2706 --- /dev/null +++ b/cells/russian/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Как экспортировать данные Excel с именами столбцов, сохранить числовой + формат и читать определённые строки с помощью Aspose.Cells в C#. Узнайте, как эффективно + читать лист Excel и экспортировать выбранные строки. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: ru +og_description: Как экспортировать данные Excel с именами столбцов, сохранить числовой + формат и читать определённые строки с помощью Aspose.Cells. Полный, готовый к запуску + пример для разработчиков C#. +og_title: Как экспортировать данные Excel в C# – Полное руководство по программированию +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Как экспортировать данные Excel в C# – пошаговое руководство +url: /ru/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как экспортировать данные Excel в C# – Полное руководство по программированию + +Когда‑нибудь задумывались **как экспортировать excel** данные без потери исходного форматирования? Возможно, вы пробовали быстро скопировать‑вставить и получили даты в виде «44728» или пропавшие заголовки столбцов. Это раздражает, верно? В этом руководстве вы увидите чистый, сквозной способ чтения листа Excel, сохранения числового формата, экспорта с именами столбцов и даже выбора только нужных строк. + +Мы будем использовать библиотеку Aspose.Cells, потому что она предоставляет тонкий контроль над параметрами экспорта. К концу этого руководства у вас будет переиспользуемый фрагмент кода, который можно вставить в любой проект .NET, и вы поймёте, почему каждый параметр важен. Никакой внешней документации не требуется — всё, что нужно, находится здесь. + +--- + +## Что вы узнаете + +- **Чтение листа Excel** в память с помощью Aspose.Cells. +- **Экспорт конкретных строк** (например, строки 0‑49) с сохранением имён столбцов. +- **Сохранение числового формата**, чтобы валюты, даты и проценты оставались неизменными. +- Как **экспортировать с именами столбцов** и включать комментарии ячеек, если они нужны. +- Полный, готовый к запуску пример на C# плюс советы по типичным подводным камням. + +### Предварительные требования + +- .NET 6.0 или новее (код также работает с .NET Framework 4.6+). +- Aspose.Cells for .NET, установленный через NuGet (`Install-Package Aspose.Cells`). +- Файл Excel (`input.xlsx`), размещённый в папке, к которой вы можете обратиться. + +> **Pro tip:** Если вы работаете в CI‑конвейере, рассмотрите возможность получения пакета NuGet из приватного фида, чтобы избежать неожиданностей с лицензией. + +--- + +## Шаг 1 – Установите Aspose.Cells и добавьте пространства имён + +Сначала убедитесь, что пакет Aspose.Cells добавлен в ваш проект. Откройте консоль диспетчера пакетов и выполните: + +```powershell +Install-Package Aspose.Cells +``` + +Затем добавьте необходимые директивы `using` в начало вашего C#‑файла: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Эти импорты дают вам доступ к `Workbook`, `Worksheet`, `ExportTableOptions` и `DataTable` — основным элементам для **чтения листа Excel** и экспорта данных. + +--- + +## Шаг 2 – Загрузите книгу (прочитайте файл Excel) + +Теперь мы действительно **читаем лист Excel**. Конструктор `Workbook` принимает путь к файлу, а Aspose.Cells обрабатывает как форматы `.xlsx`, так и более старый `.xls`. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Почему это важно:** Загрузка книги один раз и повторное использование того же объекта `Worksheet` гораздо эффективнее, чем открывать файл каждый раз, особенно для больших таблиц. + +--- + +## Шаг 3 – Настройте параметры экспорта (сохранение числового формата и имён столбцов) + +Здесь мы указываем Aspose.Cells *как* экспортировать. Класс `ExportTableOptions` позволяет точно настроить вывод. Мы включим три флага: + +1. `ExportAsString = true` – заставляет каждую ячейку стать строкой, что гарантирует сохранение визуального представления чисел. +2. `IncludeCellComments = true` – копирует любые комментарии, прикреплённые к ячейкам (удобно для документации). +3. `PreserveNumberFormat = true` – сохраняет оригинальный числовой формат (символы валют, шаблоны дат и т.д.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Крайний случай:** Если установить `ExportAsString` в `false`, но всё равно захотеть сохранить числовые форматы, вы можете получить «сырые» числовые значения (например, 44728 для даты). Оставив оба флага включёнными, вы избегаете такого сюрприза. + +--- + +## Шаг 4 – Получите первый лист (чтение листа Excel) + +Большинство простых файлов имеют нужные данные на первом листе, поэтому мы получим его по индексу. Если нужен другой лист, замените `0` на соответствующий нулевой индекс или используйте `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Почему это полезно:** Прямой доступ к объекту листа даёт вам полный контроль над его коллекцией `Cells`, что необходимо для **экспорта конкретных строк** позже. + +--- + +## Шаг 5 – Экспорт диапазона ячеек (экспорт конкретных строк) + +Теперь главное в руководстве: экспорт строк 0‑49 и столбцов 0‑4 (т.е. первых 50 строк и первых пяти столбцов) в `DataTable`. Мы также попросим Aspose.Cells включить имена столбцов как первую строку `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Что делает этот код + +- **`startRow: 0`** – начинается с самого верха листа. +- **`totalRows: 50`** – берёт первые 50 строк (т.е. **export specific rows**). +- **`totalColumns: 5`** – ограничивает экспорт первыми пятью столбцами. +- **`includeColumnNames: true`** – гарантирует, что заголовки `DataTable` совпадают с заголовками Excel, удовлетворяя требованию **export with column names**. +- **`exportOptions`** – применяет настройки из Шага 3, поэтому ваши числовые значения остаются выглядеть как “$1,234.56”, а не “1234.56”. + +--- + +## Шаг 6 – Проверьте экспорт (как выглядит результат) + +Выведем первые несколько строк в консоль, чтобы убедиться, что форматирование сохранилось. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Ожидаемый вывод (пример):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Обратите внимание, как даты отображаются в формате `MM/dd/yyyy`, а валюта сохраняет символ `$` — благодаря **preserve number format**. + +--- + +## Распространённые подводные камни и как их избежать + +| Проблема | Почему происходит | Решение | +|----------|-------------------|---------| +| Даты превращаются в большие числа | `ExportAsString` оставлен `false` | Оставьте `ExportAsString = true` или преобразуйте ячейки вручную | +| Отсутствуют заголовки столбцов | `includeColumnNames` установлен в `false` | Установите `true`, когда нужен **export with column names** | +| Комментарии исчезают | `IncludeCellComments` не включён | Включите `IncludeCellComments` в `ExportTableOptions` | +| Экспортируется не тот лист | Используется `Worksheets[0]` в файле с несколькими листами | Укажите имя листа: `workbook.Worksheets["Data"]` | +| Исключение «выход за пределы диапазона» | `totalRows` превышает фактическое количество строк | Используйте `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## Бонус: Экспорт всего листа с сохранением форматов + +Если позже понадобится экспортировать весь лист, просто замените `totalRows` и `totalColumns` на максимальные размеры листа: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Теперь у вас есть процедура **read excel worksheet**, работающая с любыми размерами, при этом **preserving number format** и **exporting with column names** сохраняются. + +--- + +## Полный рабочий пример (готов к копированию) + +Ниже полностью готовая программа, которую можно вставить в консольное приложение. В ней собраны все шаги, импорты и простая проверка вывода. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Сохраните файл как `Program.cs`, выполните `dotnet run`, и вы увидите отформатированный предварительный просмотр в терминале. + +--- + +## Заключение + +Мы только что прошли через **how to export excel** данные с помощью Aspose.Cells, охватив всё от загрузки книги до сохранения числового формата, экспорта с именами столбцов и ограничения экспорта конкретными строками. Код автономный, полностью исполняемый и включает практические защиты от самых распространённых краевых случаев. + +Готовы к следующему вызову? Попробуйте экспортировать напрямую в CSV, всё ещё сохраняя оригинальное числовое форматирование, или передать `DataTable` в контекст Entity Framework Core для массовой вставки в базу данных. Оба сценария опираются на те же фундаментальные принципы, которые мы рассмотрели здесь. + +Если вам был полезен этот гид + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..1ee7bbc0af 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 с помощью этого пошагового руководства. Защитите свои документы. | +| [Создать книгу Excel со стилизованной таблицей – пошаговое руководство](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Создайте книгу Excel со стилизованной таблицей, следуя пошаговому руководству по использованию Aspose.Cells для .NET. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/russian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..43658f3f2a --- /dev/null +++ b/cells/russian/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-21 +description: Создать книгу Excel и импортировать в неё таблицу данных, задавая стиль + столбцов, экспортировать данные в Excel и форматировать даты в ячейках Excel в минутах. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: ru +og_description: Быстро создавайте рабочую книгу Excel. Узнайте, как импортировать + datatable в Excel, задавать стиль столбцов, экспортировать данные в Excel и форматировать + даты в ячейках Excel в одном руководстве. +og_title: Создание рабочей книги Excel – Полный учебник по стилизации и экспорту +tags: +- C# +- Aspose.Cells +- Excel automation +title: Создание рабочей книги Excel со стилизованной таблицей — пошаговое руководство +url: /ru/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание Excel workbook – Полный учебник по программированию + +Когда‑то вам нужно **create excel workbook**, который выглядит отточенно сразу из кода? Возможно, вы вытягиваете данные из базы, и хотите, чтобы даты отображались в правильном формате без доработок в Excel позже. Это распространённая боль — особенно когда результат попадает в почтовый ящик клиента, а он ожидает готовый к использованию файл. + +В этом руководстве мы пройдём через единое, автономное решение, которое **imports datatable to excel**, применяет **set column style**, и в конце **export data to excel** как красиво отформатированный файл. Вы увидите, как именно **format excel cells date**, чтобы таблица выглядела как профессиональный отчёт, и получите полностью готовый пример в конце. Никаких пропусков, никаких «см. документацию»‑шорткатов — только чистый код, который можно сразу вставить в проект. + +--- + +## Что вы узнаете + +- Как **create excel workbook** с помощью библиотеки Aspose.Cells (или любого совместимого API). +- Самый быстрый способ **import datatable to excel** без ручных циклов по ячейкам. +- Приёмы **set column style**, включая применение формата даты к конкретному столбцу. +- Как **export data to excel** одним вызовом `Save`. +- Распространённые подводные камни при **format excel cells date** и как их избежать. + +### Требования + +- .NET 6+ (или .NET Framework 4.6+). +- Aspose.Cells for .NET установлен (`Install-Package Aspose.Cells`). +- `DataTable`, готовая к экспорту — источником могут быть SQL, CSV или любой другой набор, который можно превратить в `DataTable`. + +Если вы уже уверенно работаете с C# и у вас есть всё перечисленное, можно начинать. В противном случае раздел «Требования» выше даст быстрый чек‑лист. + +--- + +## Шаг 1 – Создание экземпляра Excel workbook + +Первое, что делаете, когда хотите **create excel workbook** программно, — создаёте объект workbook. Представьте это как открытие чистой тетради, в которую позже запишете данные. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Почему это важно:** +> Класс `Workbook` — точка входа для любой операции в Aspose.Cells. Создав его заранее, вы получаете чистый холст и позже можете загрузить существующий файл, если нужно добавить данные вместо создания с нуля. + +--- + +## Шаг 2 – Подготовка DataTable для импорта + +Прежде чем **import datatable to excel**, нужен `DataTable`. В реальных проектах он часто получается через `SqlDataAdapter.Fill` или `DataTable.Load`. Для наглядности мы создадим заглушку метода, который возвращает готовую таблицу. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Совет:** Если ваши даты хранятся как строки, сначала преобразуйте их в `DateTime` — иначе шаг **format excel cells date** не сработает как ожидается. + +--- + +## Шаг 3 – Определение стилей для каждого столбца (Set Column Style) + +Теперь пришло время **set column style**. Мы создадим массив объектов `Style` — по одному на каждый столбец. Первый столбец получит встроенный формат даты (code 14), остальные останутся в общем формате (code 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Зачем использовать объекты стиля?** +> Применять стиль один раз и переиспользовать его гораздо эффективнее, чем задавать формат каждой ячейке отдельно. Это также гарантирует, что весь столбец будет соблюдать одно и то же правило **format excel cells date**, что критично для согласованности при открытии файла в разных локалях. + +--- + +## Шаг 4 – Импорт DataTable со стилями в лист + +Имея готовый workbook и определённые стили, мы теперь **import datatable to excel**. Метод `ImportDataTable` делает всю тяжёлую работу: записывает заголовки столбцов, строки и применяет переданные стили. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Что происходит «под капотом»?** +> - `true` указывает Aspose.Cells включить имена столбцов в первой строке. +> - `0, 0` — начальные индексы строки и столбца (верхний‑левый угол). +> - `columnStyles` сопоставляет каждый столбец с подготовленным стилем, обеспечивая применение правила **format excel cells date** к столбцу с датой. + +--- + +## Шаг 5 – Сохранение (экспорт) workbook в файл + +Наконец, мы **export data to excel**, сохранив workbook на диск. Путь можно изменить на любой удобный, либо сразу передать файл в HTTP‑ответ для веб‑API. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Профессиональный совет:** Используйте `workbook.Save(Stream, SaveFormat.Xlsx)`, когда нужно отправить файл по сети без записи на диск. + +--- + +## Полный рабочий пример (все шаги объединены) + +Ниже полностью готовая к запуску программа. Скопируйте её в консольное приложение, поправьте путь вывода, и через секунды получите красиво отформатированный Excel‑файл. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Ожидаемый результат:** +При открытии `StyledTable.xlsx` столбец A покажет даты вроде `03/19/2026` (в зависимости от вашей локали), а столбцы B и C отобразят названия продуктов и количества как обычный текст/числа. Дополнительные шаги форматирования не требуются — ваш процесс **create excel workbook** завершён. + +--- + +## Часто задаваемые вопросы и особые случаи + +### 1️⃣ Что если в моём DataTable больше трёх столбцов? +Добавьте больше объектов `Style` в массив `columnStyles` и настройте свойство `Number` для любого столбца, требующего особого формата (например, валюта, проценты). Метод `ImportDataTable` сопоставит каждый стиль по позиции. + +### 2️⃣ Можно ли задать пользовательский формат даты вместо встроенного 14? +Конечно. Замените `columnStyles[i].Number = 14;` на: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Как **export data to excel** в веб‑API без записи на диск? +Используйте `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Что если локаль пользователя ожидает иной разделитель дат? +Встроенный формат даты (ID 14) учитывает настройки локали workbook. Если нужен фиксированный формат независимо от локали, используйте свойство `Custom`, как показано выше. + +### 5️⃣ Работает ли это с .NET Core? +Да — Aspose.Cells поддерживает .NET Standard 2.0 и выше, поэтому тот же код работает на .NET 6, .NET 7 и любых совместимых рантаймах. + +--- + +## Лучшие практики (Pro Tips) + +- **Переиспользуйте стили**: Создавать стиль на каждый столбец дешево, но повторное использование одного и того же объекта для одинаковых столбцов экономит память. +- **Избегайте циклов по ячейкам**: `ImportDataTable` сильно оптимизирован; ручные циклы медленнее и более подвержены ошибкам. +- **Установите культуру workbook рано**, если нужны одинаковые разделители чисел/дат в разных окружениях: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Проверьте DataTable** перед импортом — null‑значения дат вызовут исключение при применении стиля даты. +- **Включите расчёт** если после импорта добавляете формулы: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Заключение + +Теперь у вас есть полный, сквозной рецепт для **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel** и **format excel cells date** — всего в паре десятков строк 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/row-and-column-management/_index.md b/cells/russian/net/row-and-column-management/_index.md index 792b98f09a..05adb130d3 100644 --- a/cells/russian/net/row-and-column-management/_index.md +++ b/cells/russian/net/row-and-column-management/_index.md @@ -66,8 +66,10 @@ Узнайте, как удалить столбец в файле Excel с помощью Aspose.Cells for .NET. Следуйте нашему подробному пошаговому руководству, чтобы оптимизировать изменения в файле Excel. ### [Удалить строку в Aspose.Cells .NET](./delete-row-aspose-cells/) Узнайте, как удалить строку в Excel с помощью Aspose.Cells для .NET. Это пошаговое руководство охватывает предварительные условия, импорт кода и подробное пошаговое руководство для бесперебойной обработки данных. +### [Загрузка Excel-файла C# – Как удалить строки и удалить конкретные строки](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Пошаговое руководство по загрузке Excel-файла в C# и удалению отдельных или выбранных строк. ### [Удаление нескольких строк в Aspose.Cells .NET](./delete-multiple-rows-aspose-cells/) -Узнайте, как удалить несколько строк в Excel с помощью Aspose.Cells для .NET. Это подробное пошаговое руководство охватывает предварительные условия, примеры кодирования и часто задаваемые вопросы для разработчиков. +Узнайте, как удалить несколько строк в Excel с помощью Aspose.Cells for .NET. Это подробное пошаговое руководство охватывает предварительные условия, примеры кодирования и часто задаваемые вопросы для разработчиков. ### [Вставить столбец в Aspose.Cells .NET](./insert-column-aspose-cells/) Узнайте, как вставить столбец в Excel с помощью Aspose.Cells для .NET. Следуйте нашему простому пошаговому руководству, чтобы легко добавить новый столбец. Идеально подходит для разработчиков .NET. ### [Вставить строку в Aspose.Cells .NET](./insert-row-aspose-cells/) diff --git a/cells/russian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/russian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..597462045c --- /dev/null +++ b/cells/russian/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-03-21 +description: Загрузите Excel‑файл в C# и удалите строки данных с помощью Aspose.Cells. + Узнайте, как удалять строки, удалять конкретные строки и освоить удаление строк + в Excel на C# за считанные минуты. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: ru +og_description: Загрузите Excel‑файл в C# и быстро удаляйте строки, удаляйте конкретные + строки и обрабатывайте удаление строк в Excel с помощью Aspose.Cells. Полное пошаговое + руководство. +og_title: Загрузка Excel‑файла в C# — удаление строк и удаление конкретных строк +tags: +- C# +- Excel +- Aspose.Cells +title: Загрузка Excel‑файла в C# – Как удалить строки и удалить конкретные строки +url: /ru/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Загрузка Excel файла C# – Как удалить строки и удалить определённые строки + +Когда‑нибудь вам нужно было **load Excel file C#** и затем избавиться от строк, которые вам не нужны? Возможно, вы очищаете дамп данных или у вас есть шаблон, где определённые строки должны исчезнуть перед тем, как вы отправите книгу клиенту. В любом случае проблема одна и та же: у вас есть файл `.xlsx` на диске, вы хотите открыть его в .NET, и вам нужно **delete rows** без нарушения скрытых таблиц или объектов списка. + +Дело в том, что Aspose.Cells делает это проще простого. В этом руководстве вы увидите полностью готовый к запуску пример, который точно показывает **how to delete rows**, как **remove specific rows**, и почему вам может быть важно **c# excel row deletion**. В конце у вас будет чистый `output.xlsx`, содержащий только нужные строки. + +## Что покрывает это руководство + +- Загрузка Excel workbook с диска с использованием Aspose.Cells. +- Удаление диапазона строк (например, строки 5‑10) с учётом заголовков ListObject. +- Сохранение изменённого workbook обратно в файловую систему. +- Распространённые подводные камни, такие как случайное удаление строк внутри таблицы, и советы по их обработке. +- Полный, исполняемый пример кода, который можно вставить в консольное приложение уже сегодня. + +> **Требования** +> • .NET 6+ (или .NET Framework 4.6+). +> • Aspose.Cells for .NET, установленный через NuGet (`Install-Package Aspose.Cells`). +> • Базовое знакомство с C# и концепциями Excel (worksheets, cells, tables). + +Если вы задаётесь вопросом **why you should use Aspose.Cells** вместо, скажем, `Microsoft.Office.Interop.Excel`, ответ — скорость, отсутствие необходимости в COM и возможность работать на серверах без установленного Office. Кроме того, API прост в использовании для задач удаления строк. + +--- + +## Шаг 1: Загрузка Excel Workbook в C# + +Прежде чем что‑либо удалять, вам нужно загрузить workbook в память. Класс `Workbook` представляет весь Excel файл. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Почему это важно:** +Загрузка файла создаёт объектный граф, отражающий структуру Excel — worksheets, cells, tables и т.д. Имея ссылку на `ws`, вы можете напрямую манипулировать строками, не беспокоясь о блокировках файлов или особенностях COM‑interop. + +--- + +## Шаг 2: Удаление строк, содержащих только данные + +Теперь, когда workbook находится в памяти, вы можете удалять строки. Метод `Cells.DeleteRows(startRow, totalRows)` удаляет непрерывный блок. В нашем примере мы удалим строки 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Как это работает:** +- `startRow` имеет нулевую базу, поэтому `5` фактически соответствует строке 6 в Excel. Корректируйте соответственно. +- Если лист содержит **ListObject** (таблица Excel), заголовок которой находится в строке 4, Aspose.Cells защитит заголовок и удалит только строки данных под ним. Эта встроенная защита предотвращает повреждение структурированных таблиц — распространённый крайний случай при **removing data rows**. + +> **Pro tip:** Если вам нужно удалить несмежные строки (например, строки 3, 7, 12), пройдитесь по обратному массиву индексов строк и вызовите `DeleteRows(rowIndex, 1)` для каждой. Удаление снизу вверх сохраняет оригинальные индексы оставшихся строк. + +--- + +## Шаг 3: Сохранение изменённого Workbook + +После того как ненужные строки удалены, вы просто записываете workbook обратно на диск. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +Метод `Save` автоматически определяет формат файла по расширению (`.xlsx` в данном случае). Если нужен другой формат — CSV, PDF и т.д. — просто измените расширение или передайте enum `SaveFormat`. + +### Ожидаемый результат + +Откройте `output.xlsx` в Excel, и вы увидите, что строки 5‑14 (исходные строки 5‑10) исчезли. Все остальные данные сдвигаются вверх соответственно, и любые формулы, ссылающиеся на удалённые строки, автоматически корректируются Aspose.Cells. + +--- + +## Часто задаваемые вопросы (FAQ) + +### Как удалить строки на основе условия (например, все строки, где столбец A пустой)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +Цикл проходит в обратном порядке, чтобы избежать смещения индексов. Этот шаблон отвечает на более общий вопрос **c# excel row deletion**, когда требуется условная логика. + +### Что если мой лист содержит несколько ListObjects? + +Aspose.Cells обрабатывает каждый ListObject независимо. Если заголовок любой таблицы будет затронут диапазоном удаления, API бросит `InvalidOperationException`. Чтобы обойти это, либо скорректируйте диапазон, либо временно очистите свойство `ShowTableStyleFirstColumn` у ListObject, выполните удаление, затем восстановите его. + +### Можно ли удалять строки без загрузки всего workbook в память? + +Да — Aspose.Cells предоставляет **streaming API** (`Workbook.LoadOptions`), которое читает данные кусками. Однако удаление строк по своей природе требует структуры листа, поэтому вам всё равно придётся загрузить целевой лист в память. Для огромных файлов (>500 MB) рассмотрите обработку пакетами или использование **cell‑by‑cell** API. + +## Полный, исполняемый пример + +Ниже приведена полная программа, которую вы можете скомпилировать и запустить как консольное приложение. Замените `YOUR_DIRECTORY` реальным путём к папке на вашем компьютере. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Запуск кода:** +1. Откройте терминал или Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Замените `Program.cs` на фрагмент выше. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Вы должны увидеть вывод в консоли, подтверждающий удаление и указывающий место сохранённого файла. + +## Распространённые подводные камни и как их избежать + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Случайное удаление заголовка ListObject** | `DeleteRows` не проверяет скрытые заголовки таблиц, когда диапазон их пересекает. | Убедитесь, что начальная строка **после** любого заголовка таблицы, либо используйте API `ListObject` для удаления строк внутри таблицы (`ListObject.DeleteRows`). | +| **Индексы строк смещены на один** | Aspose.Cells использует нулевую индексацию, тогда как пользователи Excel думают в 1‑based. | Не забудьте вычитать 1 из номера строки Excel при написании кода. | +| **Формулы ломаются после удаления** | Удаление строк может вызвать ошибки `#REF!`, если формулы ссылаются на удалённые строки. | Aspose.Cells автоматически обновляет большинство формул, но двойной проверкой проверьте любые внешние ссылки или именованные диапазоны. | +| **Снижение производительности на больших файлах** | Удаление большого количества строк вызывает внутреннюю переиндексацию. | Пакетные удаления (удалить большой диапазон один раз) вместо множества одиночных удалений. По возможности используйте `DeleteRows(start, count)`. + +## Следующие шаги и связанные темы + +- **Удалить определённые строки на основе значений ячеек:** Скомбинируйте условный цикл, показанный в FAQ, с `DeleteRows`. +- **Массовая вставка строк:** Используйте `InsertRows` для добавления строк‑заполнителей перед заполнением данными. +- **Работа с таблицами (ListObjects):** Изучите методы `ListObject` для операций над строками внутри структурированных таблиц. +- **Экспорт в CSV после удаления строк:** Вызовите `workbook.Save("output.csv", SaveFormat.Csv)`, чтобы получить чистый CSV без удалённых строк. + +## Заключение + +Мы прошли практический сценарий **load excel file c#**, продемонстрировали **how to delete rows**, и рассмотрели нюансы **remove specific rows** и **remove data rows** с использованием Aspose.Cells. Загрузив workbook, вызвав `DeleteRows` и сохранив результат, вы получаете надёжное **c# excel row deletion** без накладных расходов COM‑interop. + +Попробуйте это на реальном наборе данных — возможно, очистите отчёт о продажах или удалите тестовые строки из шаблона. Как только вы освоитесь, экспериментируйте с условными удалениями и операциями, учитывающими таблицы. API достаточно надёжен как для простых скриптов, так и для корпоративных пакетных процессоров. + +Удачной разработки, и не стесняйтесь оставить комментарий, если столкнётесь с проблемами! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/russian/net/worksheet-operations/_index.md index 1cd6e19f81..9dfee03f6f 100644 --- a/cells/russian/net/worksheet-operations/_index.md +++ b/cells/russian/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Узнайте, как обновлять историю журнала изменений в общих книгах с помощью Aspose.Cells для .NET. Упростите совместную работу и поддерживайте четкие записи документов. ### [Использовать свойство Sheet_SheetId OpenXml в рабочем листе](./utilize-sheet-sheetid-property/) Откройте для себя мощь Excel с Aspose.Cells для .NET. Научитесь эффективно управлять идентификаторами листов с помощью нашего пошагового руководства. +### [Как создать листы – Пошаговое руководство по динамической генерации Excel](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Узнайте, как программно создавать листы Excel динамически с помощью Aspose.Cells для .NET, следуя пошаговым инструкциям. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/russian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..0f5b920cc7 --- /dev/null +++ b/cells/russian/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,278 @@ +--- +category: general +date: 2026-03-21 +description: Узнайте, как создавать листы, генерировать Excel‑файлы с динамическими + именами листов и сохранять книгу в формате XLSX с использованием Aspose.Cells в + C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: ru +og_description: Как создавать листы в Excel с помощью Aspose.Cells, генерировать листы + Excel с динамическими именами листов и сохранять книгу в формате XLSX. +og_title: Как создать рабочие листы – Полный учебник по C# +tags: +- Aspose.Cells +- C# +- Excel automation +title: Как создавать листы – Пошаговое руководство по динамической генерации Excel +url: /ru/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как создавать листы – Полный C#‑урок + +Когда‑нибудь задумывались **как создавать листы** «на лету», не открывая каждый раз Excel вручную? Вы не одиноки. Многие разработчики сталкиваются с проблемой, когда нужно **генерировать Excel‑файлы** из источников данных и желают, чтобы каждый лист имел осмысленное, динамическое имя. Хорошие новости? С Aspose.Cells вы можете автоматизировать весь процесс, **обработать мастер‑лист**, а затем **сохранить книгу как XLSX** всего в несколько строк кода. + +В этом уроке мы пройдём реальный сценарий: начиная с пустой книги, вставим токен smart‑marker, который подскажет Aspose, какие листы‑детали создать, настроим шаблон именования, чтобы каждый лист получил уникальное имя, и, наконец, сохраним результат на диск. К концу вы получите готовую к запуску программу на C#, которая создаёт листы, генерирует Excel‑файлы с динамическими именами листов и сохраняет книгу как XLSX — всё без взаимодействия с UI. + +> **Требования** +> • .NET 6+ (или .NET Framework 4.6+). +> • Aspose.Cells for .NET (бесплатная trial‑версия подходит для этой демонстрации). +> • Базовые знания C# — никаких сложных трюков с Excel‑interop не требуется. + +--- + +## Обзор того, что мы построим + +- **Мастер‑лист** с заполнителем smart‑marker (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor**, который читает источник данных (например, `DataTable`) и создаёт новый лист для каждого отдела. +- **Динамические имена листов** по шаблону `Dept_{0}`, где `{0}` заменяется именем отдела. +- **Итоговый файл XLSX**, сохраняемый в указанную папку. + +Вот и всё. Просто, но достаточно мощно для счетов‑фактур, отчётов или любого многовкладочного Excel‑вывода. + +--- + +![Diagram showing how a master sheet is processed to generate multiple dynamic worksheets](/images/how-to-create-worksheets-diagram.png "How to create worksheets diagram") + +*Alt text: иллюстрация того, как создавать листы с динамическими именами листов с помощью Aspose.Cells.* + +--- + +## Шаг 1: Настройка проекта и добавление Aspose.Cells + +### Почему это важно +Прежде чем любой код выполнится, компилятору нужно знать, где находятся классы `Workbook`, `Worksheet` и `SmartMarkerProcessor`. Добавление пакета NuGet гарантирует, что у вас будет последняя, полностью функциональная API. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Совет:** Если вы используете Visual Studio, щёлкните правой кнопкой мыши по проекту → *Manage NuGet Packages* → найдите *Aspose.Cells* и установите последнюю стабильную версию. + +--- + +## Шаг 2: Создание новой книги и мастер‑листа + +### Что мы делаем +Мы начинаем с чистой книги, затем получаем первый лист (индекс 0). Этот лист будет выступать в роли **мастер‑листа**, содержащего токен smart‑marker. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +Класс `Workbook` — контейнер для всех листов. По умолчанию он создаёт один лист под названием *Sheet1*; переименовывая его в «Master», вы облегчаете навигацию в конечном файле. + +--- + +## Шаг 3: Вставка токена Smart‑Marker для имён листов‑деталей + +### Зачем нужен smart‑marker? +Smart‑markers позволяют Aspose.Cells заменять заполнители данными во время выполнения. Токен `«DetailSheetNewName:Dept»` говорит процессору: *«Когда увидишь это, создай новый лист‑деталь для каждой строки в колонке `Dept`». * + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Токен можно разместить где угодно; мы выбрали **A1** для наглядности. Когда процессор запустится, он заменит токен реальным именем отдела и сгенерирует соответствующий лист. + +--- + +## Шаг 4: Подготовка источника данных + +### Как данные управляют созданием листов +Aspose.Cells работает с любым источником данных `IEnumerable`. Для этой демонстрации мы используем `DataTable` с единственной колонкой `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Что если у вас больше колонок?** +> Процессор игнорирует лишние колонки, если вы не ссылаетесь на них в дополнительных smart‑markers. Это делает генерацию листов лёгкой. + +--- + +## Шаг 5: Настройка SmartMarkerProcessor и шаблона именования + +### Динамические имена листов в действии +Мы хотим, чтобы каждый новый лист назывался `Dept_Finance`, `Dept_HR` и т.д. Параметр `DetailSheetNewName` позволяет задать шаблон, где `{0}` подставляется реальное имя отдела. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Если отдел встречается дважды, Aspose автоматически добавит числовой суффикс (например, `Dept_Finance_1`), чтобы избежать дублирования имён листов. + +--- + +## Шаг 6: Обработка мастер‑листа для генерации листов‑деталей + +### Ядро **process master sheet** +Вызов `Process` делает всю тяжёлую работу: сканирует мастер‑лист в поисках smart‑markers, создаёт новые листы, копирует макет мастер‑листа и заполняет каждый данными строки. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +После этого вызова в книге будет один мастер‑лист и четыре листа‑детали — каждый назван согласно нашему шаблону и заполнен именем отдела в ячейке A1. + +--- + +## Шаг 7: Сохранение книги как XLSX + +### Финальный шаг — **save workbook as XLSX** +Теперь, когда листы созданы, сохраняем файл на диск. Вы можете указать любой путь, но убедитесь, что папка существует. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Открывая `DetailSheets.xlsx`, вы увидите: + +| Имя листа | Ячейка A1 (Содержание) | +|-----------|------------------------| +| Master | «DetailSheetNewName:Dept» (без изменений) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Особый случай:** Если целевая папка не существует, `Save` бросит `DirectoryNotFoundException`. Оберните вызов в `try‑catch` или создайте папку заранее. + +--- + +## Полный рабочий пример + +Собрав всё вместе, получаем полную программу, которую можно скопировать в консольное приложение: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Запустите программу, откройте полученный файл — и вы увидите точно такой же макет, как описано выше. Никакого ручного копирования, без COM‑interop — чистый C#‑код, который **генерирует Excel‑файлы** с **динамическими именами листов**. + +--- + +## Часто задаваемые вопросы и подводные камни + +| Вопрос | Ответ | +|--------|-------| +| *Можно ли использовать DataSet с несколькими таблицами?* | Да. Передайте нужную таблицу в `Process` или используйте словарь таблиц. | +| *Что если нужно более одного smart‑marker на мастер‑листе?* | Добавьте дополнительные токены, например `«DetailSheetNewName:Region»`, и при необходимости настройте отдельный шаблон именования. | +| *Остаётся ли мастер‑лист в конечном файле?* | По умолчанию — да. Если он не нужен, вызовите `workbook.Worksheets.RemoveAt(0)` после обработки. | +| *Как Aspose работает с очень большими наборами данных?* | Он эффективно стримит данные, но при необходимости можно увеличить `MemorySetting`, если возникнут ограничения памяти. | +| *Можно ли экспортировать в CSV вместо XLSX?* | Конечно — используйте `workbook.Save("file.csv", SaveFormat.Csv)`. Логика создания листов остаётся той же. | + +--- + +## Следующие шаги + +Теперь, когда вы знаете **как динамически создавать листы**, можно изучить: + +- **Сохранение книги как XLSX** с паролем (`workbook.Protect("pwd")`). +- **Генерацию Excel‑файлов** из JSON или XML с помощью `JsonDataSource` или `XmlDataSource`. +- **Применение стилей** к каждому созданному листу (шрифты, цвета) через объекты `Style`. +- **Объединение ячеек** или автоматическое вставление формул для сводных отчётов. + +Все эти расширения опираются на тот же концепт **process master sheet**, поэтому переход будет плавным. + +--- + +## Заключение + +Мы прошли весь конвейер: от инициализации книги, вставки smart‑marker, настройки **динамических имён листов**, обработки мастер‑листа для **генерации Excel‑листов** и, наконец, **сохранения книги как XLSX**. Пример полностью готов, исполняем и демонстрирует лучшие практики как по производительности, так и по поддерживаемости. + +Попробуйте, измените шаблон имен, подайте реальные бизнес‑данные и наблюдайте, как ваша автоматизация 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/calculation-engine/_index.md b/cells/spanish/net/calculation-engine/_index.md index eca894da72..7a11f0a5db 100644 --- a/cells/spanish/net/calculation-engine/_index.md +++ b/cells/spanish/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ Aprenda a crear e integrar motores de cálculo personalizados en sus aplicacione ### [Optimice el tiempo de cálculo de Excel con opciones recursivas en Aspose.Cells para .NET](./optimize-calculation-time-recursive-aspose-cells-net) Aprenda a optimizar los tiempos de cálculo de Excel usando opciones recursivas en Aspose.Cells para .NET. Esta guía abarca la configuración, consejos de rendimiento y aplicaciones prácticas. +### [Cómo calcular un libro de trabajo en C# – Guía de ordenación y fórmulas](./how-to-calculate-workbook-in-c-sort-formula-guide/) +Aprenda a calcular libros de Excel en C#, incluyendo técnicas de ordenación y uso de fórmulas avanzadas con Aspose.Cells. ## Beneficios diff --git a/cells/spanish/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/spanish/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..a43201491a --- /dev/null +++ b/cells/spanish/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Cómo calcular un libro de trabajo en C# con Aspose.Cells – aprende a + crear un libro de Excel, rellenar celdas, calcular fórmulas y usar la función de + ordenación. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: es +og_description: Cómo calcular un libro de trabajo en C# rápidamente. Este tutorial + muestra cómo crear un libro de Excel, rellenar celdas de Excel, calcular fórmulas + de Excel y usar la función de ordenación. +og_title: Cómo calcular un libro de trabajo en C# – Guía completa de ordenación +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Cómo calcular un libro de trabajo en C# – Guía de ordenación y fórmulas +url: /es/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo calcular un libro de trabajo en C# – Guía de Ordenación y Fórmulas + +¿Alguna vez te has preguntado **cómo calcular valores de un libro de trabajo** sobre la marcha sin abrir Excel? No estás solo. En muchos escenarios de automatización necesitas crear un archivo Excel, introducir algunos números, ordenarlos y extraer los resultados de vuelta a tu aplicación .NET, todo de forma programática. + +En esta guía recorreremos exactamente eso: **crearemos un libro de trabajo Excel**, **poblaremos celdas Excel**, adjuntaremos una fórmula **SORT**, y finalmente **calcularemos fórmulas Excel** para que puedas leer la matriz ordenada directamente desde C#. Al final tendrás un fragmento ejecutable que puedes insertar en cualquier proyecto que haga referencia a Aspose.Cells (o una biblioteca similar). + +## Requisitos previos + +- .NET 6+ (el código también funciona en .NET Framework 4.7.2) +- Aspose.Cells for .NET (paquete NuGet de prueba gratuita `Aspose.Cells`) +- Un conocimiento básico de la sintaxis de C# +- No es necesario tener una copia instalada de Microsoft Excel; la biblioteca realiza el trabajo pesado por ti + +Si te sientes cómodo con eso, vamos a sumergirnos. + +## Cómo calcular un libro de trabajo – Inicializando el libro de trabajo + +Lo primero que debes hacer es crear un nuevo objeto workbook. Piensa en ello como abrir un archivo Excel completamente nuevo y vacío. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Por qué es importante:** La clase `Workbook` es el punto de entrada para cada operación; sin ella no puedes añadir hojas, celdas o fórmulas. Inicializarla correctamente garantiza que trabajas con una hoja en blanco. + +## Crear un libro de trabajo Excel y acceder a la hoja de cálculo + +Ahora que el workbook existe, debemos asegurarnos de que apuntamos a la hoja de cálculo correcta. La mayoría de las bibliotecas usan por defecto una sola hoja llamada “Sheet1”, pero puedes renombrarla o añadir más si lo deseas. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Consejo profesional:** Nombrar las hojas temprano ayuda cuando más adelante las referencias en fórmulas (`'Data'!A1:A10`). También facilita la depuración. + +## Población de celdas Excel con datos + +A continuación, **poblaremos celdas Excel** con los números que queremos ordenar. El ejemplo usa solo dos celdas, pero puedes ampliar el rango a decenas de filas. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Por qué usamos `PutValue`** – Detecta automáticamente el tipo de dato (int, double, string, etc.) y lo almacena de forma adecuada, ahorrándote la conversión manual de tipos. + +## Aplicar la función SORT mediante fórmula + +La función `SORT` de Excel hace exactamente lo que su nombre sugiere: devuelve una matriz ordenada sin alterar los datos originales. Insertaremos esa fórmula en la celda `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Nota de caso límite:** `SORT` devuelve un resultado **array**. En versiones antiguas de Excel (pre‑Office 365) esto requeriría Ctrl+Shift+Enter. Con Aspose.Cells obtienes la matriz automáticamente al calcular el workbook. + +## Calcular fórmulas Excel para obtener resultados + +En este punto el workbook solo sabe *qué* calcular, no *que* debe hacerlo. Llamar a `CalculateFormula` activa el motor para evaluar cada fórmula, incluida nuestra `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Salida esperada en consola** + +``` +Sorted array: {2, 5} +``` + +> **¿Qué acaba de suceder?** +> 1. El workbook creó un motor de cálculo interno. +> 2. La fórmula `SORT` examinó el rango `A1:A2`. +> 3. El motor generó una nueva matriz, que recuperamos de `B1`. + +Si cambias los valores en `A1` y `A2` (o amplías el rango) y vuelves a ejecutar `CalculateFormula`, la salida se actualiza automáticamente—no se necesita código adicional. + +## Usar la función Sort en conjuntos de datos más grandes (Opcional) + +La mayoría de los escenarios reales involucran más de dos filas. Aquí tienes un ajuste rápido que funciona para cualquier número de entradas: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Por qué podrías necesitar esto:** Ordenar rangos grandes te permite generar tablas de clasificación, ordenar datos financieros por rango, o simplemente limpiar CSVs importados antes de un procesamiento adicional. + +## Errores comunes y cómo evitarlos + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **`#VALUE!` en B1** | La fórmula `SORT` hace referencia a un rango vacío o no numérico. | Asegúrate de que cada celda del rango origen contenga un número o texto que pueda ordenarse. | +| **Truncamiento de array** | Intentar leer un array desde una sola celda sin hacer casting. | Convierte `worksheet.Cells["B1"].Value` a `object[]` (o al tipo apropiado). | +| **Ralentización del rendimiento** | Recalcular libros de trabajo enormes después de cada pequeño cambio. | Llama a `CalculateFormula` solo después de haber terminado de modificar la hoja, o usa `CalculateFormulaOptions` para limitar el alcance. | + +## Ejemplo completo funcional (listo para copiar y pegar) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Captura de resultado** +> ![cómo calcular el resultado del libro de trabajo en Excel](https://example.com/images/sorted-result.png "cómo calcular el resultado del libro de trabajo en Excel") + +La imagen anterior muestra el libro de trabajo después del cálculo—la celda **B1** contiene la matriz ordenada `{2, 5}`. + +## Conclusión + +Acabamos de cubrir **cómo calcular valores de un libro de trabajo** programáticamente: crear un libro de trabajo Excel, poblar celdas Excel, incrustar una fórmula `SORT`, y finalmente **calcular fórmulas Excel** para extraer los datos ordenados. El enfoque funciona para ejemplos pequeños de dos celdas y se escala sin problemas a conjuntos de datos más grandes. + +¿Qué sigue? Intenta combinar esto con otras funciones como `FILTER`, `UNIQUE`, o incluso lógica personalizada al estilo VBA mediante `WorksheetFunction`. También puedes guardar el libro de trabajo en disco (`workbook.Save("Sorted.xlsx")`) y abrirlo en Excel para una verificación visual. + +Siéntete libre de experimentar—cambiar los números, modificar el rango, o encadenar múltiples fórmulas. La automatización se trata de iterar rápidamente, y ahora tienes una base sólida sobre la cual construir. + +¡Feliz codificación, y que tus libros de trabajo siempre calculen exactamente como esperas! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/spanish/net/conversion-and-rendering/_index.md index 1b0a8dfcf8..f448539abf 100644 --- a/cells/spanish/net/conversion-and-rendering/_index.md +++ b/cells/spanish/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Aprenda a convertir Excel a PDF de forma avanzada y sin problemas con Aspose.Cel Aprenda a convertir una hoja de cálculo de Excel a SVG con Aspose.Cells para .NET con esta guía paso a paso. Ideal para desarrolladores .NET que buscan convertir Excel a SVG. ### [Conversión de Excel a MHTML en .NET](./converting-excel-to-mhtml/) Aprenda a convertir de manera eficiente archivos de Excel al formato MHTML en .NET con Aspose.Cells, mejorando sus capacidades de generación de informes y de intercambio de datos. +### [Crear imagen desde Excel – Exportar tabla dinámica a PNG en C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Aprenda a generar una imagen PNG de una tabla dinámica de Excel usando Aspose.Cells en C# paso a paso. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/spanish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..56db57bded --- /dev/null +++ b/cells/spanish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Crear imagen a partir de Excel en C# usando Aspose.Cells. Aprende cómo + convertir Excel a imagen, exportar tablas dinámicas y guardar la imagen como PNG + con un ejemplo completo y ejecutable. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: es +og_description: Crea una imagen a partir de Excel en C# rápidamente. Esta guía muestra + cómo convertir Excel a imagen, exportar una tabla dinámica y guardar la imagen como + PNG con código claro. +og_title: Crear imagen desde Excel – Exportar tabla dinámica a PNG en C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Crear imagen desde Excel – Exportar tabla dinámica a PNG en C# +url: /es/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear imagen desde Excel – Exportar tabla dinámica a PNG en C# + +¿Alguna vez necesitaste **crear imagen desde Excel** pero no estabas seguro de qué API usar? No estás solo—muchos desarrolladores se encuentran con ese obstáculo cuando intentan convertir una tabla dinámica en vivo en un PNG compartible. + +En este tutorial recorreremos una solución completa, lista‑para‑ejecutar, que **convierte Excel a imagen**, muestra **cómo exportar la tabla dinámica** y explica **cómo guardar la imagen** como un archivo PNG. Al final tendrás un único método que realiza todo el trabajo, además de consejos para casos límite que podrías encontrar. + +## Lo que necesitarás + +- **Aspose.Cells for .NET** (el paquete NuGet `Aspose.Cells`). Es una biblioteca comercial pero ofrece un modo de evaluación gratuito—perfecto para pruebas. +- .NET 6+ (o .NET Framework 4.6+). +- Un libro de Excel sencillo (`Pivot.xlsx`) que contenga al menos una tabla dinámica. +- Cualquier IDE que prefieras—Visual Studio, Rider, o incluso VS Code funciona. + +Eso es todo. Sin DLLs adicionales, sin interop COM, y sin trucos complicados de automatización de Excel. + +Ahora, sumerjámonos en el código. + +## Paso 1: Cargar el libro – Crear imagen desde Excel + +Lo primero que hacemos es abrir el archivo Excel que contiene la tabla dinámica. Este paso es crucial porque el renderizador trabaja contra un objeto `Workbook` en memoria. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Por qué es importante:* Cargar el libro nos da acceso a la **tabla dinámica** y a cualquier formato que será respetado cuando más tarde **convirtamos Excel a imagen**. Si omites esto, el renderizador no tendrá nada con qué trabajar. + +## Paso 2: Configurar opciones de exportación – Convertir Excel a imagen + +A continuación le indicamos a Aspose cómo queremos que se vea la imagen final. La clase `ImageOrPrintOptions` nos permite elegir PNG, establecer DPI e incluso controlar el color de fondo. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Por qué es importante:* Al establecer un DPI alto aseguramos que la **exportación de Excel a PNG** se vea nítida, incluso cuando la tabla dinámica contiene muchas filas. Puedes reducir el DPI si el tamaño del archivo es una preocupación. + +## Paso 3: Renderizar la hoja – Cómo exportar la tabla dinámica + +Ahora llega el corazón del proceso: convertir la hoja de cálculo (con su tabla dinámica) en una imagen. La clase `WorksheetRender` realiza el trabajo pesado. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Por qué es importante:* Aquí es donde **cómo exportar la tabla dinámica** a un formato visual. El renderizador respeta todo el formato de la tabla dinámica, los segmentadores y los estilos condicionales, por lo que el PNG se ve exactamente como lo ves en Excel. + +## Paso 4: Unir todo – Cómo guardar la imagen + +Finalmente, exponemos un único método público que une todas las piezas. Este es el método que llamarás desde tu aplicación, servicio o herramienta de consola. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Ejemplo completo funcional + +Crea un nuevo proyecto de consola, agrega el paquete NuGet `Aspose.Cells`, y luego coloca el siguiente `Program.cs` dentro: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Resultado esperado:** Después de ejecutar el programa, `PivotImage.png` aparecerá en la carpeta que especificaste, mostrando una captura de pantalla pixel‑perfecta de la tabla dinámica. + +![Crear imagen desde Excel ejemplo](https://example.com/placeholder.png "Crear imagen desde Excel ejemplo") + +*Texto alternativo:* ejemplo de crear imagen desde Excel que muestra la tabla dinámica exportada como PNG. + +## Preguntas frecuentes y casos límite + +### ¿Qué pasa si mi libro tiene varias hojas de cálculo? + +El asistente actualmente toma `Worksheets[0]`. Para apuntar a una hoja específica, pasa el nombre de la hoja: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### El PNG está borroso—¿cómo lo arreglo? + +Aumenta `HorizontalResolution` y `VerticalResolution` en `GetImageOptions`. Valores de 300–600 DPI suelen producir resultados nítidos. Recuerda, un DPI más alto implica un tamaño de archivo mayor. + +### Mi tabla dinámica abarca más de una página—¿puedo exportar todas las páginas? + +Sí. Recorre `renderer.PageCount` y llama a `ToImage(pageIndex, ...)` para cada página, o establece `OnePagePerSheet = false` para obtener imágenes separadas por página. + +### Solo necesito una parte de la hoja (p. ej., un rango específico)? + +Usa `ImageOrPrintOptions` para establecer `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +De esa manera **conviertes Excel a imagen** solo para el área que te interesa. + +### ¿Esto funciona con archivos .xls (Excel 97‑2003)? + +Absolutamente. Aspose.Cells abstrae el formato de archivo, por lo que puedes proporcionar `.xls`, `.xlsx`, `.xlsm` o incluso `.ods` y aún así **exportar excel a png**. + +## Consejos profesionales y advertencias + +- **La licencia es importante**: En modo de evaluación Aspose agrega una marca de agua. Implementa una licencia adecuada para producción. +- **Uso de memoria**: Renderizar libros grandes puede consumir mucha memoria. Libera el objeto `Workbook` rápidamente o envuélvelo en un bloque `using`. +- **Seguridad en hilos**: `Workbook` no es seguro para hilos. Crea una nueva instancia por solicitud si estás en un servicio web. +- **Flexibilidad de formato de imagen**: Si necesitas JPEG o BMP, simplemente cambia `ImageFormat` en `GetImageOptions`. + +## Conclusión + +Ahora tienes una receta sólida, de extremo a extremo, para **crear imagen desde Excel**, específicamente para **exportar la tabla dinámica** como un PNG de alta calidad. El fragmento anterior muestra el código completo y ejecutable, explica **cómo guardar la imagen**, y cubre variaciones como múltiples hojas o áreas de impresión personalizadas. + +¿Próximos pasos? Prueba encadenar este exportador con un servicio de correo electrónico para enviar el PNG automáticamente, o experimenta con `ImageOrPrintOptions` para generar PDFs en lugar de PNGs. El mismo patrón funciona para tareas de **convertir excel a imagen** en muchos formatos. + +¿Tienes más preguntas? Deja un comentario, ¡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/converting-excel-files-to-other-formats/_index.md b/cells/spanish/net/converting-excel-files-to-other-formats/_index.md index d683458bb0..67fff7e932 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 @@ -46,6 +46,8 @@ Aspose.Cells para .NET simplifica las transformaciones de documentos, lo que per Aprenda a convertir CSV a JSON en .NET con Aspose.Cells. Guía paso a paso para la transformación de datos con ejemplos de código fáciles de seguir. ### [Conversión de archivos de Excel a DOCX mediante programación en .NET](./converting-excel-file-to-docx/) Aprenda a convertir archivos de Excel a DOCX mediante programación usando Aspose.Cells para .NET en esta guía paso a paso. Ideal para generar informes y compartir datos. +### [Guardar Excel como DOCX con C# – Guía completa paso a paso](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Aprenda a guardar un libro de Excel como archivo DOCX usando C# y Aspose.Cells, con ejemplos detallados paso a paso. ### [Convertir un archivo de Excel a HTML con información sobre herramientas en .NET](./converting-excel-file-to-html-with-tooltip/) Convierte Excel a HTML con información sobre herramientas usando Aspose.Cells para .NET en unos sencillos pasos. Mejora tus aplicaciones web con datos interactivos de Excel sin esfuerzo. ### [Conversión de archivos de Excel a Markdown mediante programación en .NET](./converting-excel-file-to-markdown/) diff --git a/cells/spanish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/spanish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..dee7e5e49b --- /dev/null +++ b/cells/spanish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Guardar Excel como Docx en C# — aprende cómo convertir Excel a Word, + incrustar gráficos y cargar un libro de Excel en C# usando Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: es +og_description: Guardar Excel como Docx en C# explicado en la primera frase. Sigue + este tutorial para convertir Excel a Word, incrustar gráficos y cargar el libro + de Excel en C#. +og_title: Guardar Excel como Docx con C# – Guía completa +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Guardar Excel como Docx con C# – Guía completa paso a paso +url: /es/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Guardar Excel como Docx con C# – Guía completa paso a paso + +¿Alguna vez necesitaste **guardar Excel como Docx** pero no sabías por dónde empezar? No estás solo: muchos desarrolladores se topan con el mismo obstáculo cuando quieren *convertir Excel a Word* manteniendo los gráficos intactos. En este tutorial recorreremos el código exacto que necesitas, explicaremos por qué cada línea es importante y te mostraremos cómo incrustar gráficos de Excel sin perder calidad. + +También añadiremos algunos consejos extra sobre **load Excel workbook C#**, de modo que al final te sientas cómodo convirtiendo Excel a Docx en cualquier proyecto .NET. Sin referencias vagas, solo un ejemplo concreto y ejecutable que puedes copiar‑pegar ahora mismo. + +--- + +## Qué cubre esta guía + +- Cargar un archivo `.xlsx` existente con Aspose.Cells (o cualquier biblioteca compatible). +- Manipulación opcional de hojas de cálculo o gráficos antes de la conversión. +- Guardar el libro como archivo `.docx` preservando los gráficos incrustados. +- Verificar el resultado y manejar casos comunes como libros muy grandes o tipos de gráfico no compatibles. + +Si te preguntas **por qué querrías convertir Excel a Docx**, piensa en los informes que necesitas enviar a partes interesadas no técnicas: los documentos Word son universalmente aceptados y conservan la fidelidad visual de tus gráficos. Vamos al detalle. + +--- + +## Prerrequisitos – Load Excel Workbook C# + +Antes de escribir código, asegúrate de contar con lo siguiente: + +| Requisito | Razón | +|-----------|-------| +| **.NET 6.0 o posterior** | Entorno moderno, mejor rendimiento y soporte total para Aspose.Cells. | +| **Aspose.Cells for .NET** (paquete NuGet `Aspose.Cells`) | Proporciona la clase `Workbook` usada para leer Excel y exportar a DOCX. | +| **Visual Studio 2022** (o cualquier IDE que prefieras) | Útil para depurar y contar con IntelliSense. | +| **Un archivo Excel con gráficos** (`AdvancedCharts.xlsx`) | Para ver la función *embed excel charts* en acción. | + +Puedes instalar la biblioteca mediante la Consola del Administrador de paquetes: + +```powershell +Install-Package Aspose.Cells +``` + +> **Consejo profesional:** Si trabajas en una canalización CI/CD, agrega el paquete a tu `*.csproj` para que las restauraciones se realicen automáticamente. + +--- + +## Paso 1 – Cargar el libro de Excel (Aquí comienza Save Excel as Docx) + +Lo primero que hacemos es cargar el libro fuente. Aquí es donde entra en juego la frase **load excel workbook c#**. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Por qué es importante:** Cargar el archivo te da acceso a cada hoja, gráfico y estilo. Sin este paso no hay nada que convertir y la API no puede preservar tus gráficos incrustados. + +--- + +## Paso 2 – (Opcional) Ajustar el libro antes de la conversión + +Puedes renombrar una hoja, ocultar una columna o incluso cambiar el título de un gráfico. Este paso es opcional pero muestra cuán flexible puede ser la conversión. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Caso límite:** Algunos tipos de gráfico antiguos (p. ej., Radar) pueden no renderizarse perfectamente en Word. Prueba tus gráficos específicos después de la conversión. + +--- + +## Paso 3 – Guardar el libro como documento Word (Acción central “Save Excel as Docx”) + +Ahora llega el momento de la verdad: realmente **guardamos Excel como Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Al ejecutarse, Aspose.Cells escribe cada hoja como una tabla dentro del archivo Word e incrusta cada gráfico como una imagen de alta resolución. El resultado es un `.docx` totalmente editable que se ve idéntico a la vista original de Excel. + +> **¿Por qué elegir DOCX en lugar de PDF?** DOCX permite a los destinatarios editar texto o reemplazar gráficos más tarde, mientras que PDF es una captura estática. + +--- + +## Paso 4 – Verificar el resultado y solucionar problemas comunes + +Una vez finalizada la conversión, abre `ChartsInWord.docx` en Microsoft Word: + +1. **Comprueba que cada hoja aparezca como una sección separada** – deberías ver tablas que replican los datos de Excel. +2. **Confirma que los gráficos estén incrustados** – deben ser imágenes seleccionables, no marcadores de posición rotos. +3. **Si falta un gráfico**, verifica que el tipo de gráfico sea compatible con Aspose.Cells (consulta la [lista oficial de compatibilidad](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Consejo profesional:** Para libros grandes, considera aumentar la `MemorySetting` de Aspose.Cells para evitar `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Ejemplo completo (Listo para copiar‑pegar) + +A continuación tienes el programa completo, listo para compilar. Sustituye `YOUR_DIRECTORY` por la ruta real en tu máquina. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Resultado esperado:** Un documento Word (`ChartsInWord.docx`) que contiene todas las hojas como tablas y cada gráfico como una imagen incrustada de alta resolución. Ábrelo en Word y verás el mismo diseño visual que tenías en Excel. + +--- + +## Preguntas frecuentes (FAQ) + +**P: ¿Puedo convertir varios archivos Excel en un bucle?** +R: Claro. Envuelve la lógica de conversión en un bucle `foreach (var file in Directory.GetFiles(...))` y reutiliza el mismo patrón de instancia `Workbook`. + +**P: ¿Esto también funciona con archivos `.xls`?** +R: Sí—Aspose.Cells admite formatos heredados. Simplemente cambia la extensión de origen; la misma llamada `SaveFormat.Docx` se aplica. + +**P: ¿Qué pasa si necesito conservar fórmulas al convertir?** +R: Word no soporta fórmulas de Excel de forma nativa. La conversión aplana las fórmulas a sus valores calculados. Si necesitas cálculos en vivo, considera incrustar el libro como objeto OLE. + +**P: ¿Hay forma de controlar la resolución de imagen de los gráficos?** +R: Usa `ImageOrPrintOptions` antes de guardar: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Incrustar gráficos de Excel directamente en Word (Más allá de Save Excel as Docx) + +Si prefieres que el gráfico siga siendo editable en Word, puedes incrustar toda la hoja de Excel como objeto OLE: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Esta técnica *embed excel charts* como objetos vivos, permitiendo a los usuarios finales hacer doble clic para editarlos en Excel directamente desde Word. Es una alternativa útil cuando necesitas interactividad. + +--- + +## Conclusión + +Ahora dispones de una solución sólida de extremo a extremo para **guardar Excel como docx** usando C#. El tutorial cubrió la carga del libro, ajustes opcionales, la operación de guardado, pasos de verificación y una breve mirada a la incrustación de gráficos para escenarios editables. Siguiendo el código anterior puedes **convertir Excel a Word**, preservar cada gráfico y manejar archivos grandes sin problemas. + +¿Listo para el próximo reto? Prueba automatizar una conversión por lotes, integrar esta lógica en una API ASP.NET Core o explorar **convert Excel to docx** para paneles de varias hojas. Las habilidades que acabas de adquirir son la base para cualquier proyecto de automatización de documentos. + +¿Tienes preguntas o un libro complicado que se niega a convertir? Deja un comentario y lo resolveremos juntos. ¡Feliz codificación! + +![Diagrama que muestra el flujo desde el libro de Excel al archivo DOCX de Word – ilustración del proceso save excel as docx](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..af0cedf146 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 – Agregar propiedad personalizada en C#](./how-to-save-xlsb-add-custom-property-in-c/) +Aprenda a guardar archivos XLSB y añadir una propiedad personalizada usando Aspose.Cells para .NET en C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/spanish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..a2e697be69 --- /dev/null +++ b/cells/spanish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: Aprende cómo guardar archivos xlsb en C# mientras añades una propiedad + personalizada como ProjectId. Esta guía muestra cómo crear un libro de Excel, agregar + una propiedad personalizada y verificarla. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: es +og_description: Descubre cómo guardar archivos xlsb y añadir una propiedad personalizada + como ProjectId usando C#. Guía paso a paso con código completo. +og_title: Cómo guardar XLSB – Añadir propiedad personalizada en C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Cómo guardar XLSB – Añadir propiedad personalizada en C# +url: /es/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo guardar XLSB – Añadir propiedad personalizada en C# + +¿Alguna vez te has preguntado **cómo guardar archivos xlsb** mientras insertas un fragmento de metadatos? Tal vez estés construyendo un motor de informes que necesita un ProjectId oculto, o simplemente quieras etiquetar hojas de cálculo para procesamiento posterior. **Cómo guardar xlsb** no es ciencia espacial, pero combinarlo con una propiedad personalizada añade un pequeño giro que muchos desarrolladores pasan por alto. + +En este tutorial recorreremos la creación de un libro de Excel, la adición de una propiedad personalizada (sí, *add custom property*), la persistencia del archivo como un libro binario **XLSB**, y finalmente su carga para comprobar que la propiedad se mantuvo. En el camino también veremos **how to add custom property** valores como un ProjectId, de modo que termines con un patrón reutilizable para futuros proyectos. + +> **Consejo profesional:** Si ya estás usando la biblioteca Aspose.Cells (el código a continuación lo hace), obtienes soporte nativo para propiedades personalizadas sin dolores de cabeza de interop COM. + +--- + +## Requisitos previos + +- .NET 6+ (o .NET Framework 4.6+). +- Aspose.Cells para .NET – instalar vía NuGet: `Install-Package Aspose.Cells`. +- Conocimientos básicos de C# – nada sofisticado, solo unas cuantas sentencias `using`. + +Eso es todo. Sin instalación de Office, sin interop, solo código administrado puro. + +--- + +## Paso 1: Cómo guardar XLSB – Crear libro de Excel + +Lo primero que necesitas hacer es crear un objeto de libro nuevo. Piensa en ello como abrir un archivo de Excel en blanco que vive solo en memoria hasta que decidas escribirlo en disco. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +¿Por qué comenzar con un libro? Porque **create excel workbook** es la base para cualquier manipulación posterior—ya sea que luego insertes fórmulas, gráficos o propiedades personalizadas. La clase `Workbook` abstrae todo el archivo, mientras que `Worksheets` te da acceso a las pestañas individuales. + +--- + +## Paso 2: Añadir propiedad personalizada a la hoja + +Ahora viene la parte divertida—**add custom property**. En Aspose.Cells puedes adjuntar una propiedad directamente a una hoja de cálculo (o al propio libro). Aquí almacenaremos un ProjectId numérico que los servicios posteriores pueden leer sin tocar las celdas visibles. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**¿Cómo añadir una propiedad personalizada?** Simplemente llama a `CustomProperties.Add(name, value)`. La API maneja automáticamente el XML subyacente, así que no tienes que preocuparte por los detalles de bajo nivel. Esta es la forma más segura de incrustar metadatos que no son visibles para el usuario final. + +--- + +## Paso 3: Guardar el libro como XLSB + +Con el libro listo y la propiedad personalizada adjunta, es hora de **how to save xlsb**. El formato XLSB almacena los datos en una representación binaria, que suele ser más pequeño y más rápido de abrir que el clásico XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Guardar como XLSB es tan simple como pasar `SaveFormat.Xlsb` al método `Save`. Si te preguntas si esto eliminará la propiedad personalizada—no te preocupes, Aspose.Cells conserva tanto las propiedades a nivel de libro como a nivel de hoja en el archivo binario. + +--- + +## Paso 4: Verificar la propiedad personalizada + +Una buena práctica es volver a cargar el archivo y confirmar que la propiedad sobrevivió al viaje de ida y vuelta. Esto también demuestra **how to add custom property** más adelante si necesitas actualizarla. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Si la consola imprime `12345`, has logrado **how to save xlsb** *y* **add project id** en una sola operación. La propiedad vive dentro de los metadatos internos del archivo, invisible en la UI pero perfectamente legible por código. + +--- + +## Consejos adicionales: Añadir múltiples propiedades y casos límite + +### Añadir más de una propiedad + +Puedes apilar tantas propiedades como desees: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Actualizar una propiedad existente + +Si una propiedad ya existe, simplemente asigna un nuevo valor: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Manejar propiedades inexistentes + +Intentar leer una propiedad que no existe lanza una `KeyNotFoundException`. Protégete contra ello: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Compatibilidad entre versiones + +XLSB funciona en Excel 2007 + y en la versión web de Excel. Sin embargo, versiones antiguas de Office (< 2007) no pueden abrir archivos XLSB. Si necesitas mayor compatibilidad, considera guardar una segunda copia como XLSX. + +### Consideraciones de rendimiento + +Los archivos binarios XLSB son típicamente un 30‑50 % más pequeños que los XLSX, y se cargan más rápido. Para conjuntos de datos grandes (cientos de miles de filas), la ganancia de velocidad puede ser notable. + +--- + +## Ejemplo completo + +A continuación tienes el programa completo que puedes copiar‑pegar en un proyecto de consola. Incluye todos los pasos, manejo de errores y comentarios necesarios para ponerlo en marcha al instante. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Salida esperada** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Si ves lo anterior, has dominado **how to save xlsb**, **add custom property**, y **add project id**—todo en un fragmento ordenado y reutilizable. + +--- + +## Preguntas frecuentes + +**P: ¿Esto funciona con .NET Core?** +R: Absolutamente. Aspose.Cells es compatible con .NET Standard, por lo que el mismo código se ejecuta en .NET 5/6/7 y en .NET Framework. + +**P: ¿Puedo añadir una propiedad personalizada al libro completo en lugar de a una sola hoja?** +R: Sí. Usa `workbook.CustomProperties.Add("Key", value);` para adjuntarla a nivel de libro. + +**P: ¿Qué pasa si necesito almacenar una cadena grande (p. ej., JSON) como propiedad?** +R: La API acepta cadenas de cualquier longitud, pero ten en cuenta que blobs extremadamente grandes pueden aumentar el tamaño del archivo. Para datos masivos, considera usar una hoja oculta. + +**P: ¿La propiedad personalizada es visible en la UI de Excel?** +R: No directamente. Los usuarios pueden verla mediante **Archivo → Información → Propiedades → Propiedades avanzadas → Personalizado**, pero no aparecerá en la cuadrícula. + +--- + +## Conclusión + +Hemos cubierto **how to save xlsb** en C# mientras **añadimos una propiedad personalizada** como un ProjectId. Siguiendo el patrón paso a paso—**create excel workbook**, **add custom property**, **save as XLSB**, y **verify**—ahora dispones de una referencia sólida y citables que funciona tanto para rastreadores de motores de búsqueda como para asistentes de IA. + +A continuación, podrías explorar: + +- **How to add custom property** a múltiples hojas en un bucle. +- Exportar datos de un `DataTable` al libro antes de guardarlo. +- Encriptar el archivo XLSB para mayor seguridad. + +Siéntete libre de experimentar, modificar los nombres de las propiedades o cambiar el formato binario por XLSX si necesitas mayor compatibilidad. ¿Tienes un escenario complicado? Deja un comentario y lo resolveremos juntos. ¡Feliz codificación! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/spanish/net/excel-autofilter-validation/_index.md index aba37ecfe0..024d5e211a 100644 --- a/cells/spanish/net/excel-autofilter-validation/_index.md +++ b/cells/spanish/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Nuestro tutorial sobre [Validación de datos decimales en Excel](./decimal-data- Aprenda a filtrar automáticamente filas de Excel usando Aspose.Cells en .NET sin esfuerzo con esta completa guía paso a paso. ### [Validación de datos decimales en Excel](./decimal-data-validation-in-excel/) Descubra cómo implementar la validación de datos decimales en Excel con Aspose.Cells para .NET con nuestra guía sencilla. Mejore la integridad de los datos sin esfuerzo. +### [Eliminar AutoFiltro de Excel – Guía completa en C#](./remove-autofilter-from-excel-complete-c-guide/) +Aprenda a eliminar el AutoFiltro de una hoja de Excel usando Aspose.Cells en .NET con este tutorial paso a paso. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/spanish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..30e70dfa9d --- /dev/null +++ b/cells/spanish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: Aprende cómo eliminar AutoFilter de Excel usando C#. Esta guía paso a + paso también muestra cómo borrar AutoFilter, desactivar AutoFilter en Excel y limpiar + el filtro de la tabla de Excel. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: es +og_description: Eliminar AutoFilter de Excel con C#. Este tutorial muestra cómo borrar + AutoFilter, desactivar AutoFilter en Excel y limpiar el filtro de una tabla de Excel + en solo unas pocas líneas de código. +og_title: Eliminar AutoFiltro de Excel – Guía completa de C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Eliminar AutoFiltro de Excel – Guía completa de C# +url: /es/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Eliminar AutoFilter de Excel – Guía completa en C# + +¿Alguna vez necesitaste **eliminar AutoFilter de Excel** pero no estabas seguro de qué llamada a la API lo desactiva realmente? No eres el único. En muchos flujos de informes la interfaz de filtro interfiere con el procesamiento posterior, por lo que limpiarla es un requisito frecuente. En este tutorial recorreremos una solución concisa y lista para producción que no solo muestra **cómo eliminar AutoFilter**, sino que también explica **desactivar filtros al estilo AutoFilter Excel**, y cómo **limpiar el filtro de una tabla de Excel** por completo. + +> **Lo que obtendrás:** un programa C# listo para ejecutar que carga un libro existente, elimina el filtro de la primera tabla y guarda una copia nueva sin elementos de UI residuales. + +## Prerrequisitos + +- .NET 6+ (o .NET Framework 4.7.2+) +- El paquete NuGet **Aspose.Cells** (la API que usamos en el código) +- Un libro de ejemplo (`TableWithFilter.xlsx`) que ya contiene una tabla con AutoFilter aplicado +- Un conocimiento básico de la sintaxis de C# (no se requieren conocimientos profundos de Excel) + +Si ya cuentas con eso, vamos a sumergirnos. + +--- + +## Paso 1 – Instalar Aspose.Cells y configurar el proyecto + +Antes de que se ejecute cualquier código, necesitas la biblioteca que nos brinda las clases `Workbook`, `Worksheet` y `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Consejo profesional:** Usa la versión de evaluación gratuita para pruebas; solo recuerda establecer la clave de licencia antes de pasar a producción. + +### Por qué es importante +Aspose.Cells abstrae el manejo de OOXML de bajo nivel, de modo que podemos manipular tablas, filtros y estilos sin analizar XML nosotros mismos. Por eso las tareas de **remove autofilter from excel** se convierten en una sola línea en lugar de un montón de manipulaciones XML. + +--- + +## Paso 2 – Cargar el libro que contiene la tabla + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +El objeto `Workbook` representa todo el archivo de Excel. Cargarlo primero garantiza que tengamos una copia limpia en memoria para trabajar, lo cual es crucial cuando luego **clear excel table filter** sin afectar otras hojas. + +--- + +## Paso 3 – Obtener la hoja y la tabla objetivo + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +Un **ListObject** es el término de Aspose para una tabla de Excel. Incluso si tu hoja tiene varias tablas, puedes recorrer `worksheet.ListObjects` y aplicar la misma lógica a cada una. Esta flexibilidad responde a la pregunta “¿qué pasa si tengo varias tablas?” que muchos desarrolladores se hacen. + +--- + +## Paso 4 – Eliminar el AutoFilter de la tabla + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Establecer `AutoFilter` a `null` **elimina el objeto de filtro por completo**, que es la forma más fiable de **how to delete autofilter**. La propiedad alternativa `ShowAutoFilter` solo oculta la UI pero deja activo el motor de filtro—útil si solo deseas **turn off autofilter excel** visualmente mientras preservas los criterios subyacentes. + +> **Caso límite:** Si la tabla no tiene AutoFilter aplicado, `table.AutoFilter` ya será `null`. La línea anterior es segura; simplemente no hace nada. + +--- + +## Paso 5 – Guardar el libro modificado + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Guardar en un archivo nuevo mantiene el original intacto—una buena práctica al automatizar transformaciones de Excel. Después de ejecutar el programa, abre `NoAutoFilter.xlsx`; verás la tabla sin menús desplegables de filtro, confirmando que la operación **remove excel table filter** se completó con éxito. + +--- + +## Verificar el resultado – Qué esperar + +1. **Abre `NoAutoFilter.xlsx`** en Excel. +2. **Selecciona la tabla** – los pequeños íconos de embudo junto a los encabezados de columna deberían haber desaparecido. +3. **Revisa las demás hojas** – permanecen sin cambios, demostrando que solo **clear excel table filter** en la hoja deseada. + +Si los íconos siguen allí, verifica que hayas apuntado al índice correcto de `ListObject`. Recuerda que las tablas de Excel son indexadas desde cero en Aspose, por lo que `ListObjects[0]` es la primera tabla de la hoja. + +--- + +## Manejo de múltiples tablas o hojas de cálculo + +A veces necesitas **remove autofilter from excel** en libros que contienen varias tablas distribuidas en distintas hojas. Aquí tienes una extensión rápida: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Este bucle garantiza que **turn off autofilter excel** en todas partes, eliminando cualquier filtro oculto que pueda interferir con importaciones de datos posteriores. + +--- + +## Errores comunes y cómo evitarlos + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **El filtro permanece después de guardar** | Usar `ShowAutoFilter = false` solo oculta la UI. | Usa `table.AutoFilter = null` para eliminarlo realmente. | +| **Índice de tabla incorrecto** | Asumir que la primera tabla es la que necesitas. | Inspecciona `worksheet.ListObjects.Count` y usa nombres significativos (`tbl.Name`). | +| **Licencia ausente** | La versión de evaluación puede insertar marcas de agua. | Registra tu licencia al inicio: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Archivo bloqueado** | Excel sigue teniendo el archivo fuente abierto. | Asegúrate de que el libro esté cerrado en Excel antes de ejecutar el script. | + +--- + +## Bonus: Añadir de nuevo un AutoFilter (si cambias de idea) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Tener a mano la operación inversa convierte este tutorial en una solución integral tanto para **remove autofilter from excel** como para escenarios de **how to delete autofilter**. + +--- + +## Ejemplo completo (listo para copiar y pegar) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Ejecutar el código anterior **remove autofilter from excel** para cada tabla del libro, dejándote con una hoja limpia para procesamiento adicional. + +--- + +## Conclusión + +Acabamos de cubrir todo lo que necesitas para **remove autofilter from excel** usando C#. Desde la instalación de Aspose.Cells, la carga del libro, la localización de la tabla, la eliminación del filtro, hasta el guardado del archivo limpio—cada paso se explicó con el “por qué” detrás. Ahora sabes cómo **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel** y **clear excel table filter** en un solo fragmento reutilizable. + +¿Listo para el siguiente reto? Prueba automatizar la adición de formato condicional, o explora cómo **add an AutoFilter back** programáticamente. Ambos temas se basan directamente en los conceptos que acabamos de cubrir y enriquecerán aún más tu caja de herramientas de automatización de Excel. + +¿Tienes preguntas o viste un caso que no cubrimos? Deja un comentario abajo—¡feliz codificación! + +--- + +![Screenshot showing an Excel sheet without any filter dropdowns – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/spanish/net/excel-comment-annotation/_index.md index 351d999c4d..1bead4c56a 100644 --- a/cells/spanish/net/excel-comment-annotation/_index.md +++ b/cells/spanish/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Aprenda a agregar comentarios con imágenes en Excel con Aspose.Cells para .NET. Aprenda a agregar comentarios a las celdas de Excel con Aspose.Cells para .NET. Guía paso a paso para principiantes que mejora la funcionalidad de Excel. ### [Comentarios de formato: fuente, color, alineación](./format-comments-font-color-alignment/) Descubre cómo formatear comentarios de Excel fácilmente con Aspose.Cells para .NET. Personaliza la fuente, el tamaño y la alineación para mejorar tus hojas de cálculo. +### [Crear libro de Excel C# – Añadir y rellenar comentarios con marcadores inteligentes](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Aprenda a crear un libro de Excel en C# y añadir comentarios usando marcadores inteligentes con Aspose.Cells para .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/spanish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..57307d82fb --- /dev/null +++ b/cells/spanish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Crea un libro de Excel con C# y aprende cómo añadir comentarios a Excel, + rellenar los comentarios automáticamente usando Smart Markers. Guía paso a paso + para desarrolladores. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: es +og_description: Crea un libro de Excel en C# y agrega rápidamente un comentario a + Excel, luego rellena el comentario usando Smart Markers. Tutorial completo con código. +og_title: Crear libro de Excel en C# – Añadir y rellenar comentarios +tags: +- C# +- Excel automation +- Aspose.Cells +title: Crear libro de Excel en C# – Añadir y rellenar comentarios con marcadores inteligentes +url: /es/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear Libro de Excel C# – Añadir y Rellenar Comentarios con Marcadores Inteligentes + +¿Alguna vez necesitaste **crear libro de Excel C#** y te preguntaste cómo incrustar un comentario que se actualice automáticamente? No eres el único. En muchos escenarios de informes deseas un comentario de celda que diga *“Created by Alice on 2024‑07‑15”* sin codificar de forma rígida el nombre o la fecha cada vez. + +En este tutorial te mostraremos exactamente **cómo añadir un comentario a Excel**, luego **cómo rellenar el comentario** usando los Marcadores Inteligentes de Aspose.Cells. Al final tendrás un programa listo‑para‑ejecutar que crea un libro, inserta un comentario dinámico y guarda el archivo, todo en unos pocos pasos ordenados. + +> **Lo que obtendrás:** una aplicación de consola C# completa y compilable, una explicación de cada línea, consejos para errores comunes y ideas para ampliar la solución. + +## Requisitos previos + +- .NET 6.0 SDK o posterior (el código funciona también con .NET Core y .NET Framework) +- Visual Studio 2022 o cualquier IDE que prefieras +- **Aspose.Cells for .NET** paquete NuGet (`Install-Package Aspose.Cells`) – esta biblioteca impulsa las clases `Workbook`, `Worksheet` y `SmartMarkerProcessor` usadas a continuación. +- Familiaridad básica con la sintaxis de C# – si has escrito un `Console.WriteLine`, estás listo para continuar. + +Ahora que los cimientos están listos, vamos a sumergirnos. + +![Captura de pantalla del ejemplo de crear libro de Excel C#](excel-workbook.png "Ejemplo de crear libro de Excel C#") + +## Paso 1: Inicializar un Nuevo Libro – Conceptos Básicos para Crear Libro de Excel C# + +Primero necesitamos un objeto de libro limpio. Piensa en `Workbook` como el lienzo en blanco; sin él no puedes colocar celdas, filas o comentarios. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Por qué es importante:** `Workbook` crea automáticamente una hoja de cálculo predeterminada, por lo que no tienes que llamar a `Add` a menos que necesites pestañas adicionales. Acceder a `Worksheets[0]` es la forma más rápida de comenzar a rellenar datos. + +## Paso 2: Insertar un Comentario con Marcador Inteligente – Cómo Añadir Comentario con Tokens + +A continuación colocamos un comentario en la celda **B2** que contiene tokens de Marcador Inteligente (`«UserName»` y `«CreatedDate»`). Estos tokens se reemplazarán más tarde con valores reales. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Explicación:** +- `CreateComment()` crea el objeto de comentario si no existe; de lo contrario devuelve el existente. +- La propiedad `Note` contiene el texto visible. Al envolver los marcadores de posición en `« »` le indicamos a Aspose.Cells que son **Marcadores Inteligentes** – marcadores de posición que pueden ser sustituidos de una sola vez. + +> **Consejo profesional:** Si necesitas un comentario de varias líneas, usa `\n` dentro de la cadena, por ejemplo, `"Line1\nLine2"`. + +## Paso 3: Preparar el Objeto de Datos – Cómo Rellenar el Comentario Dinámicamente + +Los Marcadores Inteligentes necesitan una fuente de datos. En C# la forma más fácil es un tipo anónimo que coincida con los nombres de los marcadores de posición. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**¿Por qué un tipo anónimo?** +Es ligero, no requiere un archivo de clase adicional y coincide exactamente los nombres de las propiedades (`UserName`, `CreatedDate`) con los nombres de los tokens. Si prefieres un modelo fuertemente tipado, simplemente crea una clase con las mismas propiedades. + +## Paso 4: Procesar los Marcadores Inteligentes – Cómo Rellenar el Comentario Usando el Objeto de Datos + +Ahora ocurre la magia. El `SmartMarkerProcessor` escanea el libro en busca de cualquier token `«…»` y los sustituye con valores de `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**¿Qué ocurre tras bambalinas?** +`SmartMarkerProcessor` recorre cada celda, comentario, encabezado, etc., buscando el patrón `«Token»`. Cuando encuentra uno, usa reflexión para leer la propiedad correspondiente de `markerData` y escribe el valor de vuelta. No se requieren bucles manuales. + +## Paso 5: Guardar el Libro – Rellenar el Comentario de Excel y Persistir el Archivo + +Finalmente escribimos el libro en disco. El comentario ahora muestra algo como *“Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Verificación del resultado:** Abre `CommentFilled.xlsx` en Excel, pasa el cursor sobre la celda **B2** y verás el comentario con el nombre de usuario y la marca de tiempo reales. No se necesitan más cambios de código para ejecuciones futuras; solo cambia los valores de `markerData`. + +--- + +## Variaciones Comunes y Casos Límite + +### Usar un Formato de Fecha Personalizado + +Si deseas la fecha en formato `yyyy‑MM‑dd`, ajusta el objeto de datos: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Añadir Múltiples Comentarios + +Puedes repetir el **Paso 2** para otras celdas. Cada comentario puede tener su propio conjunto de tokens, o compartir los mismos si la información es universal. + +### Trabajar con Libros Existentes + +En lugar de `new Workbook()`, carga un archivo existente: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +El resto de los pasos permanece idéntico — los Marcadores Inteligentes funcionan tanto en archivos nuevos como preexistentes. + +### Manejo de Valores Nulos + +Si un token podría estar ausente, envuelve la propiedad en un tipo nullable o proporciona un valor predeterminado: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +El procesador insertará *“Unknown”* cuando la fuente sea `null`. + +--- + +## Ejemplo Completo Funcional (Listo para Copiar‑Pegar) + +A continuación está el **programa completo** que puedes colocar en un proyecto de aplicación de consola y ejecutar de inmediato (solo reemplaza `YOUR_DIRECTORY` con una ruta de carpeta real). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Ejecuta el programa, abre el archivo generado y verás el comentario dinámico en la celda **B2**. Fácil, ¿verdad? + +--- + +## Preguntas Frecuentes (FAQ) + +**Q: ¿Esto funciona con .NET Framework 4.7?** +A: Absolutamente. Aspose.Cells soporta .NET Framework 4.0+ y .NET Core/5/6/7. Simplemente referencia el DLL o paquete NuGet apropiado. + +**Q: ¿Puedo usar este enfoque para validación de datos o formato condicional?** +A: Los Marcadores Inteligentes son principalmente para insertar valores en celdas, comentarios, encabezados y pies de página. Para formato condicional aún usarías las APIs normales de `Style`. + +**Q: ¿Qué pasa si necesito añadir un comentario a una hoja de cálculo **diferente**?** +A: Obtén la hoja de cálculo objetivo (`workbook.Worksheets["MySheet"]`) y repite el **Paso 2** en las celdas de esa hoja. + +--- + +## Próximos Pasos y Temas Relacionados + +- **Cómo añadir comentario a Excel** programáticamente para múltiples celdas (recorrer un rango). +- **Rellenar comentario de Excel** con datos de una base de datos (usar un `DataTable` como fuente de datos para los Marcadores Inteligentes). +- Explorar **arrays de Marcadores Inteligentes** para generar tablas automáticamente. +- Aprender sobre **estilos de Aspose.Cells** para formatear la fuente, color y tamaño del comentario. + +Experimenta con los fragmentos, cambia la fuente de datos y dominarás rápidamente **cómo rellenar el comentario** en cualquier escenario de automatización de Excel. + +--- + +### Conclusión + +Acabamos de repasar todo el proceso de **crear libro de Excel c#**, **añadir comentario a Excel**, y **rellenar comentario de Excel** usando Marcadores Inteligentes. La solución es compacta, reutilizable y lista para producción. + +Pruébala, ajusta los marcadores de posición y deja que la biblioteca haga el trabajo pesado. Si encuentras algún problema, deja un comentario abajo — ¡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/_index.md b/cells/spanish/net/excel-custom-number-date-formatting/_index.md index 2b6b977bc0..2c57be528f 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,8 @@ 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. +### [Establecer formato personalizado de celda en C# – Guía completa para escribir y leer fechas en Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Aprenda a aplicar y leer formatos de fecha personalizados en celdas de Excel usando Aspose.Cells para .NET con ejemplos claros. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/spanish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..d1f6761908 --- /dev/null +++ b/cells/spanish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,209 @@ +--- +category: general +date: 2026-03-21 +description: Establece un formato personalizado de celda en C# y aprende cómo escribir + fechas en Excel, aplicar un formato de fecha personalizado, leer DateTime de Excel + y crear rápidamente una hoja de cálculo. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: es +og_description: Establecer formato personalizado de celda en C# para escribir fechas + en Excel, aplicar un formato de fecha personalizado, leer DateTime desde Excel y + crear una hoja de cálculo del libro de trabajo con facilidad. +og_title: Establecer formato personalizado de celda en C# – Escribir y leer fechas + en Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Establecer formato personalizado de celda en C# – Guía completa para escribir + y leer fechas en Excel +url: /es/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Establecer formato personalizado de celda – Escribir y leer fechas en Excel con C# + +¿Alguna vez necesitaste **establecer un formato personalizado de celda** en un archivo Excel desde C# pero no sabías por dónde empezar? No estás solo. En muchas herramientas de generación de informes o utilidades de exportación de datos la fecha debe aparecer en una localidad específica—piensa en fechas de era japonesa, calendarios fiscales o cadenas ISO‑8601. + +En este tutorial recorreremos un **ejemplo completo y ejecutable** que muestra cómo **escribir una fecha en Excel**, **aplicar un formato de fecha personalizado**, **leer DateTime desde Excel** y **crear una hoja de cálculo** con Aspose.Cells. Al final tendrás un programa autocontenido que puedes insertar en cualquier proyecto .NET. + +## Lo que aprenderás + +- Cómo **crear una hoja de cálculo** programáticamente. +- Los pasos exactos para **escribir una fecha en Excel** usando una cadena específica de la localidad. +- Cómo **aplicar un formato de fecha personalizado** (incluida la notación de era japonesa). +- La forma de **leer DateTime desde Excel** y convertirlo en un objeto `DateTime`. +- Consejos, trampas y variaciones que podrías encontrar al trabajar con fechas en Excel. + +No se requiere documentación externa—todo lo que necesitas está aquí. + +## Requisitos previos + +- .NET 6.0 o posterior (el código también funciona en .NET Framework 4.7+). +- Aspose.Cells para .NET instalado vía NuGet (`Install-Package Aspose.Cells`). +- Un entendimiento básico de la sintaxis de C#—nada complicado. + +> **Consejo profesional:** Si usas Visual Studio, habilita *tipos de referencia anulables* para detectar errores sutiles temprano. + +## Paso 1: Crear un Workbook y una Worksheet + +Lo primero: necesitas un objeto workbook que represente el archivo Excel, y una worksheet donde vivirán los datos. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Por qué es importante:* La clase `Workbook` es el punto de entrada para todas las operaciones de Excel. Crearla en memoria significa que no tocas el sistema de archivos hasta que guardes explícitamente, lo que mantiene el proceso rápido y fácil de probar. + +## Paso 2: Escribir la fecha en Excel + +A continuación, colocaremos una cadena de fecha de era japonesa (`"R02-04-01"`) en la celda **A1**. La cadena imita la era Reiwa (año 2, 1 de abril). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Qué está ocurriendo:* `PutValue` almacena la cadena cruda. Aspose.Cells intentará analizarla más tarde según el estilo de la celda. Si omites este paso y escribes directamente un `DateTime`, perderás la información de era que deseas mostrar. + +## Paso 3: Aplicar el formato numérico de fecha incorporado (ID 14) + +Excel tiene un formato de fecha incorporado con ID 14 (`mm-dd-yy`). Aplicarlo indica al motor que la celda **contiene una fecha**, no solo texto. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*¿Por qué usar el ID 14?* Es el formato universal de “fecha corta” que asegura que Excel trate el contenido como un valor de fecha, requisito previo para que cualquier formato personalizado funcione correctamente. + +## Paso 4: Establecer un formato personalizado para mostrar notación de era japonesa + +Ahora viene la parte divertida: le decimos a Excel que renderice la fecha usando el formato de era japonesa. La cadena personalizada `[$-ja-JP]ggge年m月d日` hace exactamente eso. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Explicación:* +- `[$-ja-JP]` fuerza la localidad a japonés. +- `ggg` es el nombre de la era (p. ej., “R” para Reiwa). +- `e` es el año de la era. +- `年`, `月`, `日` son caracteres japoneses literales para año, mes y día. + +Si necesitas una localidad diferente, simplemente reemplaza `ja-JP` con el código cultural apropiado (p. ej., `en-US`). + +## Paso 5: Recuperar el valor DateTime analizado + +Finalmente, leamos el **DateTime real** que Excel ha analizado de la celda. Esto demuestra que la cadena se interpretó correctamente. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Resultado:* La consola imprime `Parsed DateTime: 2020-04-01`. Aunque ingresamos una cadena de era japonesa, Excel almacena internamente la fecha gregoriana, que puedes usar para cálculos, comparaciones o exportaciones posteriores. + +## Paso 6: Guardar el Workbook (Opcional) + +Si deseas ver el libro formateado en Excel, simplemente guárdalo en disco. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Abre el **JapaneseEraDate.xlsx** generado y verás la celda **A1** mostrando `R02年4月1日` (el formato exacto de era japonesa que establecimos). + +![ejemplo de formato personalizado de celda](image-placeholder.png "Celda de Excel que muestra la fecha de era japonesa – formato personalizado de celda") + +*El texto alternativo anterior contiene la palabra clave principal, cumpliendo con el requisito de SEO para imágenes.* + +## Variaciones comunes y casos límite + +### Escribir un formato de fecha diferente + +Si prefieres ISO‑8601 (`2020-04-01`) en lugar de una cadena de era, simplemente cambia la llamada a `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Manejar celdas nulas o vacías + +Al leer una fecha, siempre protege contra celdas vacías para evitar `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Soportar múltiples localidades + +Puedes iterar sobre una lista de códigos culturales y aplicarlos dinámicamente: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Consejos profesionales y advertencias + +- **Siempre establece primero un formato numérico incorporado** (`Style.Number`). Sin él, Excel trata la celda como texto plano y el formato personalizado se ignora. +- **Los códigos de localidad no distinguen entre mayúsculas y minúsculas**, pero usar la forma canónica (`ja-JP`) evita confusiones. +- **Guardar es opcional** para procesamiento en memoria; puedes transmitir el workbook directamente a una respuesta web (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Licencias de Aspose.Cells**: La versión de evaluación gratuita agrega una marca de agua. Para producción, asegúrate de contar con una licencia válida para evitar penalizaciones de rendimiento. + +## Recapitulación + +Hemos demostrado cómo **establecer un formato personalizado de celda** en C# para mostrar fechas de era japonesa, cómo **escribir una fecha en Excel**, **aplicar un formato de fecha personalizado**, **leer DateTime desde Excel** y **crear una hoja de cálculo**, todo en un único programa autocontenido. La palabra clave principal aparece de forma natural a lo largo del texto, mientras que las palabras clave secundarias están integradas en los encabezados y el cuerpo, cumpliendo tanto con los estándares SEO como con los de citación AI. + +## ¿Qué sigue? + +- Explora **formato condicional** para resaltar fechas vencidas. +- Combina este enfoque con **Tablas dinámicas** para informes dinámicos. +- Prueba **leer archivos CSV grandes** y convertirlos a Excel con la misma lógica de manejo de fechas. + +Siéntete libre de experimentar con diferentes localidades, patrones personalizados o incluso zonas horarias. Si encuentras algún inconveniente, deja un comentario abajo—¡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-data-export-retrieval/_index.md b/cells/spanish/net/excel-data-export-retrieval/_index.md index 87ee22a345..b9b14935d9 100644 --- a/cells/spanish/net/excel-data-export-retrieval/_index.md +++ b/cells/spanish/net/excel-data-export-retrieval/_index.md @@ -28,6 +28,10 @@ La primera parada de nuestro viaje es aprender a recuperar datos de celdas de Ex ## Tutoriales de exportación y recuperación de datos de Excel ### [Recuperar datos de celdas en Excel](./retrieve-data-from-cells-in-excel/) Aprenda a recuperar datos de celdas de Excel usando Aspose.Cells para .NET en este tutorial paso a paso, perfecto tanto para principiantes como para desarrolladores experimentados. +### [Exportar tabla de datos de Excel en C# – Guía completa](./export-excel-data-table-in-c-complete-guide/) +Aprenda a exportar una tabla de datos de Excel usando Aspose.Cells para .NET en C#, paso a paso, ideal para todos los niveles. +### [Cómo exportar datos de Excel en C# – Guía paso a paso](./how-to-export-excel-data-in-c-step-by-step-guide/) +Aprenda a exportar datos de Excel en C# con Aspose.Cells para .NET, siguiendo una guía paso a paso para todos los niveles. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/spanish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..4bf25cccaa --- /dev/null +++ b/cells/spanish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-03-21 +description: Exportar tabla de datos de Excel a un DataTable con encabezados, limitar + los decimales y exportar las primeras 100 filas usando Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: es +og_description: Aprende cómo exportar una tabla de datos de Excel a un DataTable, + mantener los encabezados, limitar los decimales y obtener las primeras 100 filas + en C#. +og_title: Exportar tabla de datos de Excel en C# – Guía paso a paso +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Exportar tabla de datos de Excel en C# – Guía completa +url: /es/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Exportar tabla de datos de Excel – Guía completa en C# + +¿Necesitas **exportar tabla de datos de excel** desde un libro de trabajo a un `DataTable` de .NET? Estás en el lugar correcto—esta guía te muestra exactamente cómo hacerlo, mantener los encabezados de columna, limitar los decimales y extraer solo las primeras 100 filas. + +Si alguna vez has mirado una hoja de cálculo y pensado, “¿Cómo llevo esto a mi aplicación sin perder el formato?” no estás solo. En los próximos minutos convertiremos ese “qué‑pasaría” en una solución concreta, lista para copiar y pegar, que funciona con Aspose.Cells, una biblioteca popular para la manipulación de Excel. + +## Lo que aprenderás + +- Cómo **exportar excel a datatable** usando el método `ExportDataTable`. +- Cómo mantener los nombres originales de columna (`export excel with headers`). +- Cómo **limitar los decimales en excel** mediante la configuración de `ExportTableOptions`. +- Cómo obtener de forma segura solo las primeras 100 filas (`export first 100 rows`). + +Sin scripts externos, sin cadenas mágicas—solo C# puro que puedes insertar en cualquier proyecto .NET. + +## Requisitos previos + +| Requisito | Por qué es importante | +|-------------|----------------| +| .NET 6 o posterior (o .NET Framework 4.7+) | Aspose.Cells es compatible con ambos, pero los entornos más recientes te ofrecen APIs listas para async. | +| Paquete NuGet Aspose.Cells para .NET | Proporciona `Workbook`, `ExportTableOptions` y el asistente `ExportDataTable`. | +| Un archivo Excel de ejemplo (p.ej., `Numbers.xlsx`) | La fuente de los datos que exportarás. | +| Conocimientos básicos de C# | Seguirás los fragmentos de código, pero no se requiere nada avanzado. | + +Si alguno de estos te resulta desconocido, obtén el paquete NuGet con `dotnet add package Aspose.Cells` y crea un pequeño archivo Excel con algunos números—tus datos de prueba. + +![ejemplo de exportar tabla de datos de excel](excel-data-table.png "Captura de pantalla de una hoja de Excel que será exportada a un DataTable") + +## Paso 1: Cargar el Libro de trabajo (export excel data table) + +Lo primero que necesitas es una instancia de `Workbook` que apunte a tu archivo Excel. Piensa en ello como abrir un libro antes de poder leer sus capítulos. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Por qué es importante:** Cargar el libro de trabajo te da acceso a sus hojas, celdas y estilos. Si la ruta del archivo es incorrecta, Aspose lanzará una `FileNotFoundException`, así que verifica la ubicación. + +## Paso 2: Configurar opciones de exportación – limit decimal places excel + +Por defecto, Aspose exporta cada valor numérico con precisión completa. A menudo solo necesitas un puñado de dígitos significativos, especialmente al alimentar los datos a una cuadrícula UI o a una API que espera números redondeados. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Consejo profesional:** Si necesitas una estrategia de redondeo diferente (p.ej., siempre redondear hacia arriba), puedes post‑procesar el `DataTable` después de la exportación. La configuración `SignificantDigits` es la forma más rápida de **limit decimal places excel** sin escribir bucles adicionales. + +## Paso 3: Exportar el rango deseado (export first 100 rows) + +Ahora indicamos a Aspose qué bloque de celdas queremos extraer a un `DataTable`. En este tutorial tomamos las primeras 100 filas y las primeras 10 columnas, pero puedes ajustar esos números según tu caso. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Caso límite:** Si la hoja contiene menos de 100 filas, Aspose simplemente exportará lo que exista sin lanzar un error. Sin embargo, podrías querer protegerte contra un rango inesperadamente pequeño: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Paso 4: Verificar el resultado – Volcado rápido en consola + +Ver los datos en tu depurador es agradable, pero imprimir algunas filas en la consola confirma que el **export excel to datatable** realmente funcionó y que los decimales están recortados. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Salida esperada + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Observa cómo las columnas numéricas ahora muestran solo cuatro dígitos significativos, coincidiendo con la configuración `SignificantDigits = 4` que aplicamos antes. + +## Paso 5: Envolver todo – Un ejemplo completo y ejecutable + +A continuación tienes el programa completo que puedes copiar‑pegar en una aplicación de consola. Incluye manejo de errores, la protección opcional del recuento de filas y el método auxiliar para imprimir. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Ejecuta el programa y verás las primeras 100 filas de tu hoja, redondeadas adecuadamente, con los nombres de columna intactos. + +## Preguntas frecuentes y trucos + +| Pregunta | Respuesta | +|----------|-----------| +| **¿Qué pasa si mi hoja tiene celdas combinadas?** | `ExportDataTable` aplana las celdas combinadas tomando el valor de la celda superior‑izquierda. Si necesitas un manejo personalizado, descombina primero o lee los objetos `Cell` sin procesar. | +| **¿Puedo exportar a un `DataSet` en su lugar?** | Sí—usa `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/spanish/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..6821f289f1 --- /dev/null +++ b/cells/spanish/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Cómo exportar datos de Excel con nombres de columnas, conservar el formato + numérico y leer filas específicas usando Aspose.Cells en C#. Aprende a leer la hoja + de Excel y exportar filas específicas de manera eficiente. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: es +og_description: Cómo exportar datos de Excel con nombres de columna, conservar el + formato numérico y leer filas específicas usando Aspose.Cells. Un ejemplo completo + y ejecutable para desarrolladores C#. +og_title: Cómo exportar datos de Excel en C# – Guía completa de programación +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Cómo exportar datos de Excel en C# – Guía paso a paso +url: /es/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo exportar datos de Excel en C# – Guía completa de programación + +¿Alguna vez te has preguntado **cómo exportar excel** sin perder el formato original? Tal vez intentaste un rápido copiar‑pegar y terminaste con fechas que aparecen como “44728” o sin encabezados de columna. Eso es frustrante, ¿verdad? En este tutorial verás una forma limpia, de extremo a extremo, de leer una hoja de cálculo de Excel, conservar el formato numérico, exportar con nombres de columnas y, incluso, seleccionar solo las filas que necesitas. + +Usaremos la biblioteca Aspose.Cells porque te brinda un control granular sobre las opciones de exportación. Al final de esta guía tendrás un fragmento reutilizable que puedes insertar en cualquier proyecto .NET, y entenderás por qué cada opción es importante. No se requieren documentos externos; todo lo que necesitas está aquí. + +--- + +## Lo que aprenderás + +- **Leer la hoja de Excel** en memoria con Aspose.Cells. +- **Exportar filas específicas** (p. ej., filas 0‑49) manteniendo los nombres de columna. +- **Conservar el formato numérico** para que monedas, fechas y porcentajes permanezcan intactos. +- Cómo **exportar con nombres de columna** e incluir comentarios de celda si los necesitas. +- Un ejemplo completo y listo para ejecutar en C# más consejos para evitar errores comunes. + +### Requisitos previos + +- .NET 6.0 o superior (el código también funciona con .NET Framework 4.6+). +- Aspose.Cells para .NET instalado vía NuGet (`Install-Package Aspose.Cells`). +- Un archivo Excel (`input.xlsx`) colocado en una carpeta a la que puedas referenciar. + +> **Consejo profesional:** Si trabajas en una canalización CI, considera obtener el paquete NuGet desde un feed privado para evitar sorpresas de licenciamiento. + +--- + +## Paso 1 – Instalar Aspose.Cells y agregar espacios de nombres + +Primero, asegúrate de que el paquete Aspose.Cells esté en tu proyecto. Abre la Consola del Administrador de paquetes y ejecuta: + +```powershell +Install-Package Aspose.Cells +``` + +Luego agrega las directivas `using` requeridas al inicio de tu archivo C#: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Estas importaciones te dan acceso a `Workbook`, `Worksheet`, `ExportTableOptions` y `DataTable`, los componentes esenciales para **leer una hoja de Excel** y exportar datos. + +--- + +## Paso 2 – Cargar el libro (leer el archivo Excel) + +Ahora realmente **leemos la hoja de Excel**. El constructor `Workbook` recibe la ruta al archivo, y Aspose.Cells manejará tanto `.xlsx` como los formatos más antiguos `.xls`. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Por qué importa:** Cargar el libro una sola vez y reutilizar el mismo objeto `Worksheet` es mucho más eficiente que abrir el archivo repetidamente, sobre todo con hojas de cálculo grandes. + +--- + +## Paso 3 – Configurar opciones de exportación (conservar formato numérico y nombres de columna) + +Aquí le indicamos a Aspose.Cells *cómo* exportar. La clase `ExportTableOptions` permite afinar la salida. Activaremos tres banderas: + +1. `ExportAsString = true` – fuerza que cada celda se convierta en cadena, lo que garantiza que los números mantengan su representación visual. +2. `IncludeCellComments = true` – copia cualquier comentario asociado a las celdas (útil para documentación). +3. `PreserveNumberFormat = true` – conserva el formato numérico original (símbolos de moneda, patrones de fecha, etc.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Caso límite:** Si estableces `ExportAsString` en `false` pero aún deseas mantener los formatos numéricos, podrías obtener valores numéricos crudos (p. ej., 44728 para una fecha). Mantener ambas banderas activas evita esa sorpresa. + +--- + +## Paso 4 – Obtener la primera hoja (leer hoja de Excel) + +La mayoría de los archivos simples tienen los datos que necesitas en la primera hoja, así que la obtendremos por índice. Si necesitas otra hoja, simplemente reemplaza `0` por el índice correspondiente (basado en cero) o usa `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Por qué es útil:** Acceder directamente al objeto `Worksheet` te brinda control total sobre su colección `Cells`, lo cual es esencial para **exportar filas específicas** más adelante. + +--- + +## Paso 5 – Exportar un rango de celdas (exportar filas específicas) + +Ahora, el corazón del tutorial: exportar filas 0‑49 y columnas 0‑4 (es decir, las primeras 50 filas y las primeras cinco columnas) a un `DataTable`. También pediremos a Aspose.Cells que incluya los nombres de columna como la primera fila del `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Qué hace esto + +- **`startRow: 0`** – comienza en la parte superior de la hoja. +- **`totalRows: 50`** – captura las primeras 50 filas (**exportar filas específicas**). +- **`totalColumns: 5`** – limita la exportación a las primeras cinco columnas. +- **`includeColumnNames: true`** – asegura que los encabezados del `DataTable` coincidan con la fila de encabezado de Excel, cumpliendo el requisito de **exportar con nombres de columna**. +- **`exportOptions`** – aplica la configuración del Paso 3, de modo que tus valores numéricos sigan viéndose como “$1,234.56” en lugar de “1234.56”. + +--- + +## Paso 6 – Verificar la exportación (cómo se ve el resultado) + +Imprimamos las primeras filas en la consola para que veas que el formato se mantuvo. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Salida esperada (ejemplo):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Observa cómo las fechas aparecen en formato `MM/dd/yyyy` y la moneda conserva el símbolo `$`, gracias a **preservar formato numérico**. + +--- + +## Problemas comunes y cómo evitarlos + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| Las fechas se convierten en números grandes | `ExportAsString` quedó en `false` | Mantén `ExportAsString = true` o convierte las celdas manualmente | +| Falta de encabezados de columna | `includeColumnNames` está en `false` | Ponlo en `true` cuando necesites **exportar con nombres de columna** | +| Los comentarios desaparecen | `IncludeCellComments` no está habilitado | Activa `IncludeCellComments` en `ExportTableOptions` | +| Se exporta la hoja equivocada | Usas `Worksheets[0]` en un archivo con varias hojas | Especifica el nombre de la hoja: `workbook.Worksheets["Data"]` | +| Excepción fuera de rango | `totalRows` supera el número real de filas | Usa `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## Bonus: Exportar toda la hoja manteniendo los formatos + +Si más adelante decides que necesitas la hoja completa, simplemente reemplaza `totalRows` y `totalColumns` por las dimensiones máximas de la hoja: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Ahora tienes una rutina de **read excel worksheet** que funciona para cualquier tamaño, mientras sigue **preserving number format** y **exporting with column names**. + +--- + +## Ejemplo completo (listo para copiar y pegar) + +A continuación tienes el programa completo que puedes colocar en una aplicación de consola. Incluye todos los pasos, importaciones y una verificación simple en pantalla. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Guárdalo como `Program.cs`, ejecuta `dotnet run` y deberías ver la vista previa con formato en tu terminal. + +--- + +## Conclusión + +Acabamos de recorrer **cómo exportar excel** usando Aspose.Cells, cubriendo todo desde la carga del libro hasta la preservación del formato numérico, la exportación con nombres de columna y la limitación a filas específicas. El código es autónomo, totalmente ejecutable, e incluye salvaguardas prácticas para los casos límite más comunes. + +¿Listo para el siguiente reto? Prueba exportar directamente a CSV manteniendo el formato numérico original, o inserta el `DataTable` en un contexto de Entity Framework Core para inserciones masivas en la base de datos. Ambos escenarios se basan en los mismos fundamentos que cubrimos aquí. + +Si encontraste útil esta guí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/excel-workbook/_index.md b/cells/spanish/net/excel-workbook/_index.md index f88893e3ef..7c7239bea9 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 libro de Excel con tabla con estilo – Guía paso a paso](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Aprenda a crear un libro de Excel con una tabla con estilo usando Aspose.Cells para .NET en esta guía paso a paso. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/spanish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..38f45f0ff9 --- /dev/null +++ b/cells/spanish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-21 +description: Crear un libro de Excel e importar una tabla de datos a Excel mientras + se configura el estilo de columna, exportar datos a Excel y formatear la fecha de + las celdas de Excel en minutos. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: es +og_description: Crea un libro de Excel rápidamente. Aprende a importar una tabla de + datos a Excel, establecer el estilo de columna, exportar datos a Excel y formatear + la fecha de las celdas de Excel en una sola guía. +og_title: Crear libro de Excel – Tutorial completo de estilo y exportación +tags: +- C# +- Aspose.Cells +- Excel automation +title: Crear libro de Excel con tabla con estilo – Guía paso a paso +url: /es/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear Excel Workbook – Tutorial de Programación Completo + +¿Alguna vez necesitaste **crear excel workbook** que luzca pulido directamente desde el código? Tal vez estés extrayendo datos de una base de datos y quieras que las fechas se muestren con el formato correcto sin tener que manipular Excel después. Ese es un punto de dolor común, sobre todo cuando el resultado llega al buzón de un cliente y esperan que todo esté listo para usar. + +En esta guía recorreremos una solución única y autocontenida que **imports datatable to excel**, aplica un **set column style**, y finalmente **export data to excel** como un archivo bien formateado. Verás exactamente cómo **format excel cells date** para que la hoja de cálculo se lea como un informe profesional, y obtendrás un ejemplo completo y ejecutable al final. Sin piezas faltantes, sin atajos de “ver la documentación”, solo código puro que puedes incorporar a tu proyecto hoy mismo. + +--- + +## Qué aprenderás + +- Cómo **create excel workbook** usando la biblioteca Aspose.Cells (o cualquier API compatible). +- La forma más rápida de **import datatable to excel** sin bucles manuales celda por celda. +- Técnicas para **set column style**, incluyendo la aplicación de un formato de fecha a una columna específica. +- Cómo **export data to excel** con una única llamada a `Save`. +- Trampas comunes al intentar **format excel cells date** y cómo evitarlas. + +### Requisitos previos + +- .NET 6+ (o .NET Framework 4.6+). +- Aspose.Cells para .NET instalado (`Install-Package Aspose.Cells`). +- Un `DataTable` listo para exportarse — tu fuente de datos puede ser SQL, CSV o cualquier cosa que pueda convertirse en un `DataTable`. + +Si ya manejas C# y tienes esos elementos, estás listo para continuar. De lo contrario, la sección de “Requisitos previos” anterior te brinda una lista rápida de verificación. + +--- + +## Paso 1 – Crear la instancia del Excel Workbook + +Lo primero que haces cuando quieres **create excel workbook** programáticamente es instanciar el objeto workbook. Piensa en esto como abrir un cuaderno en blanco donde luego escribirás tus datos. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Por qué es importante:** +> La clase `Workbook` es el punto de entrada para cada operación en Aspose.Cells. Crearla al inicio te brinda un lienzo limpio, y luego puedes cargar un archivo existente si necesitas añadir datos en lugar de comenzar desde cero. + +--- + +## Paso 2 – Preparar el DataTable para importar + +Antes de poder **import datatable to excel**, necesitamos un `DataTable`. En proyectos reales esto suele provenir de `SqlDataAdapter.Fill` o `DataTable.Load`. Para mayor claridad, simularemos un método que devuelve una tabla lista. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Consejo:** Si tus fechas están almacenadas como cadenas, conviértelas a `DateTime` primero; de lo contrario, el paso **format excel cells date** no funcionará como se espera. + +--- + +## Paso 3 – Definir estilos para cada columna (Set Column Style) + +Ahora llega la parte donde **set column style**. Crearemos un arreglo de objetos `Style`, uno por columna. La primera columna recibe un formato de fecha incorporado (código 14), mientras que las demás mantienen el formato general (código 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **¿Por qué usar objetos de estilo?** +> Aplicar un estilo una sola vez y reutilizarlo es mucho más eficiente que establecer el formato en cada celda individualmente. Además, garantiza que toda la columna respete la misma regla de **format excel cells date**, lo cual es esencial para la consistencia al abrir el archivo en diferentes configuraciones regionales. + +--- + +## Paso 4 – Importar el DataTable con estilos al Worksheet + +Con el workbook listo y los estilos definidos, ahora **import datatable to excel**. El método `ImportDataTable` hace el trabajo pesado: escribe los encabezados de columna, las filas y aplica los estilos que le pasamos. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **¿Qué ocurre bajo el capó?** +> - `true` indica a Aspose.Cells que incluya los nombres de columna como la primera fila. +> - `0, 0` son los índices de fila y columna de inicio (esquina superior izquierda). +> - `columnStyles` alinea cada columna con el estilo que preparamos, asegurando que la regla **format excel cells date** se aplique a la columna de fechas. + +--- + +## Paso 5 – Guardar (Exportar) el Workbook a un archivo físico + +Finalmente, **export data to excel** guardando el workbook en disco. Puedes cambiar la ruta a cualquier carpeta que prefieras, o incluso transmitir el archivo directamente a una respuesta HTTP para una API web. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro tip:** Usa `workbook.Save(Stream, SaveFormat.Xlsx)` cuando necesites enviar el archivo por la red sin escribirlo en disco. + +--- + +## Ejemplo completo (Todos los pasos combinados) + +A continuación tienes el programa completo, listo para ejecutar. Copia‑pega en una aplicación de consola, ajusta la ruta de salida y tendrás un archivo Excel bien formateado en segundos. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Salida esperada:** +Al abrir `StyledTable.xlsx`, la columna A muestra fechas como `03/19/2026` (según tu configuración regional), mientras que las columnas B y C despliegan los nombres de producto y cantidades como texto/números simples. No se requieren pasos de formato adicionales — tu proceso **create excel workbook** está completo. + +--- + +## Preguntas frecuentes y casos límite + +### 1️⃣ ¿Qué pasa si mi DataTable tiene más de tres columnas? +Añade más objetos `Style` al arreglo `columnStyles` y ajusta la propiedad `Number` para cualquier columna que necesite un formato especial (por ejemplo, moneda, porcentajes). El método `ImportDataTable` emparejará cada estilo por posición. + +### 2️⃣ ¿Puedo aplicar un formato de fecha personalizado en lugar del incorporado 14? +Claro. Reemplaza `columnStyles[i].Number = 14;` por: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ ¿Cómo **export data to excel** en una API web sin escribir en disco? +Usa un `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ ¿Qué ocurre si la configuración regional del usuario espera un separador de fecha diferente? +El formato de fecha incorporado (ID 14) respeta la configuración de localidad del workbook. Si necesitas un formato fijo sin importar la localidad, usa la propiedad `Custom` como se muestra arriba. + +### 5️⃣ ¿Esto funciona con .NET Core? +Sí — Aspose.Cells soporta .NET Standard 2.0 y versiones posteriores, por lo que el mismo código funciona en .NET 6, .NET 7 o cualquier runtime compatible. + +--- + +## Consejos de mejores prácticas (Pro Tips) + +- **Reutiliza estilos**: Crear un estilo por columna es barato, pero reutilizar el mismo objeto de estilo para columnas idénticas ahorra memoria. +- **Evita bucles celda por celda**: `ImportDataTable` está altamente optimizado; los bucles manuales son más lentos y propensos a errores. +- **Establece la cultura del workbook temprano** si necesitas separadores de número/fecha consistentes en todos los entornos: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Valida el DataTable** antes de importarlo — fechas nulas lanzarán una excepción cuando se aplique el estilo de fecha. +- **Activa el cálculo** si añades fórmulas después de la importación: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Conclusión + +Ahora dispones de una receta completa, de extremo a extremo, para **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel** y **format excel cells date**, todo en menos de una docena de líneas de código C#. El enfoque es rápido, fiable y mantiene las preocupaciones de formato dentro del código, de modo que la hoja de cálculo final está lista para los usuarios de negocio en el momento en que la abren. + +¿Listo para el próximo desafío? Prueba añadiendo formato condicional, insertando gráficos o convirtiendo el + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/spanish/net/row-and-column-management/_index.md index 00da234e8a..20f1a8eeb7 100644 --- a/cells/spanish/net/row-and-column-management/_index.md +++ b/cells/spanish/net/row-and-column-management/_index.md @@ -37,7 +37,7 @@ De vez en cuando, podrías necesitar insertar nuevos datos en tus hojas de Excel ## Creación de filas de resumen -Saber cómo resumir datos de un vistazo es invaluable, especialmente en el mundo de las hojas de cálculo. Aspose.Cells te permite agregar filas de resumen sin esfuerzo, ya sea debajo de datos agrupados o al lado de tus columnas de datos. Es como tener una instantánea rápida de tu información sin tener que revisar filas y filas de números. Nuestras guías sobre [Creación de filas de resumen a continuación](./summary-row-below/) y [Crear filas de resumen correctamente](./summary-row-right/) Proporciona toda la información que necesita para implementar esta función sin problemas, lo que le ayudará a sacar conclusiones más rápido que nunca. +Saber cómo resumir datos de un vistazo es invaluable, especialmente en el mundo de las hojas de cálculo. Aspose.Cells te permite agregar filas de resumen sin esfuerzo, ya sea debajo de datos agrupados o al lado de tus columnas de datos. Es como tener una instantánea rápida de su información sin tener que revisar filas y filas de números. Nuestras guías sobre [Creación de filas de resumen a continuación](./summary-row-below/) y [Crear filas de resumen correctamente](./summary-row-right/) Proporciona toda la información que necesita para implementar esta función sin problemas, lo que le ayudará a sacar conclusiones más rápido que nunca. ## Eliminar datos no deseados @@ -54,7 +54,7 @@ Aprenda a agrupar filas y columnas en Excel usando Aspose.Cells para .NET con es Aprenda a crear una fila de resumen debajo de filas agrupadas en Excel con Aspose.Cells para .NET. Incluye una guía paso a paso. ### [Crear una fila de resumen a la derecha con Aspose.Cells para .NET](./summary-row-right/) Aprenda a crear una fila de resumen a la derecha en Excel con Aspose.Cells para .NET. Siga nuestra guía paso a paso para obtener instrucciones claras. -### [Desagrupar filas y columnas en Excel con Aspose.Cells](./ungrouping-rows-and-columns/) +### [Desagrupar filas y columnas en Excel con Aspose.Cells para .NET](./ungrouping-rows-and-columns/) Aprenda a desagrupar filas y columnas en Excel con Aspose.Cells para .NET con esta guía completa. Simplifique la manipulación de datos en Excel. ### [Ocultar varias filas y columnas en Aspose.Cells .NET](./hide-multiple-rows-columns-aspose-cells/) Aprenda a ocultar fácilmente varias filas y columnas en Excel con Aspose.Cells para .NET. Siga esta guía paso a paso para una manipulación fluida de Excel. @@ -68,6 +68,8 @@ Aprenda a eliminar una columna en un archivo de Excel con Aspose.Cells para .NET Aprenda a eliminar una fila en Excel con Aspose.Cells para .NET. Esta guía paso a paso cubre los prerrequisitos, la importación de código y una guía detallada para una manipulación de datos fluida. ### [Eliminar varias filas en Aspose.Cells .NET](./delete-multiple-rows-aspose-cells/) Aprenda a eliminar varias filas en Excel con Aspose.Cells para .NET. Esta guía detallada, paso a paso, cubre los prerrequisitos, ejemplos de código y preguntas frecuentes para desarrolladores. +### [Cargar archivo Excel C# – Cómo eliminar filas y quitar filas específicas](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Aprenda a cargar un archivo Excel en C# y eliminar filas específicas paso a paso con Aspose.Cells. ### [Insertar una columna en Aspose.Cells .NET](./insert-column-aspose-cells/) Aprenda a insertar una columna en Excel con Aspose.Cells para .NET. Siga nuestra sencilla guía paso a paso para agregar una nueva columna sin problemas. Ideal para desarrolladores .NET. ### [Insertar una fila en Aspose.Cells .NET](./insert-row-aspose-cells/) diff --git a/cells/spanish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/spanish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..5d8970634c --- /dev/null +++ b/cells/spanish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,206 @@ +--- +category: general +date: 2026-03-21 +description: Cargar archivo Excel con C# y eliminar filas de datos con Aspose.Cells. + Aprende a borrar filas, eliminar filas específicas y domina la eliminación de filas + en Excel con C# en minutos. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: es +og_description: Cargar archivo Excel en C# y eliminar filas rápidamente, quitar filas + específicas y gestionar la eliminación de filas en Excel con C# usando Aspose.Cells. + Guía completa paso a paso. +og_title: Cargar archivo Excel C# – Eliminar filas y quitar filas específicas +tags: +- C# +- Excel +- Aspose.Cells +title: Cargar archivo Excel C# – Cómo eliminar filas y quitar filas específicas +url: /es/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cargar archivo Excel C# – Cómo eliminar filas y eliminar filas específicas + +¿Alguna vez necesitaste **cargar archivo Excel C#** y luego eliminar filas que no necesitas? Tal vez estés limpiando un volcado de datos, o tengas una plantilla donde ciertas filas deben desaparecer antes de enviar el libro de trabajo a un cliente. De cualquier manera, el problema es el mismo: tienes un `.xlsx` en el disco, quieres abrirlo en .NET, y necesitas **eliminar filas** sin romper ninguna tabla oculta o objeto de lista. + +Lo que pasa es que Aspose.Cells lo hace muy fácil. En este tutorial verás un ejemplo completo, listo para ejecutar, que muestra exactamente **cómo eliminar filas**, cómo **eliminar filas específicas**, y por qué podrías preocuparte por **c# excel row deletion** en primer lugar. Al final tendrás un `output.xlsx` limpio que contiene solo las filas que deseas. + +## Qué cubre esta guía + +- Cargar un libro de Excel desde el disco usando Aspose.Cells. +- Eliminar un rango de filas (p. ej., filas 5‑10) respetando los encabezados de cualquier ListObject. +- Guardar el libro modificado de nuevo en el sistema de archivos. +- Problemas comunes, como eliminar accidentalmente filas dentro de una tabla, y consejos para manejarlos. +- Un ejemplo de código completo y ejecutable que puedes insertar en una aplicación de consola hoy. + +> **Requisitos previos** +> • .NET 6+ (o .NET Framework 4.6+). +> • Aspose.Cells para .NET instalado vía NuGet (`Install-Package Aspose.Cells`). +> • Familiaridad básica con C# y conceptos de Excel (hojas de cálculo, celdas, tablas). + +Si te preguntas **por qué deberías usar Aspose.Cells** en lugar de, por ejemplo, `Microsoft.Office.Interop.Excel`, la respuesta es velocidad, no requiere COM y la capacidad de ejecutarse en servidores sin Office instalado. Además, la API es sencilla para tareas de eliminación de filas. + +## Paso 1: Cargar el libro de Excel en C# + +Antes de poder eliminar algo, necesitas cargar el libro en memoria. La clase `Workbook` representa todo el archivo Excel. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Por qué es importante:** +Cargar el archivo crea un grafo de objetos que refleja la estructura de Excel: hojas de cálculo, celdas, tablas, etc. Al mantener una referencia a `ws`, puedes manipular filas directamente sin preocuparte por bloqueos de archivo o peculiaridades del interop COM. + +## Paso 2: Eliminar filas que solo contienen datos + +Ahora que el libro está en memoria, puedes eliminar filas. El método `Cells.DeleteRows(startRow, totalRows)` elimina un bloque contiguo. En nuestro ejemplo eliminaremos las filas 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Cómo funciona:** +- `startRow` es basado en cero, por lo que `5` realmente se refiere a la fila 6 de Excel. Ajusta en consecuencia. +- Si la hoja contiene un **ListObject** (tabla de Excel) cuyo encabezado está en la fila 4, Aspose.Cells protegerá el encabezado y solo eliminará las filas de datos debajo de él. Esta seguridad incorporada evita que corrompas tablas estructuradas, un caso límite común al **eliminar filas de datos**. + +> **Consejo profesional:** Si necesitas eliminar filas no contiguas (p. ej., filas 3, 7, 12), recorre una colección invertida de índices de fila y llama a `DeleteRows(rowIndex, 1)` para cada una. Eliminar de abajo hacia arriba preserva los índices originales para las filas restantes. + +## Paso 3: Guardar el libro modificado + +Una vez que las filas no deseadas se han eliminado, simplemente escribes el libro de nuevo en el disco. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +El método `Save` determina automáticamente el formato de archivo a partir de la extensión (`.xlsx` en este caso). Si necesitas un formato diferente—CSV, PDF, etc.—simplemente cambia la extensión o pasa un enum `SaveFormat`. + +### Resultado esperado + +Abre `output.xlsx` en Excel y verás que las filas 5‑14 (las filas originales 5‑10) han desaparecido. Todos los demás datos se desplazan hacia arriba en consecuencia, y cualquier fórmula que hacía referencia a las filas eliminadas se ajusta automáticamente por Aspose.Cells. + +## Preguntas frecuentes (FAQ) + +### ¿Cómo elimino filas basadas en una condición (p. ej., todas las filas donde la columna A está vacía)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +El bucle se ejecuta hacia atrás para evitar el desplazamiento de índices. Este patrón responde a la pregunta más amplia de **c# excel row deletion** cuando necesitas lógica condicional. + +### ¿Qué pasa si mi hoja contiene múltiples ListObjects? + +Aspose.Cells trata cada ListObject de forma independiente. Si el encabezado de alguna tabla se vería afectado por el rango de eliminación, la API lanza una `InvalidOperationException`. Para solucionar esto, ajusta el rango o temporalmente limpia la propiedad `ShowTableStyleFirstColumn` del ListObject, realiza la eliminación y luego restáurala. + +### ¿Puedo eliminar filas sin cargar todo el libro en memoria? + +Sí—Aspose.Cells ofrece una **API de streaming** (`Workbook.LoadOptions`) que lee datos en fragmentos. Sin embargo, la eliminación de filas requiere inherentemente la estructura de la hoja, por lo que aún necesitarás cargar la hoja objetivo en memoria. Para archivos masivos (>500 MB), considera procesar en lotes o usar la **API celda‑a‑celda**. + +## Ejemplo completo y ejecutable + +A continuación se muestra el programa completo que puedes compilar y ejecutar como una aplicación de consola. Reemplaza `YOUR_DIRECTORY` con una ruta de carpeta real en tu máquina. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Ejecutando el código:** +1. Abre una terminal o Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Reemplaza `Program.cs` con el fragmento anterior. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Deberías ver una salida en la consola confirmando la eliminación y la ubicación del archivo guardado. + +## Problemas comunes y cómo evitarlos + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **Eliminar accidentalmente el encabezado de un ListObject** | `DeleteRows` no verifica los encabezados de tabla ocultos cuando el rango los sobrepasa. | Asegúrate de que tu fila inicial sea **después** de cualquier encabezado de tabla, o usa la API `ListObject` para eliminar filas dentro de la tabla (`ListObject.DeleteRows`). | +| **Índices de fila desfasados en uno** | Aspose.Cells usa indexación basada en cero, mientras que los usuarios de Excel piensan en base 1. | Recuerda restar 1 al número de fila de Excel al programar. | +| **Las fórmulas se rompen después de la eliminación** | Eliminar filas puede causar errores `#REF!` si las fórmulas hacen referencia a las filas eliminadas. | Aspose.Cells actualiza automáticamente la mayoría de las fórmulas, pero verifica cualquier referencia externa o rango nombrado. | +| **Ralentización del rendimiento en archivos muy grandes** | Eliminar muchas filas desencadena una reindexación interna. | Realiza eliminaciones por lotes (elimina un rango grande de una sola vez) en lugar de muchas eliminaciones de una sola fila. Usa `DeleteRows(start, count)` siempre que sea posible. | + +## Próximos pasos y temas relacionados + +- **Eliminar filas específicas basadas en valores de celda:** Combina el bucle condicional mostrado en la FAQ con `DeleteRows`. +- **Inserción masiva de filas:** Usa `InsertRows` para añadir filas de marcador antes de poblar los datos. +- **Trabajar con tablas (ListObjects):** Explora los métodos de `ListObject` para operaciones a nivel de fila dentro de tablas estructuradas. +- **Exportar a CSV después de eliminar filas:** Llama a `workbook.Save("output.csv", SaveFormat.Csv)` para generar un CSV limpio sin las filas eliminadas. + +Cada uno de estos se basa en el flujo de trabajo central de **load excel file c#** que acabas de dominar, permitiéndote ajustar finamente los archivos Excel programáticamente. + +## Conclusión + +Hemos recorrido un escenario práctico de **load excel file c#**, demostrado **cómo eliminar filas**, y cubierto los matices de **eliminar filas específicas** y **eliminar filas de datos** usando Aspose.Cells. Al cargar el libro, llamar a `DeleteRows` y guardar el resultado, logras una **c# excel row deletion** fiable sin la sobrecarga del interop COM. + +Pruébalo con un conjunto de datos real—quizá limpies un informe de ventas o elimines filas de prueba de una plantilla. Una vez que te sientas cómodo, experimenta con eliminaciones condicionales y operaciones conscientes de tablas. La API es lo suficientemente robusta para scripts simples y procesadores por lotes de nivel empresarial. + +¡Feliz codificación, y siéntete libre de dejar un comentario si encuentras algún problema! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/spanish/net/worksheet-operations/_index.md index 6868738d46..213643efb1 100644 --- a/cells/spanish/net/worksheet-operations/_index.md +++ b/cells/spanish/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Aprenda a establecer un fondo gráfico en archivos ODS usando Aspose.Cells para Aprenda a actualizar el historial de revisiones en libros compartidos con Aspose.Cells para .NET. Simplifique la colaboración y mantenga registros de documentos claros. ### [Utilice la propiedad Sheet_SheetId de OpenXml en la hoja de cálculo](./utilize-sheet-sheetid-property/) Desbloquea el poder de Excel con Aspose.Cells para .NET. Aprende a manipular los ID de hoja eficazmente con nuestra guía paso a paso. +### [Cómo crear hojas de trabajo – Guía paso a paso para la generación dinámica de Excel](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Aprenda a crear hojas de cálculo dinámicamente con Aspose.Cells para .NET mediante una guía paso a paso. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/spanish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..45a9079c9c --- /dev/null +++ b/cells/spanish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,279 @@ +--- +category: general +date: 2026-03-21 +description: Aprende cómo crear hojas de cálculo, generar archivos Excel con nombres + de hoja dinámicos y guardar el libro de trabajo como XLSX usando Aspose.Cells en + C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: es +og_description: Cómo crear hojas de cálculo en Excel usando Aspose.Cells, generar + hojas de Excel con nombres de hoja dinámicos y guardar el libro como XLSX. +og_title: Cómo crear hojas de cálculo – Tutorial completo de C# +tags: +- Aspose.Cells +- C# +- Excel automation +title: Cómo crear hojas de cálculo – Guía paso a paso para la generación dinámica + de Excel +url: /es/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo crear hojas de cálculo – Tutorial completo en C# + +¿Alguna vez te has preguntado **cómo crear hojas de cálculo** al vuelo sin tener que abrir Excel manualmente cada vez? No estás solo. Muchos desarrolladores se quedan atascados cuando necesitan **generar hojas de Excel** a partir de fuentes de datos y quieren que cada hoja tenga un nombre significativo y dinámico. ¿La buena noticia? Con Aspose.Cells puedes automatizar todo el proceso, **procesar la hoja maestra**, y finalmente **guardar el libro como XLSX** en solo unas pocas líneas de código. + +En este tutorial recorreremos un escenario del mundo real: partir de un libro en blanco, insertar un token smart‑marker que indique a Aspose qué hojas de detalle crear, configurar un patrón de nombres para que cada hoja obtenga un nombre único, y finalmente persistir el resultado en disco. Al final tendrás un programa C# listo para ejecutar que crea hojas de cálculo, genera Excel sheets con nombres de hoja dinámicos y guarda el libro como XLSX—todo sin tocar la interfaz de usuario. + +> **Requisitos previos** +> • .NET 6+ (o .NET Framework 4.6+). +> • Aspose.Cells para .NET (la prueba gratuita funciona para esta demo). +> • Conocimientos básicos de C#—no se requieren trucos profundos de interop con Excel. + +--- + +## Visión general de lo que construiremos + +- **Hoja maestra** que contiene un marcador inteligente (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** que lee una fuente de datos (p. ej., un `DataTable`) y crea una nueva hoja de cálculo para cada departamento. +- **Nombres de hoja dinámicos** siguiendo el patrón `Dept_{0}` donde `{0}` se reemplaza por el nombre del departamento. +- **Archivo XLSX final** guardado en la carpeta que especifiques. + +Eso es todo. Simple, pero lo suficientemente potente para facturas, informes o cualquier salida de Excel con varias pestañas. + +--- + +![Diagram showing how a master sheet is processed to generate multiple dynamic worksheets](/images/how-to-create-worksheets-diagram.png "How to create worksheets diagram") + +*Alt text: illustration of how to create worksheets with dynamic worksheet names using Aspose.Cells.* + +--- + +## Paso 1: Configurar el proyecto y añadir Aspose.Cells + +### Por qué es importante +Antes de que se ejecute cualquier código, el compilador necesita saber dónde viven las clases `Workbook`, `Worksheet` y `SmartMarkerProcessor`. Añadir el paquete NuGet garantiza que tengas la API más reciente y con todas sus funcionalidades. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Consejo profesional:** Si usas Visual Studio, haz clic derecho en el proyecto → *Manage NuGet Packages* → busca *Aspose.Cells* e instala la última versión estable. + +--- + +## Paso 2: Crear un nuevo Workbook y la hoja maestra + +### Qué hacemos +Comenzamos con un libro limpio, luego obtenemos la primera hoja (índice 0). Esta hoja actuará como la **hoja maestra** que contiene el token smart‑marker. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +La clase `Workbook` es el contenedor de todas las hojas. Por defecto crea una hoja llamada *Sheet1*; renombrarla a “Master” facilita la navegación del archivo final. + +--- + +## Paso 3: Insertar un token Smart‑Marker para los nombres de las hojas de detalle + +### ¿Por qué usar un smart‑marker? +Los smart markers permiten que Aspose.Cells reemplace marcadores de posición con datos en tiempo de ejecución. El token `«DetailSheetNewName:Dept»` le indica al procesador: *“Cuando veas esto, crea una nueva hoja de detalle para cada fila en la columna `Dept`.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Puedes colocar el token donde quieras; elegimos **A1** por claridad. Cuando el procesador se ejecute, reemplazará el token con el nombre real del departamento y generará la hoja correspondiente. + +--- + +## Paso 4: Preparar la fuente de datos + +### Cómo los datos impulsan la creación de hojas +Aspose.Cells funciona con cualquier fuente de datos `IEnumerable`. Para esta demo usaremos un `DataTable` con una sola columna llamada `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **¿Y si tienes más columnas?** +> El procesador ignorará las columnas extra a menos que las referencias en marcadores inteligentes adicionales. Esto mantiene la generación de hojas ligera. + +--- + +## Paso 5: Configurar el SmartMarkerProcessor y el patrón de nombres + +### Nombres de hoja dinámicos en acción +Queremos que cada hoja nueva se llame `Dept_Finance`, `Dept_HR`, etc. La opción `DetailSheetNewName` nos permite definir un patrón donde `{0}` se sustituye por el nombre real del departamento. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Si un departamento aparece dos veces, Aspose añadirá automáticamente un sufijo numérico (p. ej., `Dept_Finance_1`) para evitar nombres duplicados. + +--- + +## Paso 6: Procesar la hoja maestra para generar las hojas de detalle + +### El núcleo del **process master sheet** +Llamar a `Process` realiza el trabajo pesado: escanea la hoja maestra en busca de smart markers, crea nuevas hojas, copia el diseño de la maestra y rellena cada una con los datos de la fila correspondiente. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Después de esta llamada, el libro contiene una hoja maestra más cuatro hojas de detalle—cada una nombrada según nuestro patrón y con el nombre del departamento en la celda A1. + +--- + +## Paso 7: Guardar el Workbook como XLSX + +### Paso final—**save workbook as XLSX** +Ahora que las hojas existen, escribimos el archivo en disco. Puedes elegir cualquier ruta; solo asegúrate de que el directorio exista. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Abrir `DetailSheets.xlsx` mostrará: + +| Nombre de hoja | Celda A1 (Contenido) | +|----------------|----------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Caso límite:** Si la carpeta de salida no existe, `Save` lanza una `DirectoryNotFoundException`. Envuelve la llamada en un bloque try‑catch o crea la carpeta previamente. + +--- + +## Ejemplo completo funcionando + +Juntando todo, aquí tienes el programa completo que puedes copiar‑pegar en una aplicación de consola: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Ejecuta el programa, abre el archivo resultante y verás exactamente el diseño descrito anteriormente. Sin copiar‑pegar manual, sin interop COM—solo código C# limpio que **genera hojas de Excel** con **nombres de hoja dinámicos**. + +--- + +## Preguntas frecuentes y trucos + +| Pregunta | Respuesta | +|----------|-----------| +| *¿Puedo usar un DataSet con varias tablas?* | Sí. Pasa la tabla correspondiente a `Process` o usa un diccionario de tablas. | +| *¿Qué pasa si necesito más de un smart‑marker en la hoja maestra?* | Coloca tokens adicionales como `«DetailSheetNewName:Region»` y configura un patrón de nombres separado si es necesario. | +| *¿Se mantiene la hoja maestra en el archivo final?* | Por defecto, sí. Si no la necesitas, llama a `workbook.Worksheets.RemoveAt(0)` después del procesamiento. | +| *¿Cómo maneja Aspose conjuntos de datos muy grandes?* | Transmite los datos de forma eficiente, pero podrías aumentar `MemorySetting` si alcanzas límites de memoria. | +| *¿Puedo exportar a CSV en lugar de XLSX?* | Por supuesto—usa `workbook.Save("file.csv", SaveFormat.Csv)`. La misma lógica de creación de hojas se aplica. | + +--- + +## Próximos pasos + +Ahora que sabes **cómo crear hojas de cálculo** dinámicamente, podrías explorar: + +- **Guardar el libro como XLSX** con protección por contraseña (`workbook.Protect("pwd")`). +- **Generar hojas de Excel** a partir de fuentes JSON o XML usando `JsonDataSource` o `XmlDataSource`. +- **Aplicar estilos** a cada hoja generada (fuentes, colores) mediante objetos `Style`. +- **Combinar celdas** o insertar fórmulas automáticamente para informes resumidos. + +Cada una de estas extensiones se basa en el mismo concepto de **process master sheet**, por lo que la transición será fluida. + +--- + +## Conclusión + +Hemos cubierto todo el pipeline: desde inicializar un workbook, insertar un smart‑marker, configurar **nombres de hoja dinámicos**, procesar la hoja maestra para **generar hojas de Excel**, y finalmente **guardar el libro como XLSX**. El ejemplo está completo, ejecutable y muestra buenas prácticas tanto de rendimiento como de mantenibilidad. + +Pruébalo, ajusta el patrón de nombres, aliméntalo con datos reales de tu negocio y observa cómo tu automatización de Excel despega. Si encuentras algún problema, deja un comentario abajo—¡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/swedish/net/calculation-engine/_index.md b/cells/swedish/net/calculation-engine/_index.md index af13aec958..1b70a1fd31 100644 --- a/cells/swedish/net/calculation-engine/_index.md +++ b/cells/swedish/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ Lär dig hur du skapar och integrerar anpassade beräkningsmotorer i dina .NET-a ### [Optimera Excel-beräkningstid med rekursiva alternativ i Aspose.Cells för .NET](./optimize-calculation-time-recursive-aspose-cells-net) Lär dig hur du optimerar beräkningstider i Excel med hjälp av rekursiva alternativ i Aspose.Cells för .NET. Den här guiden behandlar installation, prestandatips och praktiska tillämpningar. +### [Hur man beräknar arbetsbok i C# – Sorterings- och formelguide](./how-to-calculate-workbook-in-c-sort-formula-guide/) +Lär dig hur du beräknar en arbetsbok i C#, sorterar data och använder formler med Aspose.Cells. ## Fördelar diff --git a/cells/swedish/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/swedish/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..51b1290f12 --- /dev/null +++ b/cells/swedish/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-21 +description: Hur man beräknar arbetsbok i C# med Aspose.Cells – lär dig att skapa + en Excel‑arbetsbok, fylla i Excel‑celler, beräkna Excel‑formler och använda sorteringsfunktionen. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: sv +og_description: Hur man snabbt beräknar arbetsbok i C#. Denna handledning visar hur + man skapar en Excel‑arbetsbok, fyller i Excel‑celler, beräknar Excel‑formler och + använder sorteringsfunktionen. +og_title: Hur man beräknar Workbook i C# – Fullständig sorteringsguide +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Hur man beräknar arbetsbok i C# – Sorterings- och formelguide +url: /sv/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Så beräknar du arbetsbok i C# – Sorterings‑ och formelguide + +Har du någonsin undrat **hur man beräknar arbetsbok**‑värden i farten utan att öppna Excel? Du är inte ensam. I många automationsscenario behöver du skapa en Excel‑fil, lägga in några siffror, sortera dem och hämta resultaten tillbaka till din .NET‑app—allt programatiskt. + +I den här guiden går vi igenom exakt det: vi **skapar excel workbook**, **populerar excel cells**, bifogar en **SORT**‑formel och slutligen **beräknar excel formulas** så att du kan läsa den sorterade arrayen direkt från C#. I slutet har du ett körbart kodexempel som du kan klistra in i vilket projekt som helst som refererar Aspose.Cells (eller ett liknande bibliotek). + +## Förutsättningar + +- .NET 6+ (koden fungerar också på .NET Framework 4.7.2) +- Aspose.Cells for .NET (gratis prov‑NuGet‑paket `Aspose.Cells`) +- En grundläggande förståelse för C#‑syntax +- Ingen installerad kopia av Microsoft Excel behövs; biblioteket sköter det tunga arbetet åt dig + +Om du känner dig bekväm med detta, låt oss dyka ner. + +## Hur man beräknar arbetsbok – Initiering av arbetsboken + +Det allra första du måste göra är att skapa ett nytt workbook‑objekt. Tänk på det som att öppna en helt ny Excel‑fil som är helt tom. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Varför detta är viktigt:** `Workbook`‑klassen är ingångspunkten för varje operation—utan den kan du inte lägga till blad, celler eller formler. Att initiera den korrekt säkerställer att du arbetar med en ren startyta. + +## Skapa Excel Workbook och komma åt Worksheet + +Nu när arbetsboken finns, måste vi se till att vi pekar på rätt worksheet. De flesta bibliotek har som standard ett enda blad med namnet “Sheet1”, men du kan byta namn på det eller lägga till fler om du vill. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Proffstips:** Att namnge blad tidigt hjälper när du senare refererar till dem i formler (`'Data'!A1:A10`). Det underlättar också felsökning. + +## Populera Excel Cells med data + +Nästa steg är att **populera excel cells** med de siffror vi vill sortera. Exemplet använder bara två celler, men du kan utöka området till dussintals rader. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Varför vi använder `PutValue`** – Den upptäcker automatiskt datatypen (int, double, string, osv.) och lagrar den på rätt sätt, så du slipper manuella typkonverteringar. + +## Applicera SORT‑funktion via formel + +Excels `SORT`‑funktion gör exakt vad namnet antyder: den returnerar en sorterad array utan att ändra den ursprungliga datan. Vi placerar den formeln i cell `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Obs om kantfall:** `SORT` returnerar ett **array**‑resultat. I äldre Excel‑versioner (före Office 365) skulle detta kräva Ctrl+Shift+Enter. Med Aspose.Cells får du arrayen automatiskt när du beräknar arbetsboken. + +## Beräkna Excel‑formler för att få resultat + +Vid detta tillfälle vet arbetsboken bara *vad* som ska beräknas, inte *att* den ska göra det. Att anropa `CalculateFormula` triggar motorn att utvärdera varje formel, inklusive vår `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Förväntad konsolutskrift** + +``` +Sorted array: {2, 5} +``` + +> **Vad hände just nu?** +> 1. Arbetsboken skapade en intern beräkningsmotor. +> 2. `SORT`‑formeln undersökte området `A1:A2`. +> 3. Motorn producerade en ny array, som vi hämtade från `B1`. + +Om du ändrar värdena i `A1` och `A2` (eller utökar området) och kör `CalculateFormula` igen, uppdateras utskriften automatiskt—ingen extra kod behövs. + +## Använd Sort‑funktion på större dataset (valfritt) + +De flesta verkliga scenarier involverar mer än två rader. Här är en snabb justering som fungerar för valfritt antal poster: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Varför du kan behöva detta:** Att sortera stora områden låter dig skapa topplistor, rangordna finansiell data eller helt enkelt rensa importerade CSV‑filer innan vidare bearbetning. + +## Vanliga fallgropar & hur du undviker dem + +| Problem | Varför det händer | Lösning | +|---------|-------------------|---------| +| **`#VALUE!` i B1** | `SORT`‑formeln refererar ett tomt eller icke‑numeriskt område. | Säkerställ att varje cell i källområdet innehåller ett tal eller text som kan sorteras. | +| **Array‑trunkering** | Försök att läsa en array från en enda cell utan korrekt typcasting. | Cast `worksheet.Cells["B1"].Value` till `object[]` (eller lämplig typ). | +| **Prestandaförsämring** | Omberäkning av enorma arbetsböcker efter varje liten förändring. | Anropa `CalculateFormula` först när du är klar med alla ändringar, eller använd `CalculateFormulaOptions` för att begränsa räckvidden. | + +## Fullt fungerande exempel (Kopiera‑klistra‑klart) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Resultatskärmbild** +> ![hur man beräknar arbetsbok resultat i Excel](https://example.com/images/sorted-result.png "hur man beräknar arbetsbok resultat i Excel") + +Bilden ovan visar arbetsboken efter beräkning—cell **B1** innehåller den sorterade arrayen `{2, 5}`. + +## Slutsats + +Vi har precis gått igenom **hur man beräknar arbetsbok**‑värden programatiskt: skapa en Excel‑arbetsbok, populera Excel‑celler, bädda in en `SORT`‑formel och slutligen **beräkna Excel‑formler** för att extrahera den sorterade datan. Metoden fungerar för små två‑cells‑exempel och skalar smidigt till större dataset. + +Vad blir nästa steg? Prova att kombinera detta med andra funktioner som `FILTER`, `UNIQUE` eller till och med anpassad VBA‑liknande logik via `WorksheetFunction`. Du kan också skriva arbetsboken till disk (`workbook.Save("Sorted.xlsx")`) och öppna den i Excel för visuell verifiering. + +Känn dig fri att experimentera—byt ut siffrorna, ändra området eller kedja flera formler tillsammans. Automation handlar om att iterera snabbt, och nu har du en solid grund att bygga vidare på. + +Lycka till med kodandet, och må dina arbetsböcker alltid beräkna exakt som du förväntar dig! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-and-rendering/_index.md b/cells/swedish/net/conversion-and-rendering/_index.md index c224111124..e907f0ed9e 100644 --- a/cells/swedish/net/conversion-and-rendering/_index.md +++ b/cells/swedish/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Lär dig hur du smidigt konverterar Excel till PDF med Aspose.Cells i .NET. Föl Lär dig hur du konverterar ett Excel-ark till SVG med Aspose.Cells för .NET med den här steg-för-steg-guiden. Perfekt för .NET-utvecklare som vill rendera Excel till SVG. ### [Konvertera Excel till MHTML i .NET](./converting-excel-to-mhtml/) Lär dig hur du effektivt konverterar Excel-filer till MHTML-format i .NET med Aspose.Cells, vilket förbättrar dina rapporterings- och datadelningsmöjligheter. +### [Skapa bild från Excel – Exportera pivottabell till PNG i C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Lär dig hur du exporterar en pivottabell från Excel till en PNG-bild med Aspose.Cells i C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/swedish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..012163268a --- /dev/null +++ b/cells/swedish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-03-21 +description: Skapa bild från Excel i C# med Aspose.Cells. Lär dig hur du konverterar + Excel till bild, exporterar pivottabell och sparar bilden som PNG med ett komplett, + körbart exempel. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: sv +og_description: Skapa bild från Excel i C# snabbt. Den här guiden visar hur du konverterar + Excel till bild, exporterar pivottabell och sparar bilden som PNG med tydlig kod. +og_title: Skapa bild från Excel – Exportera pivottabell till PNG i C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Skapa bild från Excel – Exportera pivottabell till PNG i C# +url: /sv/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa bild från Excel – Exportera pivottabell till PNG i C# + +Har du någonsin behövt **create image from Excel** men var osäker på vilket API du skulle använda? Du är inte ensam—många utvecklare stöter på detta hinder när de försöker omvandla en levande pivottabell till en delbar PNG. + +I den här handledningen går vi igenom en komplett, färdig‑att‑köra lösning som **converts Excel to image**, visar **how to export pivot**, och förklarar **how to save image** som en PNG‑fil. I slutet har du en enda metod som utför hela jobbet, samt tips för kantfall du kan stöta på. + +## Vad du behöver + +- **Aspose.Cells for .NET** (NuGet‑paketet `Aspose.Cells`). Det är ett kommersiellt bibliotek men erbjuder ett gratis utvärderingsläge—perfekt för testning. +- .NET 6+ (eller .NET Framework 4.6+). +- En enkel Excel‑arbetsbok (`Pivot.xlsx`) som innehåller minst en pivottabell. +- Valfri IDE du föredrar—Visual Studio, Rider eller till och med VS Code fungerar. + +Det är allt. Inga extra DLL‑filer, ingen COM‑interop och inga röriga Excel‑automatiseringsknep. + +Nu dyker vi ner i koden. + +## Steg 1: Ladda arbetsboken – Skapa bild från Excel + +Det första vi gör är att öppna Excel‑filen som innehåller pivottabellen. Detta steg är avgörande eftersom renderaren arbetar mot ett `Workbook`‑objekt i minnet. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Varför detta är viktigt:* Att ladda arbetsboken ger oss åtkomst till **pivot** och all formatering som kommer att respekteras när vi senare **convert Excel to image**. Om du hoppar över detta har renderaren inget att arbeta med. + +## Steg 2: Konfigurera exportalternativ – Convert Excel to Image + +Därefter talar vi om för Aspose hur vi vill att den slutgiltiga bilden ska se ut. Klassen `ImageOrPrintOptions` låter oss välja PNG, sätta DPI och även kontrollera bakgrundsfärgen. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Varför detta är viktigt:* Genom att sätta en hög DPI säkerställer vi att **export Excel to PNG** ser skarp ut, även när pivottabellen innehåller många rader. Du kan sänka DPI om filstorleken är ett bekymmer. + +## Steg 3: Rendera kalkylbladet – How to Export Pivot + +Nu kommer hjärtat i processen: att omvandla kalkylbladet (med sin pivottabell) till en bild. Klassen `WorksheetRender` gör det tunga arbetet. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Varför detta är viktigt:* Här **how to export pivot** till ett visuellt format. Renderaren respekterar all pivottabellens formatering, slicers och villkorsstyrda stilar, så PNG‑filen ser exakt ut som du ser i Excel. + +## Steg 4: Sätt ihop allt – How to Save Image + +Till sist exponerar vi en enda publik metod som binder ihop alla delar. Detta är metoden du kommer att anropa från din app, tjänst eller konsolverktyg. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Fullt fungerande exempel + +Skapa ett nytt konsolprojekt, lägg till NuGet‑paketet `Aspose.Cells`, och lägg sedan in följande `Program.cs`: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Förväntat resultat:** Efter att du kört programmet kommer `PivotImage.png` att visas i den mapp du angav, och visar en pixel‑perfekt avbildning av pivottabellen. + +![Create image from Excel example](https://example.com/placeholder.png "Create image from Excel example") + +*Alt‑text:* exempel på att skapa bild från excel som visar exporterad pivottabell som PNG. + +## Vanliga frågor & kantfall + +### Vad händer om min arbetsbok har flera kalkylblad? + +Hjälpverktyget hämtar för närvarande `Worksheets[0]`. För att rikta in dig på ett specifikt blad, skicka bladnamnet: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG‑filen är suddig—hur åtgärdar jag det? + +Öka `HorizontalResolution` och `VerticalResolution` i `GetImageOptions`. Värden på 300–600 DPI ger vanligtvis skarpa resultat. Kom ihåg att högre DPI innebär större filstorlek. + +### Min pivottabell sträcker sig över mer än en sida—kan jag exportera alla sidor? + +Ja. Loopa över `renderer.PageCount` och anropa `ToImage(pageIndex, ...)` för varje sida, eller sätt `OnePagePerSheet = false` för att få separata bilder per sida. + +### Jag behöver bara en del av bladet (t.ex. ett specifikt område)? + +Använd `ImageOrPrintOptions` för att sätta `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +På så sätt **convert Excel to image** bara för det område du är intresserad av. + +### Fungerar detta med .xls (Excel 97‑2003) filer? + +Absolut. Aspose.Cells abstraherar filformatet, så du kan mata in `.xls`, `.xlsx`, `.xlsm` eller till och med `.ods` och fortfarande **export excel to png**. + +## Pro‑tips & fallgropar + +- **License matters**: I utvärderingsläge lägger Aspose till ett vattenstämpel. Distribuera en korrekt licens för produktion. +- **Memory usage**: Rendering av stora arbetsböcker kan vara minnesintensivt. Disposera `Workbook`‑objektet omedelbart eller omslut det i ett `using`‑block. +- **Thread safety**: `Workbook` är inte trådsäker. Skapa en ny instans per begäran om du är i en webbtjänst. +- **Image format flexibility**: Om du behöver JPEG eller BMP, ändra bara `ImageFormat` i `GetImageOptions`. + +## Slutsats + +Du har nu ett robust, end‑to‑end‑recept för att **create image from Excel**, specifikt för att **export pivot** data som en högkvalitativ PNG. Snutten ovan visar den fullständiga, körbara koden, förklarar **how to save image**, och täcker variationer som flera blad eller anpassade utskriftsområden. + +Nästa steg? Försök kedja denna exportör med en e‑posttjänst för att skicka PNG‑filen automatiskt, eller experimentera med `ImageOrPrintOptions` för att generera PDF‑filer istället för PNG. Samma mönster fungerar för **convert excel to image**‑uppgifter över många format. + +Har du fler frågor? Lämna en kommentar, 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/converting-excel-files-to-other-formats/_index.md b/cells/swedish/net/converting-excel-files-to-other-formats/_index.md index 20c5cd31b2..1396f99359 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 @@ -66,6 +66,8 @@ Lär dig hur du sparar en arbetsbok i Strict Open XML Spreadsheet-formatet med h beskrivning: Lär dig hur du spårar dokumentkonverteringsförloppet programmatiskt med hjälp av Aspose.Cells för .NET i den här detaljerade handledningen. ### [Programmatiskt spåra dokumentkonverteringsförlopp för TIFF i .NET](./tracking-document-conversion-progress-for-tiff/) Lär dig att spåra TIFF-konverteringsförloppet programmatiskt med Aspose.Cells för .NET med vår steg-för-steg-guide. Förbättra dina dokumenthanteringsfärdigheter. +### [Spara Excel som Docx med C# – Komplett steg‑för‑steg‑guide](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Lär dig hur du sparar en Excel-arbetsbok som ett DOCX-dokument med C# med en komplett steg‑för‑steg‑guide. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/swedish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..a94b9eea83 --- /dev/null +++ b/cells/swedish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Spara Excel som Docx i C# — lär dig hur du konverterar Excel till Word, + bäddar in diagram och laddar Excel‑arbetsbok i C# med Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: sv +og_description: Spara Excel som Docx i C# förklaras i den första meningen. Följ den + här handledningen för att konvertera Excel till Word, bädda in diagram och ladda + Excel‑arbetsbok i C#. +og_title: Spara Excel som Docx med C# – Komplett guide +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Spara Excel som Docx med C# – Komplett steg‑för‑steg‑guide +url: /sv/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Spara Excel som Docx med C# – Komplett steg‑för‑steg‑guide + +Har du någonsin behövt **save Excel as Docx** men varit osäker på var du ska börja? Du är inte ensam—många utvecklare stöter på samma hinder när de vill *convert Excel to Word* samtidigt som diagrammen behålls intakta. I den här handledningen går vi igenom den exakta koden du behöver, förklarar varför varje rad är viktig och visar hur du kan bädda in Excel‑diagram utan att förlora kvalitet. + +Vi kommer också att strö in några extra tips om **load Excel workbook C#**‑scenarier, så att du i slutet känner dig bekväm med att konvertera Excel till Docx i vilket .NET‑projekt som helst. Inga vaga referenser, bara ett konkret, körbart exempel som du kan kopiera‑klistra in direkt. + +--- + +## Vad den här guiden täcker + +- Laddar en befintlig `.xlsx`‑fil med Aspose.Cells (eller något kompatibelt bibliotek). +- Valfri manipulation av arbetsblad eller diagram innan konvertering. +- Sparar arbetsboken som en `.docx`‑fil samtidigt som inbäddade diagram bevaras. +- Verifierar resultatet och hanterar vanliga kantfall som stora arbetsböcker eller ej stödjade diagramtyper. + +Om du undrar **why you’d want to convert Excel to Docx**, tänk på rapporter du behöver skicka till icke‑tekniska intressenter—Word‑dokument är universellt accepterade och de behåller den visuella kvaliteten på dina diagram. Låt oss dyka ner. + +--- + +## Förutsättningar – Load Excel Workbook C# + +Innan vi skriver någon kod, se till att du har följande: + +| Requirement | Reason | +|-------------|--------| +| **.NET 6.0 or later** | Modern runtime, bättre prestanda och fullt stöd för Aspose.Cells. | +| **Aspose.Cells for .NET** (NuGet package `Aspose.Cells`) | Tillhandahåller `Workbook`‑klassen som används för att läsa Excel och exportera till DOCX. | +| **Visual Studio 2022** (or any IDE you prefer) | Praktiskt för felsökning och IntelliSense. | +| **An Excel file with charts** (`AdvancedCharts.xlsx`) | För att se *embed excel charts*-funktionen i praktiken. | + +Du kan installera biblioteket via Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** Om du kör i en CI/CD‑pipeline, lägg till paketet i din `*.csproj` så att återställningar sker automatiskt. + +--- + +## Steg 1 – Ladda Excel‑arbetsboken (Save Excel as Docx börjar här) + +Det första vi gör är att ladda källarbetsboken. Det är här frasen **load excel workbook c#** kommer in i bilden. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Why this matters:** Att ladda filen ger dig åtkomst till varje arbetsblad, diagram och stil. Utan detta steg finns det inget att konvertera, och API‑et kan inte bevara dina inbäddade grafik. + +--- + +## Steg 2 – (Valfritt) Justera arbetsboken före konvertering + +Du kanske vill byta namn på ett blad, dölja en kolumn eller till och med ändra ett diagramtitel. Detta steg är valfritt men visar hur flexibel konverteringen kan vara. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Edge case:** Vissa äldre diagramtyper (t.ex. Radar) kanske inte renderas perfekt i Word. Testa dina specifika diagram efter konvertering. + +--- + +## Steg 3 – Spara arbetsboken som ett Word‑dokument (Kärn‑“Save Excel as Docx”-åtgärden) + +Nu kommer sanningsögonblicket: vi **save Excel as Docx** faktiskt. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +När detta körs skriver Aspose.Cells varje arbetsblad som en tabell i Word‑filen och bäddar in varje diagram som en högupplöst bild. Resultatet är en fullt redigerbar `.docx` som ser exakt ut som den ursprungliga Excel‑vyn. + +> **Why choose DOCX over PDF?** DOCX låter mottagare redigera text eller byta ut diagram senare, medan PDF är ett statiskt ögonblicksbild. + +--- + +## Steg 4 – Verifiera resultatet och felsök vanliga problem + +Efter konverteringen är klar, öppna `ChartsInWord.docx` i Microsoft Word: + +1. **Kontrollera att varje arbetsblad visas som ett separat avsnitt** – du bör se tabeller som speglar dina Excel‑data. +2. **Bekräfta att diagrammen är inbäddade** – de ska vara valbara bilder, inte trasiga platshållare. +3. **Om ett diagram saknas**, se till att diagramtypen stöds av Aspose.Cells (se den [official compatibility list](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tip:** För stora arbetsböcker, överväg att öka `MemorySetting` i Aspose.Cells för att undvika `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Fullt fungerande exempel (Kopiera‑klistra redo) + +Nedan är det kompletta programmet, redo att kompileras. Ersätt `YOUR_DIRECTORY` med den faktiska mappvägen på din maskin. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Expected result:** Ett Word‑dokument (`ChartsInWord.docx`) som innehåller alla arbetsblad som tabeller och varje diagram som en inbäddad, högupplöst bild. Öppna det i Word, så ser du exakt den visuella layouten du hade i Excel. + +--- + +## Vanliga frågor (FAQ) + +**Q: Kan jag konvertera flera Excel‑filer i en loop?** +A: Absolut. Packa in konverteringslogiken i en `foreach (var file in Directory.GetFiles(...))`‑loop och återanvänd samma `Workbook`‑instansmönster. + +**Q: Fungerar detta också med `.xls`‑filer?** +A: Ja—Aspose.Cells stödjer äldre format. Byt bara källfilens filändelse; samma `SaveFormat.Docx`‑anrop gäller. + +**Q: Vad händer om jag behöver behålla formler vid konvertering?** +A: Word stödjer inte Excel‑formler nativt. Konverteringen plattar till formler till deras beräknade värden. Om du behöver levande beräkningar, överväg att bädda in arbetsboken som ett OLE‑objekt istället. + +**Q: Finns det ett sätt att styra bildupplösningen för diagram?** +A: Använd `ImageOrPrintOptions` innan du sparar: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Bädda in Excel‑diagram direkt i Word (Utöver Save Excel as Docx) + +Om du föredrar att diagrammet ska förbli redigerbart i Word, kan du bädda in hela Excel‑bladet som ett OLE‑objekt: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Denna teknik *embed excel charts* som levande objekt, så att slutanvändare kan dubbelklicka för att redigera dem i Excel direkt från Word. Det är ett praktiskt alternativ när du behöver interaktivitet. + +--- + +## Slutsats + +Du har nu en solid, helhetslösning för **save Excel as docx** med C#. Handledningen täckte inläsning av arbetsboken, valfria justeringar, själva sparåtgärden, verifieringssteg och även en snabb titt på att bädda in diagram för redigerbara scenarier. Genom att följa koden ovan kan du **convert Excel to Word**, bevara varje diagram och hantera stora filer smidigt. + +Redo för nästa utmaning? Prova att automatisera en batch‑konvertering, integrera denna logik i ett ASP.NET Core‑API, eller utforska **convert Excel to docx** för flerdelade dashboards. De färdigheter du just har lärt dig är en grund för alla dokument‑automatiseringsprojekt. + +Har du frågor eller en knepig arbetsbok som vägrar konverteras? Lämna en kommentar så felsöker vi tillsammans. Lycka till med kodandet! + +![Diagram som visar flödet från Excel‑arbetsbok till Word DOCX‑fil – save excel as docx‑processillustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx arbetsflöde") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..3a9a5cb8bc 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 man sparar XLSB – Lägg till anpassad egenskap i C#](./how-to-save-xlsb-add-custom-property-in-c/) +Lär dig hur du sparar en XLSB-fil och lägger till en anpassad egenskap med C# och Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/swedish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..b39beb039c --- /dev/null +++ b/cells/swedish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: Lär dig hur du sparar xlsb‑filer i C# samtidigt som du lägger till en + anpassad egenskap som ProjectId. Den här guiden visar hur du skapar en Excel‑arbetsbok, + lägger till en anpassad egenskap och verifierar den. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: sv +og_description: Upptäck hur du sparar xlsb‑filer och lägger till en anpassad egenskap + som ProjectId med C#. Steg‑för‑steg‑guide med komplett kod. +og_title: Hur man sparar XLSB – Lägg till en anpassad egenskap i C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Hur man sparar XLSB – Lägg till anpassad egenskap i C# +url: /sv/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man sparar XLSB – Lägg till anpassad egenskap i C# + +Har du någonsin funderat **hur man sparar xlsb**‑filer samtidigt som du gömmer lite metadata? Kanske bygger du en rapportmotor som behöver ett dolt ProjectId, eller så vill du bara märka kalkylblad för efterföljande bearbetning. **Hur man sparar xlsb** är ingen raketfysik, men att kombinera det med en anpassad egenskap ger en liten twist som många utvecklare missar. + +I den här handledningen går vi igenom hur du skapar en Excel‑arbetsbok, lägger till en anpassad egenskap (ja, *add custom property*), sparar filen som en **XLSB**‑binär arbetsbok och slutligen laddar den igen för att bevisa att egenskapen finns kvar. På vägen berör vi också **how to add custom property**‑värden som ett ProjectId, så att du får ett återanvändbart mönster för framtida projekt. + +> **Proffstips:** Om du redan använder Aspose.Cells‑biblioteket (koden nedan gör det) får du inbyggt stöd för anpassade egenskaper utan några COM‑interop‑bekymmer. + +--- + +## Förutsättningar + +- .NET 6+ (eller .NET Framework 4.6+). +- Aspose.Cells för .NET – installera via NuGet: `Install-Package Aspose.Cells`. +- Grundläggande C#‑kunskaper – inget avancerat, bara några `using`‑satser. + +Det är allt. Ingen Office‑installation, ingen interop, bara ren managed code. + +--- + +## Steg 1: Hur man sparar XLSB – Skapa Excel‑arbetsbok + +Det allra första du måste göra är att skapa ett nytt workbook‑objekt. Tänk på det som att öppna en tom Excel‑fil som bara lever i minnet tills du bestämmer dig för att skriva den till disk. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Varför börja med en arbetsbok? För att **create excel workbook** är grunden för all vidare manipulation—oavsett om du senare lägger in formler, diagram eller anpassade egenskaper. `Workbook`‑klassen abstraherar hela filen, medan `Worksheets` ger dig åtkomst till enskilda flikar. + +--- + +## Steg 2: Lägg till anpassad egenskap på kalkylbladet + +Nu kommer den roliga delen—**add custom property**. I Aspose.Cells kan du fästa en egenskap direkt på ett kalkylblad (eller på arbetsboken själv). Här sparar vi ett numeriskt ProjectId som efterföljande tjänster kan läsa utan att röra de synliga cellerna. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? Anropa bara `CustomProperties.Add(name, value)`. API‑et hanterar automatiskt den underliggande XML‑strukturen, så du behöver inte bekymra dig om lågnivådetaljer. Detta är det säkraste sättet att bädda in metadata som inte är synlig för slutanvändaren. + +--- + +## Steg 3: Spara arbetsboken som XLSB + +När arbetsboken är klar och den anpassade egenskapen är bifogad är det dags att **how to save xlsb**. XLSB‑formatet lagrar data i en binär representation, vilket vanligtvis är mindre och snabbare att öppna än det klassiska XLSX. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Att spara som XLSB är så enkelt som att skicka `SaveFormat.Xlsb` till `Save`‑metoden. Om du undrar om detta tar bort den anpassade egenskapen—var säker, Aspose.Cells bevarar både arbetsboks‑ och kalkylbladsnivå‑egenskaper i den binära filen. + +--- + +## Steg 4: Verifiera den anpassade egenskapen + +En god vana är att läsa in filen igen och bekräfta att egenskapen överlevde rundresan. Detta visar också **how to add custom property** i efterhand om du behöver uppdatera den. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Om konsolen skriver ut `12345` har du framgångsrikt **how to save xlsb** *och* **add project id** i ett svep. Egenskapen lever i filens interna metadata, osynlig i UI men fullt läsbar av kod. + +--- + +## Extra tips: Lägg till flera egenskaper & kantfall + +### Lägg till fler än en egenskap + +Du kan stapla hur många egenskaper du vill: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Uppdatera en befintlig egenskap + +Om en egenskap redan finns, tilldela bara ett nytt värde: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Hantera saknade egenskaper + +Att försöka läsa en icke‑existerande egenskap kastar ett `KeyNotFoundException`. Skydda dig mot det: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Versionskompatibilitet + +XLSB fungerar i Excel 2007 + och i webbversionen av Excel. Äldre Office‑versioner (< 2007) kan dock inte öppna XLSB‑filer. Om du behöver bredare kompatibilitet, överväg att spara en andra kopia som XLSX. + +### Prestandaöverväganden + +Binära XLSB‑filer är typiskt 30‑50 % mindre än XLSX, och de laddas snabbare. För stora datamängder (hundratusentals rader) kan hastighetsvinsten bli märkbar. + +--- + +## Fullt fungerande exempel + +Nedan är hela programmet som du kan kopiera‑klistra in i ett konsolprojekt. Det innehåller alla steg, felhantering och kommentarer du behöver för att komma igång direkt. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Förväntad output** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Om du ser ovanstående har du bemästrat **how to save xlsb**, **add custom property**, och **add project id**—allt i ett snyggt, återanvändbart kodstycke. + +--- + +## Vanliga frågor + +**Q: Fungerar detta med .NET Core?** +A: Absolut. Aspose.Cells är .NET Standard‑kompatibelt, så samma kod körs på .NET 5/6/7 och på .NET Framework. + +**Q: Kan jag lägga till en anpassad egenskap på hela arbetsboken istället för ett enskilt blad?** +A: Ja. Använd `workbook.CustomProperties.Add("Key", value);` för att fästa den på arbetsboksnivå. + +**Q: Vad händer om jag behöver lagra en stor sträng (t.ex. JSON) som egenskap?** +A: API‑et accepterar strängar av godtycklig längd, men tänk på att extremt stora blobbar kan öka filstorleken. För massiva data, överväg ett dolt blad istället. + +**Q: Är den anpassade egenskapen synlig i Excels UI?** +A: Inte direkt. Användare kan se den via **File → Info → Properties → Advanced Properties → Custom**, men den visas inte i rutnätet. + +--- + +## Slutsats + +Vi har gått igenom **how to save xlsb**‑filer i C# samtidigt som vi **add custom property** som ett ProjectId. Genom att följa det steg‑för‑steg‑mönster—**create excel workbook**, **add custom property**, **save as XLSB**, och **verify**—har du nu ett gediget, citeringsvärt referensmaterial som fungerar både för sökmotorer och AI‑assistenter. + +Nästa steg kan vara att utforska: + +- **How to add custom property** till flera kalkylblad i en loop. +- Exportera data från en DataTable till arbetsboken innan du sparar. +- Kryptera XLSB‑filen för extra säkerhet. + +Känn dig fri att experimentera, justera egenskapsnamnen eller byta det binära formatet mot XLSX om du behöver bredare kompatibilitet. Har du ett knepigt scenario? Lämna en kommentar så hjälper vi dig att felsöka. Lycka till med kodandet! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/swedish/net/excel-autofilter-validation/_index.md index 5bf206445b..058b9c31ac 100644 --- a/cells/swedish/net/excel-autofilter-validation/_index.md +++ b/cells/swedish/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Vår handledning om [Decimaldatavalidering i Excel](./decimal-data-validation-in Lär dig hur du enkelt autofiltrerar Excel-rader med Aspose.Cells i .NET med den här omfattande steg-för-steg-guiden. ### [Decimaldatavalidering i Excel](./decimal-data-validation-in-excel/) Upptäck hur du implementerar decimaldatavalidering i Excel med Aspose.Cells för .NET med vår lättförståeliga guide. Förbättra dataintegriteten utan ansträngning. +### [Ta bort autofilter från Excel – Komplett C#-guide](./remove-autofilter-from-excel-complete-c-guide/) +Lär dig hur du tar bort autofilter i Excel med Aspose.Cells för .NET i en komplett C#-guide. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/swedish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..3f8b70d07d --- /dev/null +++ b/cells/swedish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: Lär dig hur du tar bort AutoFilter från Excel med C#. Denna steg‑för‑steg‑guide + visar också hur du tar bort AutoFilter, stänger av AutoFilter i Excel och rensar + filter i en Excel‑tabell. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: sv +og_description: Ta bort AutoFilter från Excel med C#. Den här handledningen visar + hur du tar bort AutoFilter, stänger av AutoFilter i Excel och rensar filter i en + Excel‑tabell med bara några rader kod. +og_title: Ta bort AutoFilter från Excel – Komplett C#‑guide +tags: +- C# +- Aspose.Cells +- Excel automation +title: Ta bort AutoFilter från Excel – Komplett C#‑guide +url: /sv/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ta bort AutoFilter från Excel – Komplett C#-guide + +Har du någonsin behövt **remove AutoFilter from Excel** men var osäker på vilket API‑anrop som faktiskt inaktiverar det? Du är inte ensam. I många rapporteringspipelineer blir filter‑UI:t i vägen för efterföljande bearbetning, så att rensa det är ett vanligt krav. I den här handledningen går vi igenom en kortfattad, produktionsklar lösning som inte bara visar **how to delete AutoFilter**, utan också förklarar **turn off AutoFilter Excel**‑stilsfilter, och hur man **clear Excel table filter** helt. + +> **What you’ll walk away with:** ett färdigt C#‑program som laddar en befintlig arbetsbok, tar bort filtret från den första tabellen och sparar en ny kopia utan några kvarvarande UI‑element. + +## Förutsättningar + +- .NET 6+ (eller .NET Framework 4.7.2+) +- **Aspose.Cells**‑paketet från NuGet (API‑et vi använder i koden) +- En exempelarbetsbok (`TableWithFilter.xlsx`) som redan innehåller en tabell med ett AutoFilter‑filter tillämpat +- En grundläggande förståelse för C#‑syntax (ingen djup Excel‑intern kunskap krävs) + +Om du har detta, låt oss dyka in. + +--- + +## Steg 1 – Installera Aspose.Cells och konfigurera projektet + +Innan någon kod körs behöver du biblioteket som ger oss klasserna `Workbook`, `Worksheet` och `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Proffstips:** Använd den kostnadsfria utvärderingsversionen för testning; kom bara ihåg att sätta licensnyckeln innan du levererar till produktion. + +### Varför detta är viktigt +Aspose.Cells abstraherar den lågnivå OOXML‑hanteringen, så vi kan manipulera tabeller, filter och stilar utan att själva parsra XML. Det är därför **remove autofilter from excel**‑uppgifter blir en endaste rad istället för en handfull XML‑manipulationer. + +--- + +## Steg 2 – Ladda arbetsboken som innehåller tabellen + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +`Workbook`‑objektet representerar hela Excel‑filen. Att ladda den först säkerställer att vi har en ren kopia i minnet att arbeta med, vilket är avgörande när du senare **clear excel table filter** utan att påverka andra blad. + +--- + +## Steg 3 – Hämta kalkylbladet och mål‑tabellen + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +En **ListObject** är Asposes term för en Excel‑tabell. Även om ditt blad har flera tabeller kan du loopa igenom `worksheet.ListObjects` och tillämpa samma logik på var och en. Denna flexibilitet svarar på frågan “vad händer om jag har flera tabeller?” som många utvecklare ställer. + +--- + +## Steg 4 – Ta bort AutoFilter från tabellen + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Att sätta `AutoFilter` till `null` **tar bort filterobjektet helt**, vilket är det mest pålitliga sättet att **how to delete autofilter**. Den alternativa egenskapen `ShowAutoFilter` döljer bara UI:t men lämnar filtermotorn aktiv – användbart om du bara vill **turn off autofilter excel** visuellt samtidigt som du bevarar de underliggande kriterierna. + +> **Edge case:** Om tabellen inte har ett AutoFilter tillämpat kommer `table.AutoFilter` redan vara `null`. Raden ovan är säker; den gör helt enkelt ingenting. + +--- + +## Steg 5 – Spara den modifierade arbetsboken + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Att spara till en ny fil behåller originalet intakt – en bästa praxis när du automatiserar Excel‑transformeringar. Efter att programmet har körts, öppna `NoAutoFilter.xlsx`; du kommer att se tabellen utan några filter‑rullgardinsmenyer, vilket bekräftar att **remove excel table filter**‑operationen lyckades. + +--- + +## Verifiera resultatet – Vad du kan förvänta dig + +1. **Öppna `NoAutoFilter.xlsx`** i Excel. +2. **Markera tabellen** – de små trattikonerna bredvid kolumnrubrikerna bör vara borta. +3. **Kontrollera andra blad** – de förblir orörda, vilket bevisar att vi bara **clear excel table filter** på det avsedda bladet. + +Om ikonerna fortfarande finns där, dubbelkolla att du riktade in dig på rätt `ListObject`‑index. Kom ihåg att Excel‑tabeller är nollbaserade i Aspose, så `ListObjects[0]` är den första tabellen på bladet. + +--- + +## Hantera flera tabeller eller kalkylblad + +Ibland behöver du **remove autofilter from excel**‑arbetsböcker som innehåller flera tabeller över olika blad. Här är ett snabbt tillägg: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Denna loop garanterar att **turn off autofilter excel** överallt, vilket eliminerar dolda filter som kan störa efterföljande dataimport. + +--- + +## Vanliga fallgropar & hur du undviker dem + +| Fallgropar | Varför det händer | Lösning | +|------------|-------------------|---------| +| **Filter kvar efter sparning** | Användning av `ShowAutoFilter = false` döljer bara UI. | Använd `table.AutoFilter = null` för att verkligen ta bort det. | +| **Fel tabellindex** | Antagandet att den första tabellen är den du behöver. | Inspektera `worksheet.ListObjects.Count` och använd meningsfulla namn (`tbl.Name`). | +| **Saknad licens** | Utvärderingsversionen kan infoga vattenstämplar. | Registrera din licens tidigt: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Fil låst** | Excel har fortfarande källfilen öppen. | Säkerställ att arbetsboken är stängd i Excel innan du kör skriptet. | + +--- + +## Bonus: Lägg till ett AutoFilter igen (om du ändrar dig) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Att ha den omvända operationen till hands gör handledningen till en komplett lösning för både **remove autofilter from excel** och **how to delete autofilter**‑scenarier. + +--- + +## Fullt fungerande exempel (klar att kopiera och klistra in) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Att köra koden ovan kommer att **remove autofilter from excel** för varje tabell i arbetsboken, vilket ger dig en ren start för vidare bearbetning. + +--- + +## Slutsats + +Vi har precis gått igenom allt du behöver för att **remove autofilter from excel** med C#. Från att installera Aspose.Cells, ladda arbetsboken, hitta tabellen, faktiskt ta bort filtret, till att spara den rena filen – varje steg förklarades med “varför” bakom det. Du vet nu hur du **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel**, och **clear excel table filter** i ett enda återanvändbart kodstycke. + +Redo för nästa utmaning? Prova att automatisera tillägget av villkorsstyrd formatering, eller utforska hur du **add an AutoFilter back** programatiskt. Båda ämnena bygger direkt på de koncept vi just gått igenom och kommer att göra din Excel‑automatiseringsverktygslåda ännu rikare. + +Har du frågor, eller har du upptäckt ett scenario vi inte täckte? Lämna en kommentar nedan – happy coding! + +--- + +![Screenshot showing an Excel sheet without any filter dropdowns – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/swedish/net/excel-comment-annotation/_index.md index 02e0f9d5fc..03dab0255f 100644 --- a/cells/swedish/net/excel-comment-annotation/_index.md +++ b/cells/swedish/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Lär dig hur du lägger till kommentarer med bilder i Excel med Aspose.Cells fö Lär dig hur du lägger till kommentarer i celler i Excel med Aspose.Cells för .NET. Steg-för-steg-guide för nybörjare för att förbättra Excels funktionalitet. ### [Formatera kommentarer - Teckensnitt, färg, justering](./format-comments-font-color-alignment/) Upptäck hur du enkelt formaterar Excel-kommentarer med Aspose.Cells för .NET. Anpassa teckensnitt, storlek och justering för att förbättra dina kalkylblad. +### [Skapa Excel-arbetsbok i C# – Lägg till och fyll kommentarer med smarta markörer](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Lär dig hur du skapar en Excel-arbetsbok i C# och använder smarta markörer för att lägga till och fylla kommentarer. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/swedish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..6790715b12 --- /dev/null +++ b/cells/swedish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-03-21 +description: Skapa Excel‑arbetsbok i C# och lär dig hur du lägger till kommentarer + i Excel, fyller i kommentarer automatiskt med Smart Markers. Steg‑för‑steg‑guide + för utvecklare. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: sv +og_description: Skapa en Excel-arbetsbok i C# och snabbt lägga till en kommentar i + Excel, sedan fylla i kommentaren med Smart Markers. Komplett handledning med kod. +og_title: Skapa Excel‑arbetsbok C# – Lägg till och fyll i kommentarer +tags: +- C# +- Excel automation +- Aspose.Cells +title: Skapa Excel-arbetsbok i C# – Lägg till och fyll kommentarer med smarta markörer +url: /sv/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa Excel-arbetsbok C# – Lägg till och fyll kommentarer med Smart Markers + +Har du någonsin behövt **create Excel workbook C#** och undrat hur du bäddar in en kommentar som uppdateras automatiskt? Du är inte ensam. I många rapporteringsscenarier vill du ha en cellkommentar som säger *“Created by Alice on 2024‑07‑15”* utan att hårdkoda namn eller datum varje gång. + +I den här handledningen visar vi dig exakt **how to add comment to Excel**, sedan **how to fill comment** med Aspose.Cells Smart Markers. I slutet har du ett färdigt program som skapar en arbetsbok, injicerar en dynamisk kommentar och sparar filen—allt i några enkla steg. + +> **What you’ll get:** en komplett, kompilerbar C#-konsolapp, en förklaring av varje rad, tips för vanliga fallgropar och idéer för att utöka lösningen. + +## Förutsättningar + +- .NET 6.0 SDK eller senare (koden fungerar även med .NET Core och .NET Framework) +- Visual Studio 2022 eller någon IDE du föredrar +- **Aspose.Cells for .NET** NuGet‑paket (`Install-Package Aspose.Cells`) – detta bibliotek driver klasserna `Workbook`, `Worksheet` och `SmartMarkerProcessor` som används nedan. +- Grundläggande kunskap om C#‑syntax – om du har skrivit en `Console.WriteLine` är du redo att köra. + +Nu när grunderna är lagda, låt oss dyka in. + +![Skapa Excel-arbetsbok C# exempel skärmbild](excel-workbook.png "Skapa Excel-arbetsbok C# exempel") + +## Steg 1: Initiera en ny arbetsbok – Grunder för Create Excel Workbook C# + +Först behöver vi ett rent arbetsboksobjekt. Tänk på `Workbook` som en tom duk; utan den kan du inte placera några celler, rader eller kommentarer. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Why this matters:** `Workbook` skapar automatiskt ett standardblad, så du behöver inte anropa `Add` om du inte behöver extra flikar. Att komma åt `Worksheets[0]` är det snabbaste sättet att börja fylla data. + +## Steg 2: Infoga en Smart Marker‑kommentar – Hur man lägger till kommentar med token + +Därefter placerar vi en kommentar i cell **B2** som innehåller Smart Marker‑token (`«UserName»` och `«CreatedDate»`). Dessa token kommer att ersättas senare med faktiska värden. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Explanation:** +- `CreateComment()` skapar kommentarsobjektet om det inte finns; annars returneras det befintliga. +- `Note`‑egenskapen innehåller den synliga texten. Genom att omsluta platshållarna med `« »` talar vi om för Aspose.Cells att de är **Smart Markers** – platshållare som kan bytas ut på ett svep. + +> **Pro tip:** Om du behöver en flerradig kommentar, använd `\n` i strängen, t.ex. `"Line1\nLine2"`. + +## Steg 3: Förbered dataobjektet – Hur man fyller kommentar dynamiskt + +Smart Markers behöver en datakälla. I C# är det enklaste sättet en anonym typ som matchar platshållarnamnen. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Why an anonymous type?** +Den är lättviktig, kräver ingen extra klassfil och matchar egenskapsnamnen (`UserName`, `CreatedDate`) exakt till token‑namnen. Om du föredrar en starkt typad modell, skapa bara en klass med samma egenskaper. + +## Steg 4: Bearbeta Smart Markers – Hur man fyller kommentar med dataobjektet + +Nu händer magin. `SmartMarkerProcessor` skannar arbetsboken efter alla `«…»`‑token och byter dem mot värden från `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**What’s under the hood?** +`SmartMarkerProcessor` går igenom varje cell, kommentar, rubrik osv., och letar efter `«Token»`‑mönstret. När den hittar ett, använder den reflection för att läsa den matchande egenskapen från `markerData` och skriver tillbaka värdet. Inga manuella loopar behövs. + +## Steg 5: Spara arbetsboken – Fyll Excel‑kommentar och spara filen + +Till sist skriver vi arbetsboken till disk. Kommentaren visar nu något i stil med *“Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Result verification:** Öppna `CommentFilled.xlsx` i Excel, håll musen över cell **B2**, så ser du kommentaren med det faktiska användarnamnet och tidsstämpeln. Inga ytterligare kodändringar behövs för framtida körningar—byt bara värdena i `markerData`. + +--- + +## Vanliga variationer & kantfall + +### Använd ett anpassat datumformat + +Om du vill ha datumet i formatet `yyyy‑MM‑dd`, justera dataobjektet: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Lägg till flera kommentarer + +Du kan upprepa **Step 2** för andra celler. Varje kommentar kan ha sin egen uppsättning token, eller dela samma om informationen är generell. + +### Arbeta med befintliga arbetsböcker + +Istället för `new Workbook()`, ladda en befintlig fil: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Resten av stegen är identiska—Smart Markers fungerar både på nya och befintliga filer. + +### Hantera null‑värden + +Om en token kan saknas, omslut egenskapen med en nullable‑typ eller ange ett reservvärde: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +Processorn kommer att infoga *“Unknown”* när källan är `null`. + +--- + +## Fullt fungerande exempel (Klar att kopiera och klistra in) + +Nedan är **hela programmet** som du kan klistra in i ett konsolapp‑projekt och köra omedelbart (byt bara ut `YOUR_DIRECTORY` mot en riktig sökväg). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Kör programmet, öppna den genererade filen, så ser du den dynamiska kommentaren i cell **B2**. Enkelt, eller? + +--- + +## Vanliga frågor (FAQ) + +**Q: Fungerar detta med .NET Framework 4.7?** +A: Absolut. Aspose.Cells stödjer .NET Framework 4.0+ och .NET Core/5/6/7. Referera bara rätt DLL eller NuGet‑paket. + +**Q: Kan jag använda detta tillvägagångssätt för datavalidering eller villkorsstyrd formatering?** +A: Smart Markers är främst för att infoga värden i celler, kommentarer, rubriker och sidfötter. För villkorsstyrd formatering använder du fortfarande de vanliga `Style`‑API:erna. + +**Q: Vad händer om jag behöver lägga till en kommentar i ett **annat** arbetsblad?** +A: Hämta mål‑arbetsbladet (`workbook.Worksheets["MySheet"]`) och upprepa **Step 2** på det bladets celler. + +## Nästa steg & relaterade ämnen + +- **How to add comment to Excel** programatiskt för flera celler (loopa genom ett område). +- **Fill Excel comment** med data från en databas (använd en `DataTable` som datakälla för Smart Markers). +- Utforska **Smart Marker arrays** för att generera tabeller automatiskt. +- Lär dig om **Aspose.Cells styling** för att formatera kommentarens teckensnitt, färg och storlek. + +Experimentera med kodsnuttarna, byt ut datakällan, så kommer du snabbt att bemästra **how to fill comment** i alla Excel‑automatiseringsscenarier. + +--- + +### Sammanfattning + +Vi har just gått igenom hela processen för **create excel workbook c#**, **add comment to excel**, och **fill excel comment** med Smart Markers. Lösningen är kompakt, återanvändbar och klar för produktion. + +Prova den, justera platshållarna, och låt biblioteket sköta det tunga arbetet. Om du stöter på problem, lämna en kommentar nedan—lycklig kodning! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..c7031cd9c3 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,8 @@ 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. +### [Ange cellens anpassade format i C# – Komplett guide för att skriva & läsa datum i Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Lär dig hur du ställer in anpassade datumformat i Excel-celler med C# och både skriver och läser datum korrekt. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/swedish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..fb8992e746 --- /dev/null +++ b/cells/swedish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,208 @@ +--- +category: general +date: 2026-03-21 +description: Ställ in anpassat cellformat i C# och lär dig hur du skriver datum till + Excel, tillämpar anpassat datumformat, läser DateTime från Excel och skapar arbetsbok/arbetsblad + snabbt. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: sv +og_description: Ställ in anpassat cellformat i C# för att skriva datum till Excel, + tillämpa anpassat datumformat, läsa DateTime från Excel och enkelt skapa ett arbetsblad + i arbetsboken. +og_title: Ange anpassat cellformat i C# – Skriv och läs datum i Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Ställ in anpassat cellformat i C# – Komplett guide för att skriva och läsa + datum i Excel +url: /sv/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ange anpassat cellformat – Skriva & läsa datum i Excel med C# + +Har du någonsin behövt **ange anpassat cellformat** i en Excel‑fil från C# men inte vetat var du ska börja? Du är inte ensam. I många rapportverktyg eller data‑exportverktyg måste datum visas i ett specifikt språk‑ eller regionformat – tänk japanska era‑datum, räkenskapskalendrar eller ISO‑8601‑strängar. + +I den här handledningen går vi igenom ett **komplett, körbart exempel** som visar hur du **skriver datum till Excel**, **tillämpar anpassat datumformat**, **läser DateTime från Excel** och **skapar arbetsbok och kalkylblad** med Aspose.Cells. När du är klar har du ett enda, självständigt program som du kan släppa in i vilket .NET‑projekt som helst. + +## Vad du kommer att lära dig + +- Hur du **skapar arbetsbok och kalkylblad** programatiskt. +- De exakta stegen för att **skriva datum till Excel** med en regionsspecifik sträng. +- Hur du **tillämpar anpassat datumformat** (inklusive japansk era‑notation). +- Hur du **läser DateTime från Excel** tillbaka till ett `DateTime`‑objekt. +- Tips, fallgropar och variationer du kan stöta på när du arbetar med Excel‑datum. + +Ingen extern dokumentation behövs – allt du behöver finns här. + +## Förutsättningar + +- .NET 6.0 eller senare (koden fungerar också på .NET Framework 4.7+). +- Aspose.Cells för .NET installerat via NuGet (`Install-Package Aspose.Cells`). +- Grundläggande förståelse för C#‑syntax – inget avancerat. + +> **Pro tip:** Om du använder Visual Studio, aktivera *nullable reference types* för att fånga subtila buggar tidigt. + +## Steg 1: Skapa en arbetsbok och ett kalkylblad + +Först och främst: du behöver ett arbetsboksobjekt som representerar Excel‑filen, och ett kalkylblad där datan ska ligga. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Varför detta är viktigt:* Klassen `Workbook` är startpunkten för alla Excel‑operationer. Att skapa den i minnet betyder att du aldrig rör filsystemet förrän du explicit sparar, vilket gör processen snabb och testvänlig. + +## Steg 2: Skriva datum till Excel + +Nästa steg är att placera en japansk era‑datumsträng (`"R02-04-01"`) i cell **A1**. Strängen efterliknar Reiwa‑eran (år 2, april 1). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Vad som händer:* `PutValue` lagrar den råa strängen. Aspose.Cells kommer senare att försöka tolka den baserat på cellens stil. Om du hoppar över detta steg och skriver ett `DateTime`‑värde direkt förlorar du den era‑information du vill visa. + +## Steg 3: Tillämpa det inbyggda datum‑nummerformatet (ID 14) + +Excel har ett inbyggt datumformat med ID 14 (`mm-dd-yy`). Att tillämpa det talar om för motorn att cellen **innehåller ett datum**, inte bara text. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Varför använda ID 14?* Det är det universella “kort datum”-formatet som säkerställer att Excel behandlar innehållet som ett datumvärde, vilket är ett förutsättningskrav för att någon anpassad format ska fungera korrekt. + +## Steg 4: Ange ett anpassat format för att visa japansk era‑notation + +Nu blir det roligt: vi säger åt Excel att rendera datumet med japansk era‑format. Den anpassade strängen `[$-ja-JP]ggge年m月d日` gör exakt det. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Förklaring:* +- `[$-ja-JP]` tvingar språkinställningen till japanska. +- `ggg` är erans namn (t.ex. “R” för Reiwa). +- `e` är erårets siffra. +- `年`, `月`, `日` är bokstavliga japanska tecken för år, månad, dag. + +Om du behöver ett annat språk, byt helt enkelt ut `ja-JP` mot rätt kulturskod (t.ex. `en-US`). + +## Steg 5: Hämta det tolkade DateTime‑värdet + +Till sist läser vi det **faktiska `DateTime`‑värdet** som Excel har tolkat från cellen. Detta bevisar att strängen tolkades korrekt. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Resultat:* Konsolen skriver ut `Parsed DateTime: 2020-04-01`. Trots att vi angav en japansk era‑sträng lagrar Excel internt det gregorianska datumet, vilket du kan använda för beräkningar, jämförelser eller vidare export. + +## Steg 6: Spara arbetsboken (valfritt) + +Om du vill se den formaterade arbetsboken i Excel, spara den bara till disk. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Öppna den genererade **JapaneseEraDate.xlsx** så ser du att cell **A1** visar `R02年4月1日` (det exakta japanska era‑formatet vi satte). + +![ange anpassat cellformat exempel](image-placeholder.png "Excel‑cell som visar japanskt era‑datum – ange anpassat cellformat") + +*Alt‑texten ovan innehåller huvudnyckelordet och uppfyller bild‑SEO‑kravet.* + +## Vanliga variationer & kantfall + +### Skriva ett annat datumformat + +Om du föredrar ISO‑8601 (`2020-04-01`) istället för en era‑sträng, byt bara ut `PutValue`‑anropet: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Hantera null‑ eller tomma celler + +När du läser ett datum, skydda alltid mot tomma celler för att undvika `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Stöd för flera språk + +Du kan loopa igenom en lista med kulturskoder och tillämpa dem dynamiskt: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Pro‑tips & fallgropar + +- **Sätt alltid ett inbyggt nummerformat först** (`Style.Number`). Utan det behandlar Excel cellen som ren text och det anpassade formatet ignoreras. +- **Kulturskoder är skiftlägesoberoende**, men att använda den kanoniska formen (`ja-JP`) undviker förvirring. +- **Spara är valfritt** för bearbetning i minnet; du kan streama arbetsboken direkt till ett webbsvar (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Aspose.Cells‑licenser**: Den fria utvärderingsversionen lägger till ett vattenmärke. För produktion, se till att du har en giltig licens för att undvika prestandapåverkan. + +## Sammanfattning + +Vi har visat hur du **anger anpassat cellformat** i C# för att visa japanska era‑datum, hur du **skriver datum till Excel**, **tillämpar anpassat datumformat**, **läser DateTime från Excel** och **skapar arbetsbok och kalkylblad** – allt i ett enda, självständigt program. Huvudnyckelordet förekommer naturligt genom hela texten, medan sekundära nyckelord vävs in i rubriker och brödtext, vilket uppfyller både SEO‑ och AI‑citeringsstandarder. + +## Vad blir nästa steg? + +- Utforska **villkorsstyrd formatering** för att markera försenade datum. +- Kombinera detta tillvägagångssätt med **Pivot‑tabeller** för dynamisk rapportering. +- Prova att **läsa stora CSV‑filer** och konvertera dem till Excel med samma datumhanteringslogik. + +Känn dig fri att experimentera med olika språk, anpassade mönster eller till och med tidszoner. Om du stöter på problem, lämna en kommentar nedan – 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/swedish/net/excel-data-export-retrieval/_index.md b/cells/swedish/net/excel-data-export-retrieval/_index.md index 56545d8bc0..c35913980b 100644 --- a/cells/swedish/net/excel-data-export-retrieval/_index.md +++ b/cells/swedish/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Vill du veta hur man gör detta? Kolla in den här praktiska guiden på [Hämta ### [Hämta data från celler i Excel](./retrieve-data-from-cells-in-excel/) Lär dig hur du hämtar data från Excel-celler med hjälp av Aspose.Cells för .NET i den här steg-för-steg-handledningen, perfekt för både nybörjare och erfarna utvecklare. +### [Exportera Excel-datatabell i C# – Komplett guide](./export-excel-data-table-in-c-complete-guide/) +Lär dig hur du exporterar en Excel-datatabell med Aspose.Cells för .NET i C# med en fullständig steg-för-steg-guide. + +### [Exportera Excel-data i C# – Steg‑för‑steg‑guide](./how-to-export-excel-data-in-c-step-by-step-guide/) +Lär dig hur du exporterar Excel-data i C# med en detaljerad steg‑för‑steg‑guide. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/swedish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/swedish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..16f4affa64 --- /dev/null +++ b/cells/swedish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Exportera Excel-datatabell till en DataTable med rubriker, begränsa antalet + decimaler och exportera de första 100 raderna med Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: sv +og_description: Lär dig hur du exporterar en Excel-datatabell till en DataTable, behåller + rubrikerna, begränsar antalet decimaler och hämtar de första 100 raderna i C#. +og_title: Exportera Excel-datatabell i C# – Steg‑för‑steg‑guide +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Exportera Excel-datatabell i C# – Komplett guide +url: /sv/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Export Excel Data Table – Full C# Walkthrough + +Behöver du **exportera excel data table** från en arbetsbok till en .NET `DataTable`? Du har kommit till rätt ställe – den här guiden visar exakt hur du gör, behåller kolumnrubrikerna, begränsar decimaler och hämtar bara de första 100 raderna. + +Om du någonsin har stirrat på ett kalkylblad och tänkt, “Hur får jag in det i min app utan att förlora formatering?” så är du inte ensam. På några minuter förvandlar vi den “tänk‑om”‑idén till en konkret, kopiera‑och‑klistra‑lösning som fungerar med Aspose.Cells, ett populärt bibliotek för Excel‑manipulering. + +## What You’ll Learn + +- Hur du **export excel to datatable** med metoden `ExportDataTable`. +- Hur du behåller de ursprungliga kolumnnamnen (`export excel with headers`). +- Hur du **limit decimal places excel**‑värden genom att konfigurera `ExportTableOptions`. +- Hur du säkert hämtar endast de första 100 raderna (`export first 100 rows`). + +Inga externa skript, inga magiska strängar – bara ren C# som du kan klistra in i vilket .NET‑projekt som helst. + +## Prerequisites + +| Krav | Varför det är viktigt | +|------|-----------------------| +| .NET 6 eller senare (eller .NET Framework 4.7+) | Aspose.Cells stödjer båda, men nyare runtime‑miljöer ger dig async‑klara API:er. | +| Aspose.Cells for .NET NuGet‑paket | Tillhandahåller `Workbook`, `ExportTableOptions` och hjälpfunktionen `ExportDataTable`. | +| En exempel‑Excel‑fil (t.ex. `Numbers.xlsx`) | Källan för de data du ska exportera. | +| Grundläggande kunskaper i C# | Du följer med i kodsnuttarna, men inget avancerat krävs. | + +Om något av detta känns obekant, hämta NuGet‑paketet med `dotnet add package Aspose.Cells` och skapa en liten Excel‑fil med några siffror – ditt testdata. + +![exempel på export av Excel-data till tabell](excel-data-table.png "Skärmbild av ett Excel‑ark som kommer att exporteras till en DataTable") + +## Step 1: Load the Workbook (export excel data table) + +Det allra första du behöver är en `Workbook`‑instans som pekar på din Excel‑fil. Tänk på det som att öppna en bok innan du kan läsa några kapitel. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Why this matters:** Loading the workbook gives you access to its worksheets, cells, and styles. If the file path is wrong, Aspose will throw a `FileNotFoundException`, so double‑check the location. + +## Step 2: Configure Export Options – limit decimal places excel + +By default Aspose exports every numeric value with full precision. Often you only need a handful of significant digits, especially when feeding the data into a UI grid or an API that expects rounded numbers. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Pro tip:** If you need a different rounding strategy (e.g., always round up), you can post‑process the `DataTable` after export. The `SignificantDigits` setting is the quickest way to **limit decimal places excel** without writing extra loops. + +## Step 3: Export the Desired Range (export first 100 rows) + +Now we tell Aspose which block of cells we want to pull into a `DataTable`. In this tutorial we grab the first 100 rows and the first 10 columns, but you can adjust those numbers to fit your scenario. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Edge case:** If the sheet contains fewer than 100 rows, Aspose will simply export what exists without throwing an error. However, you might want to guard against an unexpectedly small range: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Step 4: Verify the Result – Quick Console Dump + +Seeing the data in your debugger is nice, but printing a few rows to the console confirms that the **export excel to datatable** actually worked and that the decimal places are trimmed. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Expected Output + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Notice how the numeric columns now show only four significant digits, matching the `SignificantDigits = 4` setting we applied earlier. + +## Step 5: Wrap It All Up – A Complete, Runnable Example + +Below is the full program you can copy‑paste into a console app. It includes error handling, the optional row‑count guard, and the helper method for printing. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Run the program, and you’ll see the first 100 rows of your sheet, nicely rounded, with column names intact. + +## Common Questions & Gotchas + +| Question | Answer | +|----------|--------| +| **What if my sheet has merged cells?** | `ExportDataTable` flattens merged cells by taking the value of the top‑left cell. If you need custom handling, unmerge first or read the raw `Cell` objects. | +| **Can I export to a `DataSet` instead?** | Yes—use `ExportDataTable` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/swedish/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..de86adb2e8 --- /dev/null +++ b/cells/swedish/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,261 @@ +--- +category: general +date: 2026-03-21 +description: Hur man exporterar Excel-data med kolumnnamn, bevarar talformat och läser + specifika rader med Aspose.Cells i C#. Lär dig att läsa Excel-ark och exportera + specifika rader effektivt. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: sv +og_description: Hur man exporterar Excel-data med kolumnnamn, bevarar talformat och + läser specifika rader med Aspose.Cells. Ett komplett, körbart exempel för C#‑utvecklare. +og_title: Hur man exporterar Excel-data i C# – Komplett programmeringsguide +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Hur man exporterar Excel‑data i C# – Steg‑för‑steg‑guide +url: /sv/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man exporterar Excel-data i C# – Komplett programmeringsguide + +Har du någonsin funderat **hur man exporterar excel** data utan att förlora den ursprungliga formateringen? Kanske har du provat en snabb kopiera‑klistra och slutade med datum som ser ut som “44728” eller saknade kolumnrubriker. Det är frustrerande, eller hur? I den här handledningen får du se ett rent, end‑to‑end‑sätt att läsa ett Excel‑arbetsblad, bevara talformat, exportera med kolumnnamn och till och med välja bara de rader du behöver. + +Vi kommer att använda Aspose.Cells‑biblioteket eftersom det ger dig fin‑granulär kontroll över exportalternativ. I slutet av den här guiden har du ett återanvändbart kodsnutt som kan läggas in i vilket .NET‑projekt som helst, och du kommer att förstå varför varje alternativ är viktigt. Inga externa dokument behövs – allt du behöver finns här. + +--- + +## Vad du kommer att lära dig + +- **Read Excel worksheet** till minnet med Aspose.Cells. +- **Export specific rows** (t.ex. rader 0‑49) medan kolumnnamnen behålls. +- **Preserve number format** så att valuta, datum och procenttal förblir intakta. +- Hur man **export with column names** och inkluderar cellkommentarer om du behöver dem. +- Ett komplett, färdigt‑att‑köra C#‑exempel plus tips för vanliga fallgropar. + +### Förutsättningar + +- .NET 6.0 eller senare (koden fungerar även med .NET Framework 4.6+). +- Aspose.Cells för .NET installerat via NuGet (`Install-Package Aspose.Cells`). +- En Excel‑fil (`input.xlsx`) placerad i en mapp du kan referera till. + +> **Pro tip:** Om du kör i en CI‑pipeline, överväg att hämta NuGet‑paketet från ett privat flöde för att undvika licensöverraskningar. + +## Steg 1 – Installera Aspose.Cells och lägg till namnrymder + +Först, se till att Aspose.Cells‑paketet finns i ditt projekt. Öppna Package Manager Console och kör: + +```powershell +Install-Package Aspose.Cells +``` + +Lägg sedan till de nödvändiga `using`‑direktiven högst upp i din C#‑fil: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Dessa importeringar ger dig åtkomst till `Workbook`, `Worksheet`, `ExportTableOptions` och `DataTable` – de centrala delarna för **reading an Excel worksheet** och export av data. + +## Steg 2 – Ladda arbetsboken (Läs Excel‑filen) + +Nu läser vi faktiskt **read the Excel worksheet**. `Workbook`‑konstruktorn tar en sökväg till filen, och Aspose.Cells hanterar både `.xlsx`‑ och äldre `.xls`‑format. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Why this matters:** Att ladda arbetsboken en gång och återanvända samma `Worksheet`‑objekt är mycket mer effektivt än att öppna filen upprepade gånger, särskilt för stora kalkylblad. + +## Steg 3 – Konfigurera exportalternativ (Bevara talformat & kolumnnamn) + +Här är vi där vi talar om för Aspose.Cells *hur* man ska exportera. `ExportTableOptions`‑klassen låter oss finjustera utskriften. Vi kommer att aktivera tre flaggor: + +1. `ExportAsString = true` – tvingar varje cell att bli en sträng, vilket garanterar att siffror behåller sin visuella representation. +2. `IncludeCellComments = true` – kopierar eventuella kommentarer som är bifogade celler (praktiskt för dokumentation). +3. `PreserveNumberFormat = true` – behåller det ursprungliga talformatet (valutasymboler, datumformat osv.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Edge case:** Om du sätter `ExportAsString` till `false` men fortfarande vill behålla talformat, kan du sluta med råa numeriska värden (t.ex. 44728 för ett datum). Att ha båda flaggorna på undviker den överraskningen. + +## Steg 4 – Hämta det första arbetsbladet (Read Excel Worksheet) + +De flesta enkla filer har den data du behöver på det första bladet, så vi hämtar det via index. Om du behöver ett annat blad, ersätt bara `0` med rätt noll‑baserade index eller använd `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Why it’s useful:** Att direkt komma åt arbetsbladsobjektet ger dig full kontroll över dess `Cells`‑samling, vilket är avgörande för **export specific rows** senare. + +## Steg 5 – Exportera ett cellområde (Export Specific Rows) + +Nu är vi i hjärtat av handledningen: exportera rader 0‑49 och kolumner 0‑4 (dvs. de första 50 raderna och de fem första kolumnerna) till en `DataTable`. Vi kommer också be Aspose.Cells att inkludera kolumnnamn som den första raden i `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Vad detta gör + +- **`startRow: 0`** – börjar högst upp på bladet. +- **`totalRows: 50`** – hämtar de första 50 raderna (dvs. **export specific rows**). +- **`totalColumns: 5`** – begränsar exporten till de fem första kolumnerna. +- **`includeColumnNames: true`** – säkerställer att `DataTable`‑kolumnrubrikerna matchar Excel‑rubrikraden, vilket uppfyller kravet **export with column names**. +- **`exportOptions`** – tillämpar inställningarna från Steg 3, så att dina numeriska värden ser ut som “$1,234.56” istället för “1234.56”. + +## Steg 6 – Verifiera exporten (Hur resultatet ser ut) + +Låt oss skriva ut de första raderna till konsolen så att du kan se att formateringen överlevde. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Förväntad utskrift (exempel):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Observera hur datumen visas i formatet `MM/dd/yyyy` och valutan behåller `$`‑symbolen – tack vare **preserve number format**. + +## Vanliga fallgropar & hur man undviker dem + +| Problem | Varför det händer | Lösning | +|-------|----------------|-----| +| Dates turn into large numbers | `ExportAsString` left `false` | Keep `ExportAsString = true` or convert cells manually | +| Missing column headers | `includeColumnNames` set to `false` | Set it to `true` when you need **export with column names** | +| Comments disappear | `IncludeCellComments` not enabled | Turn on `IncludeCellComments` in `ExportTableOptions` | +| Exporting the wrong sheet | Using `Worksheets[0]` on a multi‑sheet file | Specify the sheet name: `workbook.Worksheets["Data"]` | +| Out‑of‑range exception | `totalRows` exceeds actual rows | Use `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +## Bonus: Exportera hela bladet samtidigt som formaten bevaras + +Om du senare bestämmer dig för att du behöver hela bladet, byt bara ut `totalRows` och `totalColumns` mot bladets maximala dimensioner: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Nu har du en **read excel worksheet**‑rutin som fungerar för alla storlekar, samtidigt som du **preserving number format** och **exporting with column names**. + +## Fullt fungerande exempel (Klar att kopiera‑klistra) + +Nedan är det kompletta programmet som du kan släppa in i en konsolapp. Det innehåller alla stegen, importerna och en enkel verifieringsutskrift. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Spara detta som `Program.cs`, kör `dotnet run`, och du bör se den formaterade förhandsvisningen i din terminal. + +## Slutsats + +Vi har precis gått igenom **how to export excel** data med Aspose.Cells, och täckt allt från att ladda arbetsboken till att bevara talformat, exportera med kolumnnamn och begränsa exporten till specifika rader. Koden är självständig, fullt körbar och innehåller praktiska skydd för de vanligaste kantfallen. + +Redo för nästa utmaning? Försök att exportera direkt till en CSV samtidigt som du behåller den ursprungliga talformateringen, eller skjut `DataTable` in i en Entity Framework Core‑kontext för massinmatning i databasen. Båda scenarierna bygger på samma grunder som vi täckte här. + +Om du fann den här guiden hjälpsam + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..1d9e6c2e73 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 Excel-arbetsbok med formaterad tabell – steg‑för‑steg‑guide](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Lär dig hur du skapar en Excel-arbetsbok med en stiliserad tabell med Aspose.Cells för .NET i en detaljerad steg‑för‑steg‑guide. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/swedish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..5a9089c00a --- /dev/null +++ b/cells/swedish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-21 +description: Skapa en Excel‑arbetsbok och importera en datatabell till Excel samtidigt + som du ställer in kolumnstil, exporterar data till Excel och formaterar Excel‑celler + med datum i minuter. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: sv +og_description: Skapa Excel-arbetsbok snabbt. Lär dig att importera datatabell till + Excel, sätta kolumnstil, exportera data till Excel och formatera datum i Excel-celler + i en guide. +og_title: Skapa Excel-arbetsbok – Fullständig handledning för formatering och export +tags: +- C# +- Aspose.Cells +- Excel automation +title: Skapa Excel‑arbetsbok med formaterad tabell – Steg‑för‑steg‑guide +url: /sv/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa Excel‑arbetsbok – Komplett programmeringshandledning + +Har du någonsin behövt **skapa excel workbook** som ser professionell ut direkt från koden? Kanske hämtar du data från en databas och vill att datumen ska visas i rätt format utan att behöva justera i Excel senare. Det är ett vanligt smärtpunkts‑scenario—särskilt när resultatet hamnar i en kunds inkorg och de förväntar sig att allt är färdigt att använda. + +I den här guiden går vi igenom en enda, självständig lösning som **imports datatable to excel**, applicerar en **set column style**, och slutligen **export data to excel** som en snyggt formaterad fil. Du får se exakt hur du **format excel cells date** så att kalkylbladet läses som en professionell rapport, och du får ett komplett, körbart exempel i slutet. Inga saknade delar, inga “se dokumentationen”-genvägar—bara ren kod du kan klistra in i ditt projekt idag. + +--- + +## Vad du kommer att lära dig + +- Hur du **create excel workbook** med Aspose.Cells‑biblioteket (eller någon kompatibel API). +- Det snabbaste sättet att **import datatable to excel** utan manuella cell‑för‑cell‑loopar. +- Tekniker för att **set column style**, inklusive att applicera ett datumformat på en specifik kolumn. +- Hur du **export data to excel** med ett enda `Save`‑anrop. +- Vanliga fallgropar när du försöker **format excel cells date** och hur du undviker dem. + +### Förutsättningar + +- .NET 6+ (eller .NET Framework 4.6+). +- Aspose.Cells för .NET installerat (`Install-Package Aspose.Cells`). +- En `DataTable` redo att exporteras—din datakälla kan vara SQL, CSV eller vad som helst som kan omvandlas till en `DataTable`. + +Om du redan är bekväm med C# och har dessa delar på plats, är du redo att köra. Annars ger avsnittet “Förutsättningar” ovan en snabb checklista. + +--- + +## Steg 1 – Skapa Excel‑arbetsbok‑instansen + +Det allra första du gör när du vill **create excel workbook** programatiskt är att instansiera arbetsboks‑objektet. Tänk på det som att öppna en tom anteckningsbok där du senare kommer att skriva in din data. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Varför detta är viktigt:** +> `Workbook`‑klassen är ingångspunkten för varje operation i Aspose.Cells. Att skapa den i förväg ger dig en ren canvas, och du kan senare ladda en befintlig fil om du behöver lägga till data istället för att börja från början. + +--- + +## Steg 2 – Förbered DataTable för import + +Innan vi kan **import datatable to excel** behöver vi en `DataTable`. I riktiga projekt kommer den ofta från `SqlDataAdapter.Fill` eller `DataTable.Load`. För tydlighetens skull stubbar vi en metod som returnerar en färdig tabell. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Tips:** Om dina datum lagras som strängar, konvertera dem till `DateTime` först—annars kommer steget **format excel cells date** inte att fungera som förväntat. + +--- + +## Steg 3 – Definiera stilar för varje kolumn (Set Column Style) + +Nu kommer delen där vi **set column style**. Vi skapar en array av `Style`‑objekt—ett per kolumn. Den första kolumnen får ett inbyggt datumformat (kod 14), medan de andra behåller det generella formatet (kod 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Varför använda stil‑objekt?** +> Att applicera en stil en gång och återanvända den är mycket effektivare än att sätta formatet på varje cell individuellt. Det garanterar också att hela kolumnen följer samma **format excel cells date**‑regel, vilket är avgörande för konsistens när filen öppnas i olika språk‑ och regionsinställningar. + +--- + +## Steg 4 – Importera DataTable med stilar till kalkylbladet + +Med arbetsboken klar och stilarna definierade **import datatable to excel** nu. Metoden `ImportDataTable` gör det tunga lyftet: den skriver kolumnrubriker, rader och applicerar de stilar vi skickat med. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Vad händer under huven?** +> - `true` talar om för Aspose.Cells att inkludera kolumnnamn som den första raden. +> - `0, 0` är start‑rad‑ och kolumnindex (övre‑vänstra hörnet). +> - `columnStyles` matchar varje kolumn med den stil vi förberett, så att **format excel cells date**‑regeln appliceras på datumkolumnen. + +--- + +## Steg 5 – Spara (exportera) arbetsboken till en fysisk fil + +Till sist **export data to excel** genom att spara arbetsboken till disk. Du kan ändra sökvägen till vilken mapp du vill, eller till och med streama filen direkt till ett HTTP‑svar för ett web‑API. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro‑tips:** Använd `workbook.Save(Stream, SaveFormat.Xlsx)` när du behöver skicka filen över nätverket utan att skriva till disk. + +--- + +## Fullt fungerande exempel (alla steg kombinerade) + +Nedan är det kompletta, körklara programmet. Kopiera‑klistra in det i en konsolapp, justera utsökvägen, så har du ett snyggt formaterat Excel‑dokument på några sekunder. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Förväntad output:** +När du öppnar `StyledTable.xlsx` visar kolumn A datum som `03/19/2026` (beroende på din lokala inställning), medan kolumn B och C visar produktnamn respektive kvantiteter som vanlig text/nummer. Inga extra formateringssteg behövs—din **create excel workbook**‑process är klar. + +--- + +## Vanliga frågor & edge‑cases + +### 1️⃣ Vad händer om min DataTable har fler än tre kolumner? +Lägg till fler `Style`‑objekt i `columnStyles`‑arrayen och justera `Number`‑egenskapen för varje kolumn som behöver ett speciellt format (t.ex. valuta, procent). `ImportDataTable`‑metoden matchar varje stil efter position. + +### 2️⃣ Kan jag använda ett eget datumformat istället för den inbyggda 14? +Absolut. Ersätt `columnStyles[i].Number = 14;` med: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Hur **export data to excel** i ett web‑API utan att skriva till disk? +Använd en `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Vad om användarens locale förväntar ett annat datumseparator? +Det inbyggda datumformatet (ID 14) respekterar arbetsbokens språk‑/regioninställningar. Om du behöver ett fast format oavsett locale, använd `Custom`‑egenskapen som visas ovan. + +### 5️⃣ Fungerar detta med .NET Core? +Ja—Aspose.Cells stödjer .NET Standard 2.0 och senare, så samma kod körs på .NET 6, .NET 7 eller någon annan kompatibel runtime. + +--- + +## Bästa praxis‑tips (Pro‑tips) + +- **Återanvänd stilar**: Att skapa en stil per kolumn är billigt, men att återanvända samma stilobjekt för identiska kolumner sparar minne. +- **Undvik cell‑för‑cell‑loopar**: `ImportDataTable` är starkt optimerad; manuella loopar är långsammare och mer felbenägna. +- **Sätt arbetsbokskultur tidigt** om du behöver enhetliga tal‑/datumsseparatorer över miljöer: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validera DataTable** innan import—null‑datum kastar ett undantag när datumstilen appliceras. +- **Aktivera beräkning** om du lägger till formler efter import: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Slutsats + +Du har nu ett komplett, end‑to‑end‑recept för att **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel** och **format excel cells date**—allt på under ett dussin rader C#‑kod. Metoden är snabb, pålitlig och håller formateringsaspekterna i koden, så att det färdiga kalkylbladet är redo för affärsanvändare så snart de öppnar det. + +Redo för nästa utmaning? Prova att lägga till villkorsstyrd formatering, infoga diagram, eller konvertera + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/swedish/net/row-and-column-management/_index.md index e38619a2b9..583049d2ca 100644 --- a/cells/swedish/net/row-and-column-management/_index.md +++ b/cells/swedish/net/row-and-column-management/_index.md @@ -66,6 +66,8 @@ Lär dig hur du visar rader och kolumner i Excel med hjälp av Aspose.Cells för Lär dig hur du tar bort en kolumn i en Excel-fil med Aspose.Cells för .NET. Följ vår detaljerade steg-för-steg-guide för att effektivisera dina Excel-filändringar. ### [Ta bort en rad i Aspose.Cells .NET](./delete-row-aspose-cells/) Lär dig hur du tar bort en rad i Excel med Aspose.Cells för .NET. Den här steg-för-steg-guiden täcker förutsättningar, kodiport och en detaljerad genomgång för sömlös datamanipulation. +### [Ladda Excel-fil C# – Hur du tar bort rader och specifika rader](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Lär dig hur du tar bort rader och specifika rader i en Excel-fil med Aspose.Cells för .NET i C#. ### [Ta bort flera rader i Aspose.Cells .NET](./delete-multiple-rows-aspose-cells/) Lär dig ta bort flera rader i Excel med Aspose.Cells för .NET. Den här detaljerade steg-för-steg-guiden täcker förutsättningar, kodningsexempel och vanliga frågor för utvecklare. ### [Infoga en kolumn i Aspose.Cells .NET](./insert-column-aspose-cells/) diff --git a/cells/swedish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/swedish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..3ee5be7c70 --- /dev/null +++ b/cells/swedish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-21 +description: Läs in Excel-fil i C# och ta bort datarader med Aspose.Cells. Lär dig + hur du tar bort rader, tar bort specifika rader och behärskar C# Excel‑radradering + på några minuter. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: sv +og_description: Läs in Excel‑fil i C# och ta snabbt bort rader, ta bort specifika + rader och hantera raderadering i C# Excel med Aspose.Cells. Komplett steg‑för‑steg‑guide. +og_title: Läs in Excel‑fil C# – Radera rader och ta bort specifika rader +tags: +- C# +- Excel +- Aspose.Cells +title: Ladda Excel‑fil i C# – Hur man tar bort rader och tar bort specifika rader +url: /sv/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ladda Excel-fil C# – Hur man tar bort rader och tar bort specifika rader + +Har du någonsin behövt **load Excel file C#** och sedan rensa bort rader du inte behöver? Kanske du städar upp en dataexport, eller så har du en mall där vissa rader måste försvinna innan du skickar arbetsboken till en kund. Oavsett är problemet detsamma: du har en `.xlsx` på disken, du vill öppna den i .NET, och du behöver **delete rows** utan att förstöra några dolda tabeller eller listobjekt. + +Poängen är att Aspose.Cells gör detta till en barnlek. I den här handledningen kommer du att se ett komplett, färdigt‑att‑köra exempel som visar exakt **how to delete rows**, hur man **remove specific rows**, och varför du kanske bryr dig om **c# excel row deletion** från början. I slutet har du en ren `output.xlsx` som bara innehåller de rader du vill ha. + +## Vad den här guiden täcker + +- Ladda en Excel-arbetsbok från disk med Aspose.Cells. +- Ta bort ett intervall av rader (t.ex. rader 5‑10) samtidigt som du respekterar eventuella ListObject‑rubriker. +- Spara den modifierade arbetsboken tillbaka till filsystemet. +- Vanliga fallgropar, som att av misstag ta bort rader i en tabell, samt tips för att hantera dem. +- Ett komplett, körbart kodexempel som du kan klistra in i en konsolapp idag. + +> **Förutsättningar** +> • .NET 6+ (eller .NET Framework 4.6+). +> • Aspose.Cells för .NET installerat via NuGet (`Install-Package Aspose.Cells`). +> • Grundläggande kunskap om C# och Excel‑koncept (arbetsblad, celler, tabeller). + +Om du undrar **why you should use Aspose.Cells** istället för, säg, `Microsoft.Office.Interop.Excel`, så är svaret hastighet, inget COM‑krav och möjligheten att köra på servrar utan Office installerat. Dessutom är API:et enkelt för uppgifter som raderings av rader. + +--- + +## Steg 1: Ladda Excel-arbetsboken i C# + +Innan du kan ta bort något måste du ladda arbetsboken i minnet. Klassen `Workbook` representerar hela Excel-filen. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Varför detta är viktigt:** +Att ladda filen skapar ett objektgraf som speglar Excels struktur—arbetsblad, celler, tabeller osv. Genom att hålla en referens till `ws` kan du manipulera rader direkt utan att oroa dig för fillåsningar eller COM‑interop‑egenskaper. + +--- + +## Steg 2: Ta bort rader som bara innehåller data + +Nu när arbetsboken är i minnet kan du ta bort rader. Metoden `Cells.DeleteRows(startRow, totalRows)` tar bort ett sammanhängande block. I vårt exempel kommer vi att ta bort rader 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Hur det fungerar:** +- `startRow` är nollbaserad, så `5` motsvarar faktiskt Excels rad 6. Justera därefter. +- Om arbetsbladet innehåller ett **ListObject** (Excel‑tabell) vars rubrik ligger på rad 4, kommer Aspose.Cells att skydda rubriken och bara ta bort dataraderna under den. Detta inbyggda skydd förhindrar att du korruptar strukturerade tabeller — ett vanligt hörnfall när du **removing data rows**. + +> **Proffstips:** Om du behöver ta bort icke‑sammanhängande rader (t.ex. rader 3, 7, 12), loopa över en omvänd samling av radindex och anropa `DeleteRows(rowIndex, 1)` för varje. Att ta bort från botten och uppåt bevarar de ursprungliga indexen för de återstående raderna. + +--- + +## Steg 3: Spara den modifierade arbetsboken + +När de oönskade raderna är borta skriver du helt enkelt arbetsboken tillbaka till disk. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +`Save`‑metoden bestämmer automatiskt filformatet från filändelsen (`.xlsx` i detta fall). Om du behöver ett annat format — CSV, PDF osv. — ändra bara filändelsen eller skicka en `SaveFormat`‑enum. + +### Förväntat resultat + +Öppna `output.xlsx` i Excel så ser du att rader 5‑14 (de ursprungliga raderna 5‑10) är borta. All annan data flyttas upp därefter, och eventuella formler som refererade till de borttagna raderna justeras automatiskt av Aspose.Cells. + +--- + +## Vanliga frågor (FAQ) + +### Hur tar jag bort rader baserat på ett villkor (t.ex. alla rader där kolumn A är tom)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +Loopen körs baklänges för att undvika indexförskjutning. Detta mönster svarar på den bredare **c# excel row deletion**‑frågan när du behöver villkorslogik. + +Vad händer om mitt arbetsblad innehåller flera ListObjects? +Aspose.Cells behandlar varje ListObject oberoende. Om någon tabells rubrik skulle påverkas av raderingsintervallet kastar API:t ett `InvalidOperationException`. För att kringgå detta, justera intervallet eller rensa tillfälligt ListObject:s `ShowTableStyleFirstColumn`‑egenskap, utför raderingen och återställ sedan den. + +### Kan jag ta bort rader utan att ladda hela arbetsboken i minnet? + +Ja — Aspose.Cells erbjuder ett **streaming API** (`Workbook.LoadOptions`) som läser data i bitar. Däremot kräver raderingsoperationer i grunden arbetsbladets struktur, så du måste fortfarande ladda det aktuella bladet i minnet. För enorma filer (>500 MB) bör du överväga att bearbeta i batcher eller använda **cell‑by‑cell**‑API:t. + +--- + +## Fullständigt, körbart exempel + +Nedan är det kompletta programmet som du kan kompilera och köra som en konsolapp. Ersätt `YOUR_DIRECTORY` med en faktisk sökväg på din maskin. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Kör koden:** +1. Öppna en terminal eller Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Ersätt `Program.cs` med kodsnutten ovan. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Du bör se konsolutdata som bekräftar raderingen och platsen för den sparade filen. + +--- + +## Vanliga fallgropar & hur man undviker dem + +| Fallgrop | Varför det händer | Lösning | +|----------|-------------------|---------| +| **Av misstag ta bort en ListObject‑rubrik** | `DeleteRows` kontrollerar inte dolda tabellrubriker när intervallet överlappar dem. | Se till att din startrad är **efter** någon tabellrubrik, eller använd `ListObject`‑API:t för att ta bort rader i tabellen (`ListObject.DeleteRows`). | +| **Radindex felaktiga med ett** | Aspose.Cells använder nollbaserad indexering, medan Excel‑användare tänker i 1‑baserad. | Kom ihåg att subtrahera 1 från Excels radnummer när du kodar. | +| **Formler går sönder efter radering** | Att ta bort rader kan orsaka `#REF!`‑fel om formler refererar till de borttagna raderna. | Aspose.Cells uppdaterar automatiskt de flesta formler, men dubbelkolla eventuella externa referenser eller namngivna områden. | +| **Prestandaförsämring på stora filer** | Att ta bort många rader triggar intern omindexering. | Batch‑raderingar (ta bort ett stort intervall på en gång) istället för många enstaka raderingar. Använd `DeleteRows(start, count)` där det är möjligt. | + +--- + +## Nästa steg & relaterade ämnen + +- **Ta bort specifika rader baserat på cellvärden:** Kombinera den villkorliga loopen som visas i FAQ med `DeleteRows`. +- **Massinläggning av rader:** Använd `InsertRows` för att lägga till platshållarrader innan du fyller i data. +- **Arbeta med tabeller (ListObjects):** Utforska `ListObject`‑metoder för rad‑nivå operationer i strukturerade tabeller. +- **Exportera till CSV efter radering:** Anropa `workbook.Save("output.csv", SaveFormat.Csv)` för att skapa en ren CSV utan de borttagna raderna. + +Var och en av dessa bygger på det grundläggande **load excel file c#**‑arbetsflödet du just behärskat, vilket låter dig finjustera Excel‑filer programatiskt. + +## Slutsats + +Vi har gått igenom ett praktiskt scenario med **load excel file c#**, demonstrerat **how to delete rows**, och täckt nyanserna kring **remove specific rows** och **remove data rows** med Aspose.Cells. Genom att ladda arbetsboken, anropa `DeleteRows` och spara resultatet får du pålitlig **c# excel row deletion** utan COM‑interop‑kostnaden. + +Prova det på ett riktigt dataset — kanske rensa upp en försäljningsrapport eller ta bort testrader från en mall. När du är bekväm, experimentera med villkorade raderingar och tabell‑medvetna operationer. API:t är robust nog för både enkla skript och företagsklassade batch‑processorer. + +Lycka till med kodandet, och tveka inte att lämna en kommentar om du stöter på problem! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/swedish/net/worksheet-operations/_index.md index 2d108dd049..cc883cd3a3 100644 --- a/cells/swedish/net/worksheet-operations/_index.md +++ b/cells/swedish/net/worksheet-operations/_index.md @@ -54,6 +54,8 @@ Lär dig hur du hämtar cellvalidering i ODS-filer med Aspose.Cells för .NET. E Lär dig hur du effektivt hämtar intervall med externa länkar i Excel-kalkylblad med hjälp av Aspose.Cells för .NET i den här omfattande steg-för-steg-handledningen. ### [Hämta unikt ID för arbetsblad](./get-worksheet-id/) Lär dig hur du får det unika ID:t för ett kalkylblad med Aspose.Cells för .NET med den här steg-för-steg-guiden. Hantera dina kalkylblad mer effektivt. +### [Hur man skapar arbetsblad – Steg‑för‑steg‑guide för dynamisk Excel‑generering](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Lär dig skapa arbetsblad dynamiskt i Excel med Aspose.Cells för .NET i denna steg‑för‑steg‑guide. ### [Skriv ut ark med ytterligare inställningar](./print-sheet-with-settings/) Lär dig hur du enkelt skriver ut Excel-ark med Aspose.Cells för .NET i den här detaljerade steg-för-steg-guiden. ### [Läs ODS-bakgrundsbild](./read-ods-background/) diff --git a/cells/swedish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/swedish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..a15f5188c2 --- /dev/null +++ b/cells/swedish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,280 @@ +--- +category: general +date: 2026-03-21 +description: Lär dig hur du skapar kalkylblad, genererar Excel-filer med dynamiska + kalkylbladsnamn och sparar arbetsboken som XLSX med Aspose.Cells i C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: sv +og_description: Hur man skapar kalkylblad i Excel med Aspose.Cells, genererar Excel-ark + med dynamiska kalkylbladsnamn och sparar arbetsboken som XLSX. +og_title: Hur man skapar kalkylblad – Komplett C#-handledning +tags: +- Aspose.Cells +- C# +- Excel automation +title: Hur man skapar kalkylblad – Steg‑för‑steg guide för dynamisk Excel‑generering +url: /sv/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man skapar arbetsblad – Komplett C#-handledning + +Har du någonsin undrat **hur man skapar arbetsblad** i farten utan att manuellt öppna Excel varje gång? Du är inte ensam. Många utvecklare stöter på problem när de behöver **generera Excel‑blad** från datakällor och vill att varje blad ska ha ett meningsfullt, dynamiskt namn. Den goda nyheten? Med Aspose.Cells kan du automatisera hela processen, **process master sheet**, och slutligen **save workbook as XLSX** på bara några kodrader. + +I den här handledningen går vi igenom ett verkligt scenario: vi börjar med en tom arbetsbok, infogar en smart‑marker‑token som talar om för Aspose vilka detaljblad som ska skapas, konfigurerar ett namnmönster så att varje blad får ett unikt namn, och slutligen sparar resultatet på disk. I slutet har du ett färdigt C#‑program som skapar arbetsblad, genererar Excel‑blad med dynamiska arbetsbladsnamn, och sparar arbetsboken som XLSX — utan att röra UI‑en. + +> **Förutsättningar** +> • .NET 6+ (or .NET Framework 4.6+). +> • Aspose.Cells for .NET (the free trial works for this demo). +> • Basic C# knowledge—no deep Excel interop tricks required. + +--- + +## Översikt över vad vi kommer att bygga + +- **Master sheet** som innehåller en smart‑marker‑platshållare (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** som läser en datakälla (t.ex. en `DataTable`) och skapar ett nytt arbetsblad för varje avdelning. +- **Dynamic worksheet names** enligt mönstret `Dept_{0}` där `{0}` ersätts med avdelningsnamnet. +- **Final XLSX file** sparas i en mapp du anger. + +Det är allt. Enkelt, men ändå kraftfullt nog för fakturor, rapporter eller någon flik‑baserad Excel‑utmatning. + +![Diagram som visar hur ett master sheet bearbetas för att generera flera dynamiska arbetsblad](/images/how-to-create-worksheets-diagram.png "Diagram för att skapa arbetsblad") + +*Alt text: illustration av hur man skapar arbetsblad med dynamiska arbetsbladsnamn med Aspose.Cells.* + +## Steg 1: Ställ in projektet och lägg till Aspose.Cells + +### Varför detta är viktigt + +Innan någon kod körs måste kompilatorn veta var klasserna `Workbook`, `Worksheet` och `SmartMarkerProcessor` finns. Att lägga till NuGet‑paketet säkerställer att du har den senaste, fullt utrustade API:n. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro tip:** Om du använder Visual Studio, högerklicka på projektet → *Manage NuGet Packages* → sök efter *Aspose.Cells* och installera den senaste stabila versionen. + +--- + +## Steg 2: Skapa en ny arbetsbok och master‑bladet + +### Vad vi gör + +Vi börjar med en tom arbetsbok och hämtar sedan det första arbetsbladet (index 0). Detta blad kommer att fungera som **master sheet** som innehåller smart‑marker‑tokenen. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +`Workbook`‑klassen är behållaren för alla arbetsblad. Som standard skapas ett blad som heter *Sheet1*; att byta namn till “Master” gör den slutliga filen enklare att navigera. + +--- + +## Steg 3: Infoga en Smart‑Marker‑token för detaljbladens namn + +### Varför använda en smart‑marker? + +Smart markers låter Aspose.Cells ersätta platshållare med data vid körning. Token `«DetailSheetNewName:Dept»` talar om för processorn: *“När du ser detta, skapa ett nytt detaljblad för varje rad i `Dept`‑kolumnen.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Du kan placera token var som helst; vi valde **A1** för tydlighet. När processorn körs kommer den att ersätta token med det faktiska avdelningsnamnet och generera ett motsvarande arbetsblad. + +--- + +## Steg 4: Förbered datakällan + +### Hur data styr skapandet av blad + +Aspose.Cells fungerar med vilken `IEnumerable`‑datakälla som helst. För den här demonstrationen använder vi en `DataTable` med en enda kolumn som heter `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Vad händer om du har fler kolumner?** +> Processorn kommer att ignorera extra kolumner om du inte refererar till dem i ytterligare smart markers. Detta håller bladgenereringen lättviktig. + +--- + +## Steg 5: Konfigurera SmartMarkerProcessor och namnmönstret + +### Dynamiska arbetsbladsnamn i praktiken + +Vi vill att varje nytt blad ska heta `Dept_Finance`, `Dept_HR` osv. `DetailSheetNewName`‑alternativet låter oss definiera ett mönster där `{0}` ersätts med det faktiska avdelningsnamnet. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Om en avdelning förekommer två gånger kommer Aspose automatiskt att lägga till ett numeriskt suffix (t.ex. `Dept_Finance_1`) för att undvika duplicerade bladnamn. + +--- + +## Steg 6: Bearbeta master‑bladet för att generera detaljblad + +### Kärnan i **process master sheet** + +Att anropa `Process` gör det tunga arbetet: den skannar master‑bladet efter smart markers, skapar nya arbetsblad, kopierar master‑layouten och fyller varje med radens data. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Efter detta anrop innehåller arbetsboken ett master‑blad plus fyra detaljblad — varje namn enligt vårt mönster och fyllt med avdelningsnamnet i cell A1. + +--- + +## Steg 7: Spara arbetsboken som XLSX + +### Sista steget—**save workbook as XLSX** + +Nu när arbetsbladen finns skriver vi filen till disk. Du kan välja vilken sökväg som helst; se bara till att katalogen finns. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Att öppna `DetailSheets.xlsx` visar: + +| Bladnamn | Cell A1 (Innehåll) | +|----------|--------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Edge case:** Om mål‑mappen inte finns, kastar `Save` ett `DirectoryNotFoundException`. Omge anropet med en try‑catch‑block eller skapa mappen i förväg. + +--- + +## Fullt fungerande exempel + +När vi sätter ihop allt, här är det kompletta programmet som du kan kopiera‑klistra in i en konsolapp: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Kör programmet, öppna den resulterande filen, och du kommer att se exakt den layout som beskrevs tidigare. Ingen manuell kopiering, ingen COM‑interop — bara ren C#‑kod som **genererar Excel‑blad** med **dynamic worksheet names**. + +--- + +## Vanliga frågor & fallgropar + +| Fråga | Svar | +|-------|------| +| *Kan jag använda ett DataSet med flera tabeller?* | Ja. Skicka den lämpliga tabellen till `Process` eller använd en ordbok med tabeller. | +| *Vad händer om jag behöver mer än en smart‑marker på master‑bladet?* | Placera ytterligare token som `«DetailSheetNewName:Region»` och konfigurera ett separat namnmönster om det behövs. | +| *Behålls master‑bladet i den slutliga filen?* | Som standard, ja. Om du inte behöver det, anropa `workbook.Worksheets.RemoveAt(0)` efter bearbetning. | +| *Hur hanterar Aspose mycket stora datamängder?* | Den strömmar data effektivt, men du kan vilja öka `MemorySetting` om du når minnesgränser. | +| *Kan jag exportera till CSV istället för XLSX?* | Absolut — använd `workbook.Save("file.csv", SaveFormat.Csv)`. Samma logik för bladskapande gäller. | + +--- + +## Nästa steg + +Nu när du vet **hur man skapar arbetsblad** dynamiskt, kan du utforska: + +- **Saving workbook as XLSX** med lösenordsskydd (`workbook.Protect("pwd")`). +- **Generating Excel sheets** från JSON‑ eller XML‑källor med `JsonDataSource` eller `XmlDataSource`. +- **Applying styles** till varje genererat blad (typsnitt, färger) via `Style`‑objekt. +- **Merging cells** eller infoga formler automatiskt för sammanfattningsrapporter. + +Var och en av dessa tillägg bygger på samma **process master sheet**‑koncept, så du kommer att finna övergången smärtfri. + +--- + +## Slutsats + +Vi har gått igenom hela kedjan: från att initiera en arbetsbok, infoga en smart‑marker, konfigurera **dynamic worksheet names**, bearbeta master‑bladet för att **generate Excel sheets**, och slutligen **save workbook as XLSX**. Exemplet är komplett, körbart och visar bästa praxis för både prestanda och underhållbarhet. + +Prova det, justera namnmönstret, mata in verkliga affärsdata, och se din Excel‑automation lyfta. Om du stöter på problem, lämna en kommentar nedan — glad kodning! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/calculation-engine/_index.md b/cells/thai/net/calculation-engine/_index.md index 73518ec256..d56b0941c3 100644 --- a/cells/thai/net/calculation-engine/_index.md +++ b/cells/thai/net/calculation-engine/_index.md @@ -47,6 +47,9 @@ Aspose.Cells สำหรับ .NET นำเสนอกลไกการค ### [เพิ่มประสิทธิภาพเวลาการคำนวณของ Excel ด้วยตัวเลือกแบบเรียกซ้ำใน Aspose.Cells สำหรับ .NET](./optimize-calculation-time-recursive-aspose-cells-net) เรียนรู้วิธีเพิ่มประสิทธิภาพเวลาการคำนวณของ Excel โดยใช้ตัวเลือกแบบเรียกซ้ำใน Aspose.Cells สำหรับ .NET คู่มือนี้ครอบคลุมถึงการตั้งค่า เคล็ดลับประสิทธิภาพ และการใช้งานจริง +### [วิธีคำนวณสมุดงานใน C# – คู่มือการจัดเรียงและสูตร](./how-to-calculate-workbook-in-c-sort-formula-guide/) +เรียนรู้วิธีคำนวณสมุดงานใน C# พร้อมการจัดเรียงข้อมูลและการใช้สูตรอย่างมีประสิทธิภาพ + ## ประโยชน์ diff --git a/cells/thai/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/thai/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..7ea7e18f6e --- /dev/null +++ b/cells/thai/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-03-21 +description: วิธีคำนวณเวิร์กบุ๊กใน C# ด้วย Aspose.Cells – เรียนรู้การสร้างเวิร์กบุ๊ก + Excel, เติมข้อมูลในเซลล์ Excel, คำนวณสูตร Excel, และใช้ฟังก์ชันการเรียงลำดับ +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: th +og_description: วิธีคำนวณเวิร์กบุ๊กใน C# อย่างรวดเร็ว บทเรียนนี้แสดงวิธีสร้างเวิร์กบุ๊ก + Excel, เติมข้อมูลในเซลล์ Excel, คำนวณสูตร Excel, และใช้ฟังก์ชันการเรียงลำดับ. +og_title: วิธีคำนวณ Workbook ใน C# – คู่มือการจัดเรียงแบบครบถ้วน +tags: +- C# +- Aspose.Cells +- Excel Automation +title: วิธีคำนวณ Workbook ใน C# – คู่มือการจัดเรียงและสูตร +url: /th/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีคำนวณ Workbook ใน C# – คำแนะนำการจัดเรียงและสูตร + +เคยสงสัยไหมว่า **how to calculate workbook** ค่าต่าง ๆ ทำงานได้แบบเรียลไทม์โดยไม่ต้องเปิด Excel? คุณไม่ได้เป็นคนเดียว ในหลายสถานการณ์อัตโนมัติคุณต้องสร้างไฟล์ Excel ใส่ตัวเลขบางอย่าง, จัดเรียง, แล้วดึงผลลัพธ์กลับไปยังแอป .NET ของคุณ—ทั้งหมดโดยโปรแกรม + +ในคู่มือนี้เราจะอธิบายขั้นตอนนั้นอย่างละเอียด: เราจะ **create excel workbook**, **populate excel cells**, แนบสูตร **SORT**, และสุดท้าย **calculate excel formulas** เพื่อให้คุณสามารถอ่านอาเรย์ที่จัดเรียงแล้วโดยตรงจาก C# ได้ เมื่อจบคุณจะได้โค้ดตัวอย่างที่สามารถนำไปใช้ในโปรเจกต์ใด ๆ ที่อ้างอิง Aspose.Cells (หรือไลบรารีที่คล้ายกัน). + +## ข้อกำหนดเบื้องต้น + +- .NET 6+ (โค้ดนี้ยังทำงานได้บน .NET Framework 4.7.2) +- Aspose.Cells for .NET (แพ็คเกจ NuGet ทดลองใช้ฟรี `Aspose.Cells`) +- ความเข้าใจพื้นฐานของไวยากรณ์ C# +- ไม่จำเป็นต้องติดตั้ง Microsoft Excel; ไลบรารีจะทำงานหนักให้คุณ + +หากคุณพร้อมกับข้อเหล่านี้, ไปกันเลย. + +## วิธีคำนวณ Workbook – การเริ่มต้น Workbook + +สิ่งแรกที่คุณต้องทำคือสร้างอ็อบเจ็กต์ workbook ใหม่สด ๆ คิดว่าเป็นการเปิดไฟล์ Excel ใหม่ที่ว่างเปล่าโดยสิ้นเชิง. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **ทำไมเรื่องนี้สำคัญ:** คลาส `Workbook` เป็นจุดเริ่มต้นของทุกการดำเนินการ—โดยไม่มีมันคุณไม่สามารถเพิ่มชีต, เซลล์, หรือสูตรได้ การเริ่มต้นอย่างถูกต้องทำให้คุณทำงานบนพื้นฐานที่สะอาด. + +## สร้าง Excel Workbook และเข้าถึง Worksheet + +เมื่อ workbook มีอยู่แล้ว เราต้องแน่ใจว่าเรากำลังชี้ไปที่ worksheet ที่ถูกต้อง ไลบรารีส่วนใหญ่จะตั้งค่าเริ่มต้นเป็นชีตเดียวชื่อ “Sheet1”, แต่คุณสามารถเปลี่ยนชื่อหรือเพิ่มชีตเพิ่มเติมได้ตามต้องการ. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **เคล็ดลับ:** การตั้งชื่อชีตตั้งแต่แรกช่วยให้คุณอ้างอิงในสูตรได้ง่ายขึ้น (`'Data'!A1:A10`). นอกจากนี้ยังทำให้การดีบักง่ายขึ้น. + +## เติมข้อมูลลงในเซลล์ Excel + +ต่อไปเราจะ **populate excel cells** ด้วยตัวเลขที่ต้องการจัดเรียง ตัวอย่างใช้เพียงสองเซลล์, แต่คุณสามารถขยายช่วงเป็นหลายสิบแถวได้. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **ทำไมเราถึงใช้ `PutValue`** – มันตรวจจับประเภทข้อมูลโดยอัตโนมัติ (int, double, string, ฯลฯ) และจัดเก็บอย่างเหมาะสม, ช่วยคุณหลีกเลี่ยงการแคสท์ประเภทด้วยตนเอง. + +## ใช้ฟังก์ชัน SORT ผ่านสูตร + +ฟังก์ชัน `SORT` ของ Excel ทำตามชื่อของมัน: คืนค่าอาเรย์ที่จัดเรียงแล้วโดยไม่เปลี่ยนแปลงข้อมูลต้นฉบับ เราจะใส่สูตรนั้นลงในเซลล์ `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **หมายเหตุกรณีขอบ:** `SORT` คืนผลลัพธ์เป็น **array**. ในเวอร์ชัน Excel เก่ากว่า (ก่อน Office 365) จะต้องกด Ctrl+Shift+Enter. ด้วย Aspose.Cells คุณจะได้อาเรย์โดยอัตโนมัติเมื่อคำนวณ workbook. + +## คำนวณสูตร Excel เพื่อรับผลลัพธ์ + +ในขั้นตอนนี้ workbook เพียงแค่รู้ *ว่า* ต้องคำนวณอะไร, ไม่ได้รู้ *ว่าต้องทำ* อย่างไร การเรียก `CalculateFormula` จะกระตุ้นเอนจินให้ประเมินทุกสูตร, รวมถึง `SORT` ของเรา. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**ผลลัพธ์คอนโซลที่คาดหวัง** + +``` +Sorted array: {2, 5} +``` + +> **เกิดอะไรขึ้น?** +> 1. workbook สร้างเอนจินการคำนวณภายใน. +> 2. สูตร `SORT` ตรวจสอบช่วง `A1:A2`. +> 3. เอนจินสร้างอาเรย์ใหม่, ซึ่งเราดึงจาก `B1`. + +หากคุณเปลี่ยนค่าที่ `A1` และ `A2` (หรือขยายช่วง) แล้วเรียก `CalculateFormula` อีกครั้ง, ผลลัพธ์จะอัปเดตโดยอัตโนมัติ—ไม่ต้องเขียนโค้ดเพิ่มเติม. + +## ใช้ฟังก์ชัน Sort กับชุดข้อมูลขนาดใหญ่ (ทางเลือก) + +สถานการณ์จริงส่วนใหญ่มีมากกว่าสองแถว นี่คือการปรับเล็ก ๆ ที่ทำงานกับจำนวนรายการใด ๆ: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **ทำไมคุณอาจต้องการสิ่งนี้:** การจัดเรียงช่วงขนาดใหญ่ช่วยให้คุณสร้างลีดเดอร์บอร์ด, จัดลำดับข้อมูลการเงิน, หรือเพียงทำความสะอาด CSV ที่นำเข้า ก่อนการประมวลผลต่อไป. + +## ข้อผิดพลาดทั่วไป & วิธีหลีกเลี่ยง + +| ปัญหา | สาเหตุ | วิธีแก้ | +|-------|--------|--------| +| **`#VALUE!` in B1** | สูตร `SORT` อ้างอิงช่วงที่ว่างหรือไม่ใช่ตัวเลข. | ตรวจสอบให้แน่ใจว่าแต่ละเซลล์ในช่วงต้นทางมีตัวเลขหรือข้อความที่สามารถจัดเรียงได้. | +| **Array truncation** | พยายามอ่านอาเรย์จากเซลล์เดียวโดยไม่ได้ทำการแคสท์. | แคสท์ `worksheet.Cells["B1"].Value` เป็น `object[]` (หรือประเภทที่เหมาะสม). | +| **Performance slowdown** | คำนวณ workbook ขนาดใหญ่ใหม่หลังจากการเปลี่ยนแปลงเล็กน้อยทุกครั้ง. | เรียก `CalculateFormula` หลังจากทำการแก้ไขชีตเสร็จแล้ว, หรือใช้ `CalculateFormulaOptions` เพื่อลดขอบเขต. | + +## ตัวอย่างทำงานเต็มรูปแบบ (พร้อมคัดลอก‑วาง) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **ภาพหน้าจอผลลัพธ์** +> ![how to calculate workbook result in Excel](https://example.com/images/sorted-result.png "how to calculate workbook result in Excel") + +รูปด้านบนแสดง workbook หลังการคำนวณ—เซลล์ **B1** มีอาเรย์ที่จัดเรียงแล้ว `{2, 5}`. + +## สรุป + +เราได้อธิบาย **how to calculate workbook** ค่าแบบโปรแกรมเมติกแล้ว: สร้าง Excel workbook, เติมข้อมูลในเซลล์ Excel, ฝังสูตร `SORT`, และสุดท้าย **calculate Excel formulas** เพื่อดึงข้อมูลที่จัดเรียงออกมา วิธีนี้ทำงานได้กับตัวอย่างสองเซลล์เล็ก ๆ และขยายได้อย่างราบรื่นกับชุดข้อมูลขนาดใหญ่. + +ต่อไปคุณจะทำอะไร? ลองผสานกับฟังก์ชันอื่น ๆ เช่น `FILTER`, `UNIQUE`, หรือแม้กระทั่งตรรกะสไตล์ VBA แบบกำหนดเองผ่าน `WorksheetFunction`. คุณยังสามารถบันทึก workbook ลงดิสก์ (`workbook.Save("Sorted.xlsx")`) และเปิดใน Excel เพื่อตรวจสอบด้วยภาพ. + +อย่าลังเลที่จะทดลอง—เปลี่ยนตัวเลข, ปรับช่วง, หรือเชื่อมต่อหลายสูตรเข้าด้วยกัน การอัตโนมัติคือการทำซ้ำอย่างรวดเร็ว, และตอนนี้คุณมีพื้นฐานที่มั่นคงสำหรับการต่อยอด. + +ขอให้เขียนโค้ดอย่างสนุกสนาน, และขอให้ 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/conversion-and-rendering/_index.md b/cells/thai/net/conversion-and-rendering/_index.md index 49cf78a180..01b155810b 100644 --- a/cells/thai/net/conversion-and-rendering/_index.md +++ b/cells/thai/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ เรียนรู้วิธีแปลงเวิร์กชีต Excel เป็น SVG โดยใช้ Aspose.Cells สำหรับ .NET ด้วยคู่มือทีละขั้นตอนนี้ เหมาะสำหรับนักพัฒนา .NET ที่ต้องการเรนเดอร์ Excel เป็น SVG ### [การแปลง Excel เป็น MHTML ใน .NET](./converting-excel-to-mhtml/) เรียนรู้วิธีการแปลงไฟล์ Excel เป็นรูปแบบ MHTML ใน .NET อย่างมีประสิทธิภาพด้วย Aspose.Cells เพื่อเพิ่มความสามารถในการรายงานและแบ่งปันข้อมูลของคุณ +### [สร้างภาพจาก Excel – ส่งออก Pivot เป็น PNG ใน C#](./create-image-from-excel-export-pivot-to-png-in-c/) +เรียนรู้วิธีสร้างภาพ PNG จาก Pivot Table ของ Excel ด้วย Aspose.Cells ใน C# อย่างง่ายดาย {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/thai/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..3e4d3f1661 --- /dev/null +++ b/cells/thai/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-21 +description: สร้างภาพจาก Excel ด้วย C# โดยใช้ Aspose.Cells เรียนรู้วิธีแปลง Excel + เป็นภาพ ส่งออก Pivot และบันทึกภาพเป็น PNG พร้อมตัวอย่างที่สมบูรณ์และสามารถรันได้ +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: th +og_description: สร้างภาพจาก Excel ด้วย C# อย่างรวดเร็ว คู่มือนี้แสดงวิธีแปลง Excel + เป็นภาพ ส่งออก Pivot และบันทึกภาพเป็น PNG ด้วยโค้ดที่ชัดเจน +og_title: สร้างภาพจาก Excel – ส่งออก Pivot เป็น PNG ใน C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: สร้างภาพจาก Excel – ส่งออก Pivot เป็น PNG ใน C# +url: /th/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้างภาพจาก Excel – ส่งออก Pivot เป็น PNG ใน C# + +เคยต้องการ **create image from Excel** แต่ไม่แน่ใจว่าจะใช้ API ไหนหรือไม่? คุณไม่ได้เป็นคนเดียว—นักพัฒนาหลายคนเจออุปสรรคนี้เมื่อพยายามแปลง pivot table ที่กำลังทำงานเป็น PNG ที่สามารถแชร์ได้ + +ในบทเรียนนี้เราจะพาคุณผ่านโซลูชันที่สมบูรณ์และพร้อมรันที่ **converts Excel to image**, แสดง **how to export pivot**, และอธิบาย **how to save image** เป็นไฟล์ PNG. เมื่อจบคุณจะมีเมธอดเดียวที่ทำงานทั้งหมด พร้อมเคล็ดลับสำหรับกรณีขอบที่อาจเจอ + +## สิ่งที่คุณต้องการ + +- **Aspose.Cells for .NET** (แพคเกจ NuGet `Aspose.Cells`). เป็นไลบรารีเชิงพาณิชย์แต่มีโหมดประเมินผลฟรี—เหมาะสำหรับการทดสอบ +- .NET 6+ (หรือ .NET Framework 4.6+) +- ไฟล์ Excel ง่าย ๆ (`Pivot.xlsx`) ที่มี pivot table อย่างน้อยหนึ่งตาราง +- IDE ใดก็ได้ที่คุณชอบ—Visual Studio, Rider, หรือแม้แต่ VS Code ก็ใช้ได้ + +แค่นั้นเอง ไม่ต้องใช้ DLL เพิ่มเติม ไม่ต้องใช้ COM interop และไม่มีเทคนิคการอัตโนมัติของ Excel ที่ซับซ้อน + +ตอนนี้มาดูโค้ดกัน + +## ขั้นตอนที่ 1: โหลด Workbook – สร้างภาพจาก Excel + +สิ่งแรกที่เราทำคือเปิดไฟล์ Excel ที่มี pivot table ขั้นตอนนี้สำคัญมากเพราะ renderer ทำงานกับอ็อบเจกต์ `Workbook` ที่อยู่ในหน่วยความจำ + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Why this matters:* การโหลด workbook ทำให้เราสามารถเข้าถึง **pivot** และการจัดรูปแบบใด ๆ ที่จะได้รับการเคารพเมื่อเราต่อมาทำ **convert Excel to image**. หากข้ามขั้นตอนนี้ renderer จะไม่มีอะไรให้ทำงาน + +## ขั้นตอนที่ 2: กำหนดค่าตัวเลือกการส่งออก – แปลง Excel เป็นภาพ + +ต่อไปเราบอก Aspose ว่าเราต้องการให้ภาพสุดท้ายเป็นแบบไหน คลาส `ImageOrPrintOptions` ให้เราตั้งค่า PNG, DPI, และแม้กระทั่งสีพื้นหลัง + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Why this matters:* การตั้งค่า DPI สูงทำให้ **export Excel to PNG** ดูคมชัด แม้ pivot จะมีแถวจำนวนมาก คุณสามารถลด DPI ลงได้หากต้องการไฟล์ขนาดเล็กกว่า + +## ขั้นตอนที่ 3: เรนเดอร์ Worksheet – วิธีส่งออก Pivot + +นี่คือหัวใจของกระบวนการ: แปลง worksheet (พร้อม pivot) ให้เป็นภาพ คลาส `WorksheetRender` ทำหน้าที่หนักนี้ + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Why this matters:* ที่นี่เราทำ **how to export pivot** ไปเป็นรูปแบบภาพ Renderer จะเคารพการจัดรูปแบบของ pivot ทั้งหมด, slicers, และสไตล์เชิงเงื่อนไข ทำให้ PNG ดูเหมือนกับที่คุณเห็นใน Excel อย่างแม่นยำ + +## ขั้นตอนที่ 4: รวมทุกอย่างเข้าด้วยกัน – วิธีบันทึกภาพ + +สุดท้ายเราจะเปิดเผยเมธอดสาธารณะเดียวที่เชื่อมทุกส่วนเข้าด้วยกัน นี่คือเมธอดที่คุณจะเรียกจากแอป, เซอร์วิส, หรือเครื่องมือคอนโซลของคุณ + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### ตัวอย่างการทำงานเต็มรูปแบบ + +สร้างโปรเจกต์คอนโซลใหม่, เพิ่มแพคเกจ NuGet `Aspose.Cells`, แล้ววางไฟล์ `Program.cs` ด้านล่างนี้ลงไป + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Expected result:** หลังจากรันโปรแกรม `PivotImage.png` จะปรากฏในโฟลเดอร์ที่คุณระบุ แสดงภาพ snapshot ของ pivot table อย่างพิกเซล‑เพอร์เฟ็คท์ + +![ตัวอย่างการสร้างภาพจาก Excel](https://example.com/placeholder.png "ตัวอย่างการสร้างภาพจาก Excel") + +*Alt text:* ตัวอย่างการสร้างภาพจาก Excel แสดง pivot table ที่ส่งออกเป็น PNG + +## คำถามทั่วไป & กรณีขอบ + +### ถ้า workbook ของฉันมีหลาย worksheet? + +ตัวช่วยในขณะนี้ดึง `Worksheets[0]`. หากต้องการแผ่นเฉพาะ ให้ส่งชื่อแผ่นเป็นพารามิเตอร์ + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG เบลอ—จะแก้อย่างไร? + +เพิ่มค่า `HorizontalResolution` และ `VerticalResolution` ใน `GetImageOptions`. ค่า 300–600 DPI มักให้ผลลัพธ์คมชัด จำไว้ว่า DPI สูงหมายถึงไฟล์ขนาดใหญ่ขึ้น + +### Pivot ของฉันขยายเกินหนึ่งหน้า—สามารถส่งออกทุกหน้าได้หรือไม่? + +ได้. วนลูปผ่าน `renderer.PageCount` แล้วเรียก `ToImage(pageIndex, ...)` สำหรับแต่ละหน้า, หรือตั้งค่า `OnePagePerSheet = false` เพื่อให้ได้ภาพแยกตามหน้า + +### ฉันต้องการเพียงส่วนหนึ่งของ sheet (เช่น ช่วงเฉพาะ)? + +ใช้ `ImageOrPrintOptions` เพื่อตั้งค่า `PrintArea` + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +วิธีนี้คุณจะ **convert Excel to image** เฉพาะพื้นที่ที่ต้องการเท่านั้น + +### ใช้งานได้กับไฟล์ .xls (Excel 97‑2003) หรือไม่? + +แน่นอน. Aspose.Cells แยกไฟล์ฟอร์แมตออกจากกัน คุณสามารถใส่ `.xls`, `.xlsx`, `.xlsm`, หรือแม้แต่ `.ods` แล้วยังคง **export excel to png** ได้ + +## เคล็ดลับระดับมืออาชีพ & สิ่งที่ควรระวัง + +- **License matters**: ในโหมดประเมินผล Aspose จะใส่ลายน้ำ. ติดตั้งไลเซนส์ที่เหมาะสมสำหรับการผลิต +- **Memory usage**: การเรนเดอร์ workbook ขนาดใหญ่ใช้หน่วยความจำมาก. ปล่อยอ็อบเจกต์ `Workbook` ทันทีหรือห่อด้วยบล็อก `using` +- **Thread safety**: `Workbook` ไม่ปลอดภัยต่อหลายเธรด. สร้างอินสแตนซ์ใหม่ต่อคำขอหากอยู่ในเว็บเซอร์วิส +- **Image format flexibility**: หากต้องการ JPEG หรือ BMP เพียงเปลี่ยน `ImageFormat` ใน `GetImageOptions` + +## สรุป + +ตอนนี้คุณมีสูตรครบวงจรเพื่อ **create image from Excel**, โดยเฉพาะการ **export pivot** เป็น PNG คุณภาพสูง โค้ดตัวอย่างด้านบนแสดงโค้ดเต็มที่รันได้, อธิบาย **how to save image**, และครอบคลุมกรณีเช่นหลายแผ่นหรือพื้นที่พิมพ์ที่กำหนดเอง + +ขั้นตอนต่อไป? ลองเชื่อม exporter นี้กับบริการอีเมลเพื่อส่ง PNG อัตโนมัติ, หรือทดลอง `ImageOrPrintOptions` เพื่อสร้าง PDF แทน PNG. รูปแบบเดียวกันทำงานได้กับงาน **convert excel to image** ในหลายฟอร์แมต + +มีคำถามเพิ่มเติม? แสดงความคิดเห็นได้เลย, แล้วขอให้สนุกกับการเขียนโค้ด! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..1d52a400ed 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 พร้อมคำแนะนำทีละขั้นตอนของเรา พัฒนาทักษะการจัดการเอกสารของคุณ +### [บันทึกไฟล์ Excel เป็น Docx ด้วย C# – คู่มือขั้นตอนเต็ม](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +เรียนรู้วิธีบันทึกไฟล์ Excel เป็นรูปแบบ Docx ด้วย C# อย่างละเอียดตามขั้นตอนในบทช่วยสอนนี้ {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/thai/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..87ef4f2627 --- /dev/null +++ b/cells/thai/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-21 +description: บันทึก Excel เป็น Docx ใน C# — เรียนรู้วิธีแปลง Excel เป็น Word, ฝังแผนภูมิ, + และโหลดเวิร์กบุ๊ก Excel ด้วย C# โดยใช้ Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: th +og_description: บันทึก Excel เป็น Docx ใน C# อธิบายในประโยคแรก ทำตามบทเรียนนี้เพื่อแปลง + Excel เป็น Word ฝังแผนภูมิ และโหลดเวิร์กบุ๊ก Excel ด้วย C# +og_title: บันทึก Excel เป็น Docx ด้วย C# – คู่มือฉบับสมบูรณ์ +tags: +- C# +- Aspose.Cells +- Document Conversion +title: บันทึก Excel เป็น Docx ด้วย C# – คู่มือขั้นตอนเต็ม +url: /th/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# บันทึก Excel เป็น Docx ด้วย C# – คู่มือขั้นตอนเต็ม + +เคยต้อง **บันทึก Excel เป็น Docx** แต่ไม่รู้จะเริ่มจากตรงไหนหรือไม่? คุณไม่ได้อยู่คนเดียว—นักพัฒนาหลายคนเจออุปสรรคเดียวกันเมื่อต้องการ *แปลง Excel เป็น Word* พร้อมคงกราฟไว้ครบถ้วน ในบทเรียนนี้เราจะพาคุณผ่านโค้ดที่ต้องใช้อย่างละเอียด อธิบายว่าทำไมแต่ละบรรทัดถึงสำคัญ และสาธิตวิธีฝังกราฟจาก Excel โดยไม่เสียคุณภาพ + +เรายังจะเพิ่มเคล็ดลับเพิ่มเติมเกี่ยวกับ **load Excel workbook C#** อีกด้วย เพื่อให้คุณรู้สึกมั่นใจในการแปลง Excel เป็น Docx ในโครงการ .NET ใด ๆ ไม่ต้องอ้างอิงแบบคลุมเครือ เพียงตัวอย่างที่ทำงานได้จริงที่คุณสามารถคัดลอก‑วางได้ทันที + +--- + +## สิ่งที่คู่มือนี้ครอบคลุม + +- โหลดไฟล์ `.xlsx` ที่มีอยู่ด้วย Aspose.Cells (หรือไลบรารีที่เข้ากันได้) +- การจัดการแผ่นงานหรือกราฟแบบเลือกก่อนแปลง (optional) +- บันทึกเวิร์กบุ๊กเป็นไฟล์ `.docx` พร้อมคงกราฟที่ฝังอยู่ +- ตรวจสอบผลลัพธ์และจัดการกรณีขอบเขตทั่วไป เช่น เวิร์กบุ๊กขนาดใหญ่หรือประเภทกราฟที่ไม่รองรับ + +ถ้าคุณกำลังสงสัย **ทำไมต้องแปลง Excel เป็น Docx** ลองนึกถึงรายงานที่ต้องส่งให้ผู้ที่ไม่ใช่เทคนิค—เอกสาร Word เป็นที่ยอมรับทั่วโลกและคงความแม่นยำของกราฟไว้ได้ มาเริ่มกันเลย + +--- + +## สิ่งจำเป็น – Load Excel Workbook C# + +ก่อนจะเขียนโค้ดใด ๆ ตรวจสอบว่าคุณมีสิ่งต่อไปนี้: + +| Requirement | Reason | +|-------------|--------| +| **.NET 6.0 หรือใหม่กว่า** | รันไทม์สมัยใหม่ ประสิทธิภาพดีกว่า และรองรับ Aspose.Cells อย่างเต็มที่ | +| **Aspose.Cells for .NET** (แพ็กเกจ NuGet `Aspose.Cells`) | ให้คลาส `Workbook` ที่ใช้ในการอ่าน Excel และส่งออกเป็น DOCX | +| **Visual Studio 2022** (หรือ IDE ที่คุณชอบ) | ช่วยดีบักและ IntelliSense | +| **ไฟล์ Excel ที่มีกราฟ** (`AdvancedCharts.xlsx`) | เพื่อดูฟีเจอร์ *embed excel charts* ทำงานจริง | + +คุณสามารถติดตั้งไลบรารีผ่าน Package Manager Console ได้ดังนี้: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** หากคุณใช้ CI/CD pipeline ให้เพิ่มแพ็กเกจลงใน `*.csproj` เพื่อให้การ restore ทำงานอัตโนมัติ + +--- + +## ขั้นตอนที่ 1 – โหลด Excel Workbook (เริ่มบันทึก Excel เป็น Docx ที่นี่) + +สิ่งแรกที่ทำคือโหลดเวิร์กบุ๊กต้นฉบับ ซึ่งเป็นจุดที่คำว่า **load excel workbook c#** เข้ามาเกี่ยวข้อง + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **ทำไมขั้นตอนนี้สำคัญ:** การโหลดไฟล์ทำให้คุณเข้าถึงทุกแผ่นงาน, กราฟ, และสไตล์ หากไม่มีขั้นตอนนี้ จะไม่มีอะไรให้แปลงและ API จะไม่สามารถคงกราฟที่ฝังไว้ได้ + +--- + +## ขั้นตอนที่ 2 – (Optional) ปรับแต่งเวิร์กบุ๊กก่อนแปลง + +คุณอาจต้องการเปลี่ยนชื่อแผ่นงาน, ซ่อนคอลัมน์, หรือแม้แต่แก้ชื่อกราฟ ขั้นตอนนี้เป็นทางเลือกแต่แสดงให้เห็นว่าการแปลงสามารถปรับได้ตามต้องการ + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **กรณีขอบเขต:** ประเภทกราฟเก่า (เช่น Radar) อาจไม่แสดงผลสมบูรณ์ใน Word ควรทดสอบกราฟของคุณหลังแปลง + +--- + +## ขั้นตอนที่ 3 – บันทึกเวิร์กบุ๊กเป็นเอกสาร Word (การทำ “Save Excel as Docx” หลัก) + +นี่คือช่วงเวลาที่สำคัญ: เราจะ **บันทึก Excel เป็น Docx** จริง ๆ + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +เมื่อรันโค้ดนี้ Aspose.Cells จะเขียนแต่ละแผ่นงานเป็นตารางภายในไฟล์ Word และฝังกราฟแต่ละอันเป็นภาพความละเอียดสูง ผลลัพธ์คือไฟล์ `.docx` ที่แก้ไขได้เต็มที่และดูเหมือนมุมมอง Excel ดั้งเดิม + +> **ทำไมเลือก DOCX แทน PDF?** DOCX ให้ผู้รับแก้ไขข้อความหรือเปลี่ยนกราฟได้ต่อไป ในขณะที่ PDF เป็นภาพคงที่ + +--- + +## ขั้นตอนที่ 4 – ตรวจสอบผลลัพธ์และแก้ไขปัญหาที่พบบ่อย + +หลังจากแปลงเสร็จ เปิด `ChartsInWord.docx` ด้วย Microsoft Word: + +1. **ตรวจสอบว่าแต่ละแผ่นงานปรากฏเป็นส่วนแยก** – คุณควรเห็นตารางที่สะท้อนข้อมูลจาก Excel +2. **ยืนยันว่ากราฟถูกฝัง** – ควรเป็นภาพที่เลือกได้ ไม่ใช่ตัวแทนที่ขาดหาย +3. **หากกราฟหาย** ให้ตรวจสอบว่าประเภทกราฟนั้นรองรับโดย Aspose.Cells หรือไม่ (ดู [รายการความเข้ากันได้อย่างเป็นทางการ](https://docs.aspose.com/cells/net/supported-chart-types/)) + +> **Pro tip:** สำหรับเวิร์กบุ๊กขนาดใหญ่ ควรเพิ่มค่า `MemorySetting` ของ Aspose.Cells เพื่อหลีกเลี่ยง `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## ตัวอย่างทำงานเต็มรูปแบบ (พร้อมคัดลอก‑วาง) + +ด้านล่างเป็นโปรแกรมครบชุดพร้อมคอมไพล์ เพียงเปลี่ยน `YOUR_DIRECTORY` ให้เป็นพาธโฟลเดอร์จริงบนเครื่องของคุณ + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**ผลลัพธ์ที่คาดหวัง:** เอกสาร Word (`ChartsInWord.docx`) ที่มีทุกแผ่นงานเป็นตารางและทุกกราฟเป็นภาพฝังความละเอียดสูง เปิดใน Word แล้วคุณจะเห็นเลย์เอาต์เดียวกับใน Excel + +--- + +## คำถามที่พบบ่อย (FAQ) + +**ถาม: สามารถแปลงหลายไฟล์ Excel ในลูปได้หรือไม่?** +ตอบ: แน่นอน. ห่อโค้ดแปลงไว้ในลูป `foreach (var file in Directory.GetFiles(...))` แล้วใช้แพทเทิร์น `Workbook` เดียวกันซ้ำได้ + +**ถาม: ทำงานกับไฟล์ `.xls` ได้หรือไม่?** +ตอบ: ได้—Aspose.Cells รองรับฟอร์แมตเก่า เพียงเปลี่ยนนามสกุลต้นทาง; การเรียก `SaveFormat.Docx` ยังคงใช้ได้ + +**ถาม: ถ้าต้องการคงสูตรไว้เมื่อแปลงจะทำอย่างไร?** +ตอบ: Word ไม่รองรับสูตร Excel โดยตรง การแปลงจะทำให้สูตรกลายเป็นค่าที่คำนวณแล้ว หากต้องการคำนวณแบบไดนามิก ให้ฝังเวิร์กบุ๊กเป็น OLE object แทน + +**ถาม: มีวิธีควบคุมความละเอียดของภาพกราฟหรือไม่?** +ตอบ: ใช้ `ImageOrPrintOptions` ก่อนบันทึก: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## โบนัส: ฝังกราฟ Excel ลงใน Word โดยตรง (เกินขั้นตอน Save Excel as Docx) + +หากต้องการให้กราฟยังแก้ไขได้ใน Word คุณสามารถฝังแผ่นงานทั้งหมดเป็น OLE object: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +เทคนิคนี้ *embed excel charts* เป็นออบเจ็กต์แบบไลฟ์ ทำให้ผู้ใช้สามารถดับเบิล‑คลิกเพื่อแก้ไขใน Excel ได้โดยตรงจาก Word เป็นทางเลือกที่สะดวกเมื่อต้องการความโต้ตอบ + +--- + +## สรุป + +ตอนนี้คุณมีวิธีแก้ปัญหาแบบครบวงจรสำหรับ **save Excel as docx** ด้วย C# คู่มือได้ครอบคลุมการโหลดเวิร์กบุ๊ก, การปรับแต่งเสริม, การบันทึกจริง, ขั้นตอนตรวจสอบ, และแม้กระทั่งการฝังกราฟสำหรับกรณีแก้ไขได้ ด้วยโค้ดด้านบนคุณสามารถ **แปลง Excel เป็น Word**, คงกราฟทั้งหมด, และจัดการไฟล์ขนาดใหญ่ได้อย่างราบรื่น + +พร้อมรับความท้าทายต่อไปหรือยัง? ลองทำการแปลงแบบแบตช์, ผสานโลจิกนี้เข้าใน ASP.NET Core API, หรือสำรวจ **convert Excel to docx** สำหรับแดชบอร์ดหลายแผ่น งานอัตโนมัติเอกสารที่คุณเพิ่งเรียนรู้เป็นพื้นฐานสำคัญสำหรับโครงการใด ๆ + +มีคำถามหรือเวิร์กบุ๊กที่แปลงไม่สำเร็จ? แสดงความคิดเห็นได้เลย เราจะช่วยกันแก้ไข Happy coding! + +![แผนภาพแสดงการไหลจากเวิร์กบุ๊ก Excel ไปยังไฟล์ Word DOCX – ภาพอธิบายกระบวนการบันทึก Excel เป็น Docx](https://example.com/images/save-excel-as-docx.png "Workflow การบันทึก Excel เป็น Docx") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..b2db674945 100644 --- a/cells/thai/net/document-properties/_index.md +++ b/cells/thai/net/document-properties/_index.md @@ -20,7 +20,7 @@ คุณสมบัติเอกสารใน Excel ทำหน้าที่เหมือนเมตาดาต้าเกี่ยวกับไฟล์ของคุณ ลองนึกภาพดู: ไฟล์ Excel แต่ละไฟล์มีบัตรประจำตัวของตัวเองซึ่งประกอบด้วยข้อมูลสำคัญ เช่น ชื่อเรื่อง ผู้เขียน และคำสำคัญ เมื่อใช้ Aspose.Cells สำหรับ .NET การเข้าถึงและจัดการคุณสมบัติเหล่านี้จะกลายเป็นเรื่องง่าย โปรดจำไว้ว่าคุณสมบัติเหล่านี้ไม่เพียงช่วยให้คุณจัดระเบียบไฟล์ได้เท่านั้น แต่ยังช่วยเพิ่มความสามารถในการค้นหาเอกสารของคุณได้อีกด้วย อยากรู้ไหมว่าทำอย่างไร มาเริ่มกันเลย! ## การเข้าถึงคุณสมบัติของเอกสาร -ก่อนอื่นมาพูดถึงการเข้าถึงคุณสมบัติของเอกสารใน .NET กันก่อน นี่คือจุดเริ่มต้น ลองนึกภาพว่าคุณต้องการทราบว่าใครเป็นผู้เขียนสเปรดชีตเฉพาะเจาะจง โดยใช้ Aspose.Cells คุณสามารถดึงข้อมูลนี้ได้อย่างรวดเร็ว [การเข้าถึงคุณสมบัติของเอกสารใน .NET](./accessing-document-properties/) บทช่วยสอนคือคู่มือที่คุณควรอ่าน เพราะจะให้คำแนะนำที่ใช้งานง่ายในการค้นหาอัญมณีที่ซ่อนอยู่ภายในไฟล์ของคุณ คุณจะได้เรียนรู้วิธีเรียกค้นคุณสมบัติต่างๆ เช่น วันที่สร้างและวันที่แก้ไขล่าสุด และเชื่อฉันเถอะว่ามันง่ายกว่าเช้าวันอาทิตย์เสียอีก! +ก่อนแรกมาพูดถึงการเข้าถึงคุณสมบัติของเอกสารใน .NET กันก่อน นี่คือจุดเริ่มต้น ลองนึกภาพว่าคุณต้องการทราบว่าใครเป็นผู้เขียนสเปรดชีตเฉพาะเจาะจง โดยใช้ Aspose.Cells คุณสามารถดึงข้อมูลนี้ได้อย่างรวดเร็ว [การเข้าถึงคุณสมบัติของเอกสารใน .NET](./accessing-document-properties/) บทช่วยสอนคือคู่มือที่คุณควรอ่าน เพราะจะให้คำแนะนำที่ใช้งานง่ายในการค้นหาอัญมณีที่ซ่อนอยู่ภายในไฟล์ของคุณ คุณจะได้เรียนรู้วิธีเรียกค้นคุณสมบัติต่างๆ เช่น วันที่สร้างและวันที่แก้ไขล่าสุด และเชื่อฉันเถอะว่ามันง่ายกว่าเช้าวันอาทิตย์เสียอีก! ## การเพิ่มคุณสมบัติของเอกสาร ตอนนี้คุณสามารถเข้าถึงคุณสมบัติที่มีอยู่แล้วได้ แล้วถ้าคุณต้องการเพิ่มคุณสมบัติของคุณเองล่ะ? นี่คือจุดที่ความคิดสร้างสรรค์เข้ามามีบทบาท! คุณอาจต้องการแท็กไฟล์ Excel ของคุณด้วยชื่อโครงการหรือรายละเอียดที่เกี่ยวข้องอื่นๆ โดยทำตามขั้นตอนต่อไปนี้ [การเพิ่มคุณสมบัติเอกสารใน .NET](./adding-document-properties/) บทช่วยสอนนี้จะช่วยให้คุณได้ค้นพบวิธีการเพิ่มคุณสมบัติที่กำหนดเองให้กับเอกสารของคุณ เหมือนกับการเพิ่มสัมผัสส่วนตัวให้กับไฟล์ของคุณ ลองนึกภาพว่าคุณกำลังตกแต่งบ้านของคุณ ยิ่งคุณเพิ่มสัมผัสที่เป็นเอกลักษณ์มากเท่าไหร่ ก็ยิ่งสะท้อนถึงบุคลิกของคุณมากขึ้นเท่านั้น @@ -35,6 +35,8 @@ เรียนรู้วิธีการเข้าถึงคุณสมบัติเอกสารใน Excel โดยใช้ Aspose.Cells สำหรับ .NET พร้อมคำแนะนำทีละขั้นตอนของเรา จัดการสเปรดชีตของคุณอย่างมีประสิทธิภาพ ### [การเพิ่มคุณสมบัติเอกสารใน .NET](./adding-document-properties/) เรียนรู้วิธีการเพิ่มคุณสมบัติเอกสารใน Excel โดยใช้ Aspose.Cells สำหรับ .NET ด้วยคู่มือทีละขั้นตอนโดยละเอียดนี้ +### [วิธีบันทึก XLSB – เพิ่มคุณสมบัติที่กำหนดเองใน C#](./how-to-save-xlsb-add-custom-property-in-c/) +เรียนรู้วิธีบันทึกไฟล์ XLSB พร้อมเพิ่มคุณสมบัติที่กำหนดเองโดยใช้ C# และ Aspose.Cells สำหรับ .NET {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/thai/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..7e22ff932a --- /dev/null +++ b/cells/thai/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,274 @@ +--- +category: general +date: 2026-03-21 +description: เรียนรู้วิธีบันทึกไฟล์ xlsb ด้วย C# พร้อมเพิ่มคุณสมบัติกำหนดเองเช่น ProjectId + คู่มือนี้จะแสดงวิธีสร้างเวิร์กบุ๊ก Excel, เพิ่มคุณสมบัติกำหนดเอง, และตรวจสอบมัน. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: th +og_description: ค้นพบวิธีบันทึกไฟล์ xlsb และเพิ่มคุณสมบัติกำหนดเองเช่น ProjectId ด้วย + C# คู่มือแบบขั้นตอนพร้อมโค้ดเต็ม +og_title: วิธีบันทึกไฟล์ XLSB – เพิ่มคุณสมบัติกำหนดเองใน C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: วิธีบันทึกไฟล์ XLSB – เพิ่มคุณสมบัติกำหนดเองใน C# +url: /th/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีบันทึก XLSB – เพิ่ม Custom Property ใน C# + +เคยสงสัย **วิธีบันทึกไฟล์ xlsb** พร้อมกับใส่เมตาดาต้าไว้ข้างในไหม? บางทีคุณอาจกำลังสร้างเครื่องมือรายงานที่ต้องการ ProjectId ที่ซ่อนอยู่, หรือแค่ต้องการแท็ก worksheet เพื่อการประมวลผลต่อไป **วิธีบันทึก xlsb** ไม่ใช่เรื่องยาก, แต่การผสมกับ custom property จะทำให้เกิดความซับซ้อนเล็กน้อยที่หลายคนมักมองข้าม + +ในบทเรียนนี้เราจะเดินผ่านการสร้าง Excel workbook, การเพิ่ม custom property (ใช่, *add custom property*), การบันทึกไฟล์เป็น **XLSB** binary workbook, และสุดท้ายการโหลดกลับมาเพื่อพิสูจน์ว่า property ยังอยู่ได้ เราจะพูดถึง **how to add custom property** เช่น ProjectId ด้วย, เพื่อให้คุณได้แพทเทิร์นที่นำไปใช้ซ้ำได้ในโปรเจกต์ต่อ ๆ ไป + +> **เคล็ดลับมืออาชีพ:** หากคุณใช้ไลบรารี Aspose.Cells อยู่แล้ว (โค้ดด้านล่างใช้), คุณจะได้รับการสนับสนุน custom property โดยไม่ต้องเจอปัญหา COM interop + +--- + +## Prerequisites + +- .NET 6+ (หรือ .NET Framework 4.6+). +- Aspose.Cells for .NET – ติดตั้งผ่าน NuGet: `Install-Package Aspose.Cells`. +- ความรู้พื้นฐาน C# – ไม่ต้องซับซ้อน, แค่ `using` บางบรรทัด + +แค่นั้นเอง ไม่ต้องติดตั้ง Office, ไม่ต้องใช้ interop, เพียงโค้ดที่จัดการโดย .NET เท่านั้น + +--- + +## Step 1: How to Save XLSB – Create Excel Workbook + +สิ่งแรกที่ต้องทำคือสร้างอ็อบเจกต์ workbook ใหม่ คิดว่าเป็นการเปิดไฟล์ Excel เปล่าที่อยู่ในหน่วยความจำจนกว่าจะบันทึกลงดิสก์ + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +ทำไมต้องเริ่มจาก workbook? เพราะ **create excel workbook** เป็นพื้นฐานสำหรับการจัดการต่อไป—ไม่ว่าจะเป็นการใส่สูตร, แผนภูมิ, หรือ custom property. คลาส `Workbook` จะเป็นตัวแทนไฟล์ทั้งหมด, ส่วน `Worksheets` ให้คุณเข้าถึงแท็บแต่ละชีท + +--- + +## Step 2: Add Custom Property to Worksheet + +ต่อมาคือส่วนที่สนุก—**add custom property**. ใน Aspose.Cells คุณสามารถแนบ property เข้าไปที่ worksheet (หรือที่ workbook) ได้โดยตรง ที่นี่เราจะเก็บ ProjectId แบบตัวเลขที่บริการ downstream สามารถอ่านได้โดยไม่ต้องยุ่งกับเซลล์ที่มองเห็น + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**How to add custom property**? เพียงเรียก `CustomProperties.Add(name, value)`. API จะจัดการ XML ภายในให้เอง, คุณไม่ต้องกังวลเรื่องระดับต่ำ นี่คือวิธีที่ปลอดภัยที่สุดในการฝังเมตาดาต้าที่ผู้ใช้ไม่เห็น + +--- + +## Step 3: Save the Workbook as XLSB + +เมื่อ workbook พร้อมและ custom property ถูกแนบแล้ว, ถึงเวลาที่ **how to save xlsb**. ฟอร์แมต XLSB จะเก็บข้อมูลในรูปแบบไบนารี, ซึ่งมักจะมีขนาดเล็กกว่าและเปิดได้เร็วกว่า XLSX แบบคลาสสิก + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +การบันทึกเป็น XLSB ทำได้ง่ายโดยส่ง `SaveFormat.Xlsb` ไปยังเมธอด `Save`. หากคุณกังวลว่าจะทำให้ custom property หายไป—ไม่ต้องห่วง, Aspose.Cells จะรักษา property ทั้งระดับ workbook และ worksheet ไว้ในไฟล์ไบนารี + +--- + +## Step 4: Verify the Custom Property + +นิสัยที่ดีคือการโหลดไฟล์กลับมาและตรวจสอบว่า property ยังอยู่หลังการ round‑trip นี้ นอกจากนี้ยังแสดง **how to add custom property** อีกครั้งหากต้องการอัปเดตในภายหลัง + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +หากคอนโซลพิมพ์ `12345`, คุณได้ทำ **how to save xlsb** *และ* **add project id** สำเร็จในขั้นตอนเดียว Property จะอยู่ในเมตาดาต้าแบบภายในของไฟล์, ไม่แสดงบน UI แต่โค้ดสามารถอ่านได้อย่างสมบูรณ์ + +--- + +## Additional Tips: Adding Multiple Properties & Edge Cases + +### Adding More Than One Property + +คุณสามารถเพิ่ม property ได้หลายค่าเท่าที่ต้องการ: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Updating an Existing Property + +หาก property มีอยู่แล้ว, เพียงกำหนดค่าใหม่: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Handling Missing Properties + +การพยายามอ่าน property ที่ไม่มีจะทำให้เกิด `KeyNotFoundException`. ควรตรวจสอบก่อน: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Cross‑Version Compatibility + +XLSB ทำงานบน Excel 2007 + และบนเวอร์ชันเว็บของ Excel. อย่างไรก็ตาม Office เวอร์ชันเก่า (< 2007) ไม่สามารถเปิดไฟล์ XLSB ได้. หากต้องการความเข้ากันได้กว้างขึ้น, พิจารณาบันทึกสำเนาเป็น XLSX เพิ่มเติม + +### Performance Considerations + +ไฟล์ XLSB แบบไบนารีมักมีขนาดเล็กกว่าประมาณ 30‑50 % เมื่อเทียบกับ XLSX, และโหลดได้เร็วกว่า. สำหรับชุดข้อมูลขนาดใหญ่ (หลายแสนแถว) การประหยัดเวลาอาจเห็นได้ชัด + +--- + +## Full Working Example + +ด้านล่างเป็นโปรแกรมเต็มที่คุณสามารถคัดลอก‑วางลงในโปรเจกต์คอนโซล. มีขั้นตอนทั้งหมด, การจัดการข้อผิดพลาด, และคอมเมนต์ที่จำเป็นเพื่อให้คุณเริ่มทำงานได้ทันที + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Expected output** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +หากคุณเห็นผลลัพธ์ข้างต้น, คุณได้เชี่ยวชาญ **how to save xlsb**, **add custom property**, และ **add project id**—ทั้งหมดในสคริปต์ที่เรียบง่ายและนำกลับมาใช้ใหม่ได้ + +--- + +## Frequently Asked Questions + +**Q: Does this work with .NET Core?** +A: Absolutely. Aspose.Cells รองรับ .NET Standard, ดังนั้นโค้ดเดียวกันทำงานบน .NET 5/6/7 และบน .NET Framework + +**Q: Can I add a custom property to the whole workbook instead of a single sheet?** +A: Yes. ใช้ `workbook.CustomProperties.Add("Key", value);` เพื่อแนบที่ระดับ workbook + +**Q: What if I need to store a large string (e.g., JSON) as a property?** +A: API ยอมรับสตริงความยาวใดก็ได้, แต่ควรระวังว่า blob ขนาดใหญ่อาจทำให้ไฟล์ใหญ่ขึ้น. สำหรับข้อมูลมหาศาล, พิจารณาใช้ hidden sheet แทน + +**Q: Is the custom property visible in Excel’s UI?** +A: ไม่ได้แสดงโดยตรง. ผู้ใช้สามารถดูได้ผ่าน **File → Info → Properties → Advanced Properties → Custom**, แต่จะไม่ปรากฏบนตาราง + +--- + +## Conclusion + +เราได้อธิบาย **how to save xlsb** ใน C# พร้อมกับ **adding a custom property** เช่น ProjectId. ด้วยการทำตามขั้นตอน **create excel workbook**, **add custom property**, **save as XLSB**, และ **verify**, คุณจะมีอ้างอิงที่ชัดเจนและพร้อมใช้ทั้งสำหรับเครื่องมือค้นหาและ AI assistants + +ต่อไปคุณอาจสำรวจ: + +- **How to add custom property** ให้หลาย worksheet ในลูป +- การส่งออกข้อมูลจาก DataTable ไปยัง workbook ก่อนบันทึก +- การเข้ารหัสไฟล์ XLSB เพื่อเพิ่มความปลอดภัย + +ลองปรับเปลี่ยนชื่อ property, หรือสลับไปใช้ฟอร์แมต XLSX หากต้องการความเข้ากันได้กว้างกว่า. มีสถานการณ์ที่ท้าทาย? แสดงความคิดเห็น, เราจะช่วยกันแก้ไข. Happy coding! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/thai/net/excel-autofilter-validation/_index.md index b3cb8f2647..ee4efb73a3 100644 --- a/cells/thai/net/excel-autofilter-validation/_index.md +++ b/cells/thai/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ เรียนรู้วิธีกรองแถว Excel อัตโนมัติโดยใช้ Aspose.Cells ใน .NET ได้อย่างง่ายดายด้วยคู่มือทีละขั้นตอนที่ครอบคลุมนี้ ### [การตรวจสอบข้อมูลทศนิยมใน Excel](./decimal-data-validation-in-excel/) ค้นพบวิธีการนำการตรวจสอบข้อมูลทศนิยมไปใช้ใน Excel โดยใช้ Aspose.Cells สำหรับ .NET ด้วยคู่มือที่ทำตามได้ง่ายของเรา ปรับปรุงความสมบูรณ์ของข้อมูลได้อย่างง่ายดาย +### [การลบ AutoFilter จาก Excel – คู่มือ C# ฉบับสมบูรณ์](./remove-autofilter-from-excel-complete-c-guide/) +เรียนรู้วิธีลบ AutoFilter จากไฟล์ Excel ด้วย Aspose.Cells ใน .NET ด้วยคู่มือ C# ที่ครบถ้วนและเข้าใจง่าย {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/thai/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..0bb81f745a --- /dev/null +++ b/cells/thai/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,229 @@ +--- +category: general +date: 2026-03-21 +description: เรียนรู้วิธีลบ AutoFilter จาก Excel ด้วย C# คู่มือแบบขั้นตอนนี้ยังแสดงวิธีลบ + AutoFilter ปิดการทำงานของ AutoFilter ใน Excel และล้างตัวกรองของตาราง Excel +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: th +og_description: ลบ AutoFilter จาก Excel ด้วย C# บทเรียนนี้แสดงวิธีการลบ AutoFilter + ปิดการใช้งาน AutoFilter ใน Excel และล้างตัวกรองตาราง Excel เพียงไม่กี่บรรทัดของโค้ด +og_title: ลบ AutoFilter จาก Excel – คู่มือ C# ฉบับสมบูรณ์ +tags: +- C# +- Aspose.Cells +- Excel automation +title: ลบ AutoFilter จาก Excel – คู่มือ C# ฉบับสมบูรณ์ +url: /th/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ลบ AutoFilter จาก Excel – คู่มือ C# ฉบับสมบูรณ์ + +เคยต้องการ **remove AutoFilter from Excel** แต่ไม่แน่ใจว่า API ใดที่จริงๆ แล้วจะปิดการทำงานของมันหรือไม่? คุณไม่ได้เป็นคนเดียว ในหลายๆ pipeline ของการรายงาน UI ของฟิลเตอร์มักขัดขวางการประมวลผลต่อเนื่อง ดังนั้นการลบออกให้สะอาดจึงเป็นความต้องการทั่วไป ในบทแนะนำนี้เราจะพาไปผ่านโซลูชันที่กระชับและพร้อมใช้งานในระดับ production ซึ่งไม่เพียงแสดง **how to delete AutoFilter** เท่านั้น แต่ยังอธิบายการ **turn off AutoFilter Excel** แบบฟิลเตอร์ และวิธี **clear Excel table filter** อย่างสมบูรณ์ + +> **สิ่งที่คุณจะได้เรียนรู้:** โปรแกรม C# ที่พร้อมรันซึ่งโหลด workbook ที่มีอยู่แล้ว, ลบฟิลเตอร์จากตารางแรก, และบันทึกสำเนาใหม่โดยไม่มีองค์ประกอบ UI ที่เหลืออยู่ + +## ข้อกำหนดเบื้องต้น + +- .NET 6+ (or .NET Framework 4.7.2+) +- The **Aspose.Cells** NuGet package (the API we use in the code) +- A sample workbook (`TableWithFilter.xlsx`) that already contains a table with an AutoFilter applied +- A basic understanding of C# syntax (no deep Excel internals required) + +ถ้าคุณมีทั้งหมดนี้แล้ว, ไปต่อกันเลย. + +--- + +## ขั้นตอนที่ 1 – ติดตั้ง Aspose.Cells และตั้งค่าโปรเจกต์ + +ก่อนที่โค้ดใดจะทำงาน, คุณต้องมีไลบรารีที่ให้คลาส `Workbook`, `Worksheet`, และ `ListObject` + +```bash +dotnet add package Aspose.Cells +``` + +> **เคล็ดลับ:** ใช้เวอร์ชันประเมินฟรีสำหรับการทดสอบ; เพียงจำไว้ว่าให้ตั้งค่า license key ก่อนนำไปใช้งานจริง + +### ทำไมเรื่องนี้ถึงสำคัญ +Aspose.Cells ทำหน้าที่เป็นชั้นนามธรรมของการจัดการ OOXML ระดับต่ำ, ทำให้เราสามารถจัดการตาราง, ฟิลเตอร์, และสไตล์โดยไม่ต้องพาร์ส XML ด้วยตนเอง นั่นคือเหตุผลที่งาน **remove autofilter from excel** กลายเป็นบรรทัดเดียวแทนการจัดการ XML หลายบรรทัด + +--- + +## ขั้นตอนที่ 2 – โหลด Workbook ที่มีตารางอยู่ + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +`Workbook` object แสดงถึงไฟล์ Excel ทั้งหมด การโหลดมันก่อนทำให้เรามีสำเนาในหน่วยความจำที่สะอาดเพื่อทำงานต่อ ซึ่งสำคัญเมื่อคุณต่อมาจะ **clear excel table filter** โดยไม่กระทบแผ่นงานอื่น + +--- + +## ขั้นตอนที่ 3 – ดึง Worksheet และตารางเป้าหมาย + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +**ListObject** คือคำที่ Aspose ใช้เรียกตาราง Excel แม้ว่าแผ่นของคุณจะมีหลายตาราง, คุณก็สามารถวนลูปผ่าน `worksheet.ListObjects` และใช้ตรรกะเดียวกันกับแต่ละตาราง ความยืดหยุ่นนี้ตอบคำถาม “ถ้าฉันมีหลายตารางล่ะ?” ที่นักพัฒนาหลายคนถาม + +--- + +## ขั้นตอนที่ 4 – ลบ AutoFilter จากตาราง + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +การตั้งค่า `AutoFilter` เป็น `null` **removes the filter object entirely**, ซึ่งเป็นวิธีที่เชื่อถือได้ที่สุดในการ **how to delete autofilter**. คุณสมบัติทางเลือก `ShowAutoFilter` เพียงซ่อน UI แต่ยังคงทำงานของฟิลเตอร์อยู่—มีประโยชน์หากคุณต้องการ **turn off autofilter excel** เพียงแค่ด้านภาพโดยยังคงเกณฑ์พื้นฐานไว้ + +> **กรณีพิเศษ:** หากตารางไม่มี AutoFilter ถูกใช้, `table.AutoFilter` จะเป็น `null` อยู่แล้ว บรรทัดข้างบนจึงปลอดภัย; มันจะไม่ทำอะไรเลย + +--- + +## ขั้นตอนที่ 5 – บันทึก Workbook ที่แก้ไขแล้ว + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +การบันทึกเป็นไฟล์ใหม่ทำให้ไฟล์ต้นฉบับยังคงอยู่—เป็นแนวทางปฏิบัติที่ดีที่สุดเมื่อทำการแปลง Excel หลังจากรันโปรแกรม, เปิด `NoAutoFilter.xlsx`; คุณจะเห็นตารางที่ไม่มี dropdown ฟิลเตอร์ใดๆ, ยืนยันว่าการดำเนินการ **remove excel table filter** สำเร็จ + +--- + +## ตรวจสอบผลลัพธ์ – สิ่งที่คาดหวัง + +1. **เปิด `NoAutoFilter.xlsx`** ใน Excel. +2. **เลือกตาราง** – ไอคอนกรวยเล็กๆ ข้างหัวคอลัมน์ควรหายไป. +3. **ตรวจสอบแผ่นงานอื่น** – พวกมันยังไม่ถูกแก้ไข, แสดงว่าเราได้ทำ **clear excel table filter** เฉพาะบนแผ่นที่ต้องการเท่านั้น. + +หากไอคอนยังคงอยู่, ตรวจสอบอีกครั้งว่าคุณได้เลือก `ListObject` index ที่ถูกต้องหรือไม่ จำไว้ว่า ตาราง Excel ใน Aspose มีการนับจากศูนย์, ดังนั้น `ListObjects[0]` คือ ตารางแรกบนแผ่น + +--- + +## การจัดการหลายตารางหรือหลายแผ่นงาน + +บางครั้งคุณอาจต้อง **remove autofilter from excel** workbook ที่มีหลายตารางกระจายบนแผ่นต่างๆ นี่คือตัวขยายอย่างรวดเร็ว: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +ลูปนี้รับประกันว่า **turn off autofilter excel** ทุกที่, กำจัดฟิลเตอร์ที่ซ่อนอยู่ที่อาจทำให้การนำเข้าข้อมูลต่อเนื่องล้มเหลว + +--- + +## ข้อผิดพลาดทั่วไป & วิธีหลีกเลี่ยง + +| ข้อผิดพลาด | สาเหตุ | วิธีแก้ | +|------------|--------|--------| +| **Filter remains after saving** | การใช้ `ShowAutoFilter = false` เพียงซ่อน UI. | ใช้ `table.AutoFilter = null` เพื่อลบอย่างแท้จริง. | +| **Wrong table index** | สมมติว่าตารางแรกคือที่ต้องการ. | ตรวจสอบ `worksheet.ListObjects.Count` และใช้ชื่อที่มีความหมาย (`tbl.Name`). | +| **Missing license** | เวอร์ชันประเมินอาจใส่น้ำหนัก. | ลงทะเบียน license ตั้งแต่ต้น: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **File locked** | Excel ยังเปิดไฟล์ต้นทางอยู่. | ตรวจสอบให้แน่ใจว่า workbook ปิดใน Excel ก่อนรันสคริปต์. | + +--- + +## โบนัส: การเพิ่ม AutoFilter กลับ (หากคุณเปลี่ยนใจ) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +การมีการดำเนินการย้อนกลับพร้อมใช้งานทำให้บทแนะนำนี้เป็นแหล่งเดียวสำหรับทั้งสถานการณ์ **remove autofilter from excel** และ **how to delete autofilter** + +--- + +## ตัวอย่างทำงานเต็มรูปแบบ (พร้อมคัดลอก‑วาง) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +การรันโค้ดข้างต้นจะ **remove autofilter from excel** สำหรับทุกตารางใน workbook, ให้คุณมีพื้นฐานที่สะอาดสำหรับการประมวลผลต่อไป + +--- + +## สรุป + +เราได้อธิบายทุกอย่างที่คุณต้องการเพื่อ **remove autofilter from excel** ด้วย C# ตั้งแต่การติดตั้ง Aspose.Cells, การโหลด workbook, การหาตาราง, การลบฟิลเตอร์จริงๆ, จนถึงการบันทึกไฟล์ที่สะอาด—แต่ละขั้นตอนอธิบายพร้อมเหตุผลที่อยู่เบื้องหลัง ตอนนี้คุณรู้วิธี **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel**, และ **clear excel table filter** ในโค้ดสั้นๆ ที่ใช้ซ้ำได้ + +พร้อมสำหรับความท้าทายต่อไปหรือยัง? ลองทำอัตโนมัติการเพิ่ม conditional formatting, หรือสำรวจวิธี **add an AutoFilter back** ด้วยโปรแกรม ทั้งสองหัวข้อสร้างต่อจากแนวคิดที่เราเพิ่งอธิบายและจะทำให้กล่องเครื่องมือการอัตโนมัติ Excel ของคุณยิ่งเต็มขึ้น + +มีคำถามหรือพบสถานการณ์ที่เราไม่ได้กล่าวถึง? แสดงความคิดเห็นด้านล่าง—ขอให้สนุกกับการเขียนโค้ด! + +--- + +![ภาพหน้าจอแสดงแผ่น Excel ที่ไม่มี dropdown ฟิลเตอร์ใดๆ – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/thai/net/excel-comment-annotation/_index.md index 42f628337e..2d3dfe723b 100644 --- a/cells/thai/net/excel-comment-annotation/_index.md +++ b/cells/thai/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ เรียนรู้วิธีเพิ่มความคิดเห็นในเซลล์ใน Excel โดยใช้ Aspose.Cells สำหรับ .NET คำแนะนำทีละขั้นตอนสำหรับผู้เริ่มต้นเพื่อปรับปรุงฟังก์ชันการทำงานของ Excel ### [รูปแบบความคิดเห็น - แบบอักษร, สี, การจัดตำแหน่ง](./format-comments-font-color-alignment/) ค้นพบวิธีจัดรูปแบบความคิดเห็นใน Excel ได้อย่างง่ายดายโดยใช้ Aspose.Cells สำหรับ .NET ปรับแต่งแบบอักษร ขนาด และการจัดตำแหน่งเพื่อปรับปรุงสเปรดชีตของคุณ +### [สร้างไฟล์ Excel ด้วย C# – เพิ่มและเติมความคิดเห็นด้วย Smart Markers](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +เรียนรู้วิธีสร้างไฟล์ Excel ด้วย C# และเพิ่มความคิดเห็นพร้อม Smart Markers อย่างง่ายด้วย Aspose.Cells {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/thai/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..f5f3fe293f --- /dev/null +++ b/cells/thai/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-21 +description: สร้างไฟล์ Excel ด้วย C# และเรียนรู้วิธีเพิ่มคอมเมนต์ใน Excel, เติมคอมเมนต์อัตโนมัติด้วย + Smart Markers. คู่มือขั้นตอนต่อขั้นตอนสำหรับนักพัฒนา. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: th +og_description: สร้างเวิร์กบุ๊ก Excel ด้วย C# และเพิ่มคอมเมนต์ใน Excel อย่างรวดเร็ว + จากนั้นเติมคอมเมนต์โดยใช้ Smart Markers. บทเรียนเต็มพร้อมโค้ด. +og_title: สร้างไฟล์ Excel ด้วย C# – เพิ่มและกรอกคอมเมนต์ +tags: +- C# +- Excel automation +- Aspose.Cells +title: สร้าง Excel Workbook ด้วย C# – เพิ่มและเติมคอมเมนต์ด้วย Smart Markers +url: /th/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง Excel Workbook C# – เพิ่มและเติมคอมเมนต์ด้วย Smart Markers + +เคยต้องการ **create Excel workbook C#** และสงสัยว่าจะฝังคอมเมนต์ที่อัปเดตอัตโนมัติได้อย่างไร? คุณไม่ได้เป็นคนเดียว ในหลายสถานการณ์การรายงานคุณต้องการคอมเมนต์ในเซลล์ที่บอกว่า *“Created by Alice on 2024‑07‑15”* โดยไม่ต้องเขียนชื่อหรือวันที่แบบคงที่ทุกครั้ง + +ในบทเรียนนี้เราจะสาธิต **how to add comment to Excel** แล้วตามด้วย **how to fill comment** ด้วย Smart Markers ของ Aspose.Cells. เมื่อจบคุณจะได้โปรแกรมที่พร้อมรันซึ่งสร้าง workbook, แทรกคอมเมนต์แบบไดนามิก, และบันทึกไฟล์—ทั้งหมดในไม่กี่ขั้นตอนที่เรียบง่าย + +> **What you’ll get:** แอปคอนโซล C# ที่สมบูรณ์และคอมไพล์ได้, คำอธิบายทุกบรรทัด, เคล็ดลับสำหรับข้อผิดพลาดทั่วไป, และไอเดียในการขยายโซลูชัน + +## Prerequisites + +- .NET 6.0 SDK หรือรุ่นใหม่กว่า (โค้ดนี้ทำงานได้กับ .NET Core และ .NET Framework ด้วย) +- Visual Studio 2022 หรือ IDE ที่คุณชอบ +- **Aspose.Cells for .NET** NuGet package (`Install-Package Aspose.Cells`) – ไลบรารีนี้เป็นตัวขับเคลื่อนคลาส `Workbook`, `Worksheet`, และ `SmartMarkerProcessor` ที่ใช้ด้านล่าง +- ความคุ้นเคยพื้นฐานกับไวยากรณ์ C# – หากคุณเคยเขียน `Console.WriteLine` ก็พร้อมแล้ว + +ตอนนี้พื้นฐานพร้อมแล้ว, ไปดิ่งลงกันเลย + +![Create Excel workbook C# example screenshot](excel-workbook.png "Create Excel workbook C# example") + +## Step 1: Initialise a New Workbook – Create Excel Workbook C# Basics + +ก่อนอื่นเราต้องการอ็อบเจกต์ workbook ที่สะอาดเปล่า คิดว่า `Workbook` คือผืนผ้าใบเปล่า; หากไม่มีคุณจะไม่สามารถวางเซลล์, แถว หรือคอมเมนต์ใด ๆ ได้ + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Why this matters:** `Workbook` จะสร้าง worksheet เริ่มต้นโดยอัตโนมัติ, ดังนั้นคุณไม่ต้องเรียก `Add` เว้นแต่ต้องการแผ่นงานเพิ่ม. การเข้าถึง `Worksheets[0]` เป็นวิธีที่เร็วที่สุดในการเริ่มใส่ข้อมูล + +## Step 2: Insert a Smart Marker Comment – How to Add Comment with Tokens + +ต่อไปเราจะวางคอมเมนต์ในเซลล์ **B2** ที่มี Smart Marker tokens (`«UserName»` และ `«CreatedDate»`). Tokens เหล่านี้จะถูกแทนที่ในภายหลังด้วยค่าจริง + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Explanation:** +- `CreateComment()` สร้างอ็อบเจกต์คอมเมนต์หากยังไม่มี; หากมีแล้วจะคืนอ็อบเจกต์ที่มีอยู่ +- คุณสมบัติ `Note` เก็บข้อความที่มองเห็นได้. การใส่ placeholder ไว้ใน `« »` บอก Aspose.Cells ว่าเป็น **Smart Markers** – ตัวแทนที่สามารถแทนที่ได้ในครั้งเดียว + +> **Pro tip:** หากต้องการคอมเมนต์หลายบรรทัด, ใช้ `\n` ภายในสตริง, เช่น `"Line1\nLine2"`. + +## Step 3: Prepare the Data Object – How to Fill Comment Dynamically + +Smart Markers ต้องการแหล่งข้อมูล. ใน C# วิธีที่ง่ายที่สุดคือใช้ anonymous type ที่ตรงกับชื่อ placeholder + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Why an anonymous type?** +มันเบา, ไม่ต้องไฟล์คลาสเพิ่มเติม, และชื่อคุณสมบัติ (`UserName`, `CreatedDate`) ตรงกับชื่อ token อย่างแม่นยำ. หากคุณต้องการโมเดลที่มีประเภทที่ชัดเจน, เพียงสร้างคลาสที่มีคุณสมบัติเหมือนกันก็ได้ + +## Step 4: Process Smart Markers – How to Fill Comment Using the Data Object + +ตอนนี้จุดมหัศจรรย์เกิดขึ้น. `SmartMarkerProcessor` จะสแกน workbook เพื่อค้นหา token `«…»` ใด ๆ แล้วแทนที่ด้วยค่าจาก `markerData` + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**What’s under the hood?** +`SmartMarkerProcessor` จะเดินผ่านแต่ละเซลล์, คอมเมนต์, ส่วนหัว, ฯลฯ, มองหาแพทเทิร์น `«Token»`. เมื่อพบ, มันใช้ reflection เพื่ออ่านคุณสมบัติที่ตรงจาก `markerData` แล้วเขียนค่ากลับเข้าไป. ไม่ต้องเขียนลูปด้วยตนเอง + +## Step 5: Save the Workbook – Fill Excel Comment and Persist the File + +สุดท้ายเราจะเขียน workbook ลงดิสก์. คอมเมนต์ตอนนี้จะแสดงประมาณ *“Created by Alice on 03/21/2026 10:15 AM”* + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Result verification:** เปิด `CommentFilled.xlsx` ใน Excel, ชี้เมาส์เหนือเซลล์ **B2**, คุณจะเห็นคอมเมนต์ที่มีชื่อผู้ใช้และเวลาจริง. ไม่ต้องแก้โค้ดเพิ่มเติมสำหรับการรันครั้งต่อไป—เพียงเปลี่ยนค่าใน `markerData` เท่านั้น + +--- + +## Common Variations & Edge Cases + +### Using a Custom Date Format + +หากต้องการให้วันที่อยู่ในรูปแบบ `yyyy‑MM‑dd`, ปรับแอ็อบเจกต์ข้อมูลดังนี้: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Adding Multiple Comments + +คุณสามารถทำซ้ำ **Step 2** สำหรับเซลล์อื่น ๆ. คอมเมนต์แต่ละอันสามารถมีชุด token ของตนเอง, หรือใช้ token เดียวกันหากข้อมูลเป็นสากล + +### Working with Existing Workbooks + +แทนที่จะใช้ `new Workbook()`, ให้โหลดไฟล์ที่มีอยู่: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +ขั้นตอนที่เหลือเหมือนเดิม—Smart Markers ทำงานได้ทั้งไฟล์ใหม่และไฟล์ที่มีอยู่แล้ว + +### Handling Null Values + +หาก token อาจขาดหาย, ให้ห่อคุณสมบัติในประเภท nullable หรือให้ค่าตั้งต้น: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +ตัวประมวลผลจะใส่ *“Unknown”* เมื่อแหล่งข้อมูลเป็น `null` + +--- + +## Full Working Example (Copy‑Paste Ready) + +ด้านล่างเป็น **entire program** ที่คุณสามารถวางลงในโปรเจกต์คอนโซลและรันได้ทันที (เพียงเปลี่ยน `YOUR_DIRECTORY` ให้เป็นเส้นทางโฟลเดอร์จริง) + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +รันโปรแกรม, เปิดไฟล์ที่สร้างขึ้น, แล้วคุณจะเห็นคอมเมนต์ไดนามิกในเซลล์ **B2**. ง่ายใช่ไหม? + +--- + +## Frequently Asked Questions (FAQ) + +**Q: Does this work with .NET Framework 4.7?** +A: Absolutely. Aspose.Cells รองรับ .NET Framework 4.0+ และ .NET Core/5/6/7. เพียงอ้างอิง DLL หรือแพคเกจ NuGet ที่เหมาะสม + +**Q: Can I use this approach for data validation or conditional formatting?** +A: Smart Markers ใช้สำหรับแทรกค่าในเซลล์, คอมเมนต์, ส่วนหัว, และส่วนท้ายเป็นหลัก. สำหรับ conditional formatting คุณยังต้องใช้ API `Style` ปกติ + +**Q: What if I need to add a comment to a **different** worksheet?** +A: ดึง worksheet เป้าหมาย (`workbook.Worksheets["MySheet"]`) แล้วทำซ้ำ **Step 2** บนเซลล์ของแผ่นนั้น + +--- + +## Next Steps & Related Topics + +- **How to add comment to Excel** อย่างโปรแกรมเมติกสำหรับหลายเซลล์ (วนลูปช่วง) +- **Fill Excel comment** ด้วยข้อมูลจากฐานข้อมูล (ใช้ `DataTable` เป็นแหล่งข้อมูลสำหรับ Smart Markers) +- สำรวจ **Smart Marker arrays** เพื่อสร้างตารางโดยอัตโนมัติ +- เรียนรู้เกี่ยวกับ **Aspose.Cells styling** เพื่อกำหนดรูปแบบฟอนต์, สี, และขนาดของคอมเมนต์ + +ลองเล่นกับโค้ดสแนป, เปลี่ยนแหล่งข้อมูล, แล้วคุณจะเชี่ยวชาญ **how to fill comment** ในสถานการณ์อัตโนมัติของ Excel ได้อย่างรวดเร็ว + +--- + +### Wrap‑Up + +เราได้เดินผ่านกระบวนการทั้งหมดของ **create excel workbook c#**, **add comment to excel**, และ **fill excel comment** ด้วย Smart Markers. โซลูชันนี้กระชับ, ใช้ซ้ำได้, และพร้อมสำหรับการผลิต + +ลองใช้งาน, ปรับ placeholder ตามต้องการ, แล้วให้ไลบรารีจัดการงานหนักให้คุณ. หากเจออุปสรรคใด ๆ, ทิ้งคอมเมนต์ไว้ด้านล่าง—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/thai/net/excel-custom-number-date-formatting/_index.md b/cells/thai/net/excel-custom-number-date-formatting/_index.md index ad800fdf17..d98e3ac1f4 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,8 @@ เรียนรู้วิธีการตรวจสอบค่าเซลล์ Excel เทียบกับรูปแบบตัวเลขที่กำหนดเองโดยใช้ Aspose.Cells สำหรับ .NET ด้วยบทช่วยสอนทีละขั้นตอนนี้ ### [ระบุฟิลด์สูตรเมื่อนำเข้าข้อมูลไปยังแผ่นงาน Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) เรียนรู้วิธีการนำเข้าข้อมูลลงในแผ่นงาน Excel ด้วยฟิลด์สูตรที่ระบุโดยใช้ Aspose.Cells สำหรับ .NET ในบทช่วยสอนโดยละเอียดนี้ +### [ตั้งค่ารูปแบบเซลล์แบบกำหนดเองใน C# – คู่มือฉบับสมบูรณ์สำหรับการเขียนและอ่านวันที่ใน Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +เรียนรู้วิธีตั้งค่าและอ่านรูปแบบวันที่ใน Excel ด้วย Aspose.Cells สำหรับ .NET ผ่านตัวอย่าง C# อย่างละเอียด {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/thai/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..dbf7aed012 --- /dev/null +++ b/cells/thai/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,206 @@ +--- +category: general +date: 2026-03-21 +description: ตั้งค่ารูปแบบเซลล์แบบกำหนดเองใน C# และเรียนรู้วิธีเขียนวันที่ลงใน Excel, + ใช้รูปแบบวันที่แบบกำหนดเอง, อ่าน DateTime จาก Excel, และสร้างเวิร์กบุ๊กหรือเวิร์กชีตอย่างรวดเร็ว. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: th +og_description: ตั้งค่ารูปแบบเซลล์แบบกำหนดเองใน C# เพื่อเขียนวันที่ลง Excel ใช้รูปแบบวันที่แบบกำหนดเอง + อ่าน DateTime จาก Excel และสร้างเวิร์กบุ๊กและแผ่นงานได้อย่างง่ายดาย. +og_title: ตั้งค่ารูปแบบเซลล์แบบกำหนดเองใน C# – เขียนและอ่านวันที่ใน Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: ตั้งค่ารูปแบบเซลล์แบบกำหนดเองใน C# – คู่มือฉบับสมบูรณ์สำหรับการเขียนและอ่านวันที่ใน + Excel +url: /th/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ตั้งค่ารูปแบบเซลล์แบบกำหนดเอง – เขียนและอ่านวันที่ใน Excel ด้วย C# + +เคยต้องการ **ตั้งค่ารูปแบบเซลล์แบบกำหนดเอง** ในไฟล์ Excel จาก C# แต่ไม่แน่ใจว่าจะเริ่มต้นอย่างไรหรือไม่? คุณไม่ได้เป็นคนเดียว ในเครื่องมือรายงานหรือยูทิลิตี้การส่งออกข้อมูลหลาย ๆ ตัว วันที่ต้องแสดงในภาษาท้องถิ่นเฉพาะ—เช่น วันที่ตามยุคญี่ปุ่น, ปฏิทินการเงิน, หรือสตริง ISO‑8601. + +ในบทแนะนำนี้ เราจะพาคุณผ่าน **ตัวอย่างที่สมบูรณ์และสามารถรันได้** ที่แสดงวิธี **เขียนวันที่ลงใน Excel**, **ใช้รูปแบบวันที่แบบกำหนดเอง**, **อ่าน DateTime จาก Excel**, และ **สร้าง workbook worksheet** ด้วย Aspose.Cells. เมื่อจบคุณจะมีโปรแกรมเดียวที่เป็นอิสระซึ่งสามารถนำไปใช้ในโปรเจกต์ .NET ใดก็ได้. + +## สิ่งที่คุณจะได้เรียนรู้ + +- วิธี **สร้าง workbook worksheet** ด้วยโปรแกรม. +- ขั้นตอนที่แน่นอนเพื่อ **เขียนวันที่ลงใน Excel** โดยใช้สตริงที่ระบุภาษาท้องถิ่น. +- วิธี **ใช้รูปแบบวันที่แบบกำหนดเอง** (รวมถึงการแสดงผลตามยุคญี่ปุ่น). +- วิธี **อ่าน DateTime จาก Excel** กลับเป็นอ็อบเจ็กต์ `DateTime`. +- เคล็ดลับ, จุดบกพร่อง, และรูปแบบต่าง ๆ ที่คุณอาจเจอเมื่อทำงานกับวันที่ใน Excel. + +ไม่ต้องการเอกสารภายนอก—ทุกอย่างที่คุณต้องการอยู่ที่นี่เลย. + +## ข้อกำหนดเบื้องต้น + +- .NET 6.0 หรือใหม่กว่า (โค้ดนี้ยังทำงานบน .NET Framework 4.7+ ด้วย) +- Aspose.Cells สำหรับ .NET ที่ติดตั้งผ่าน NuGet (`Install-Package Aspose.Cells`). +- ความเข้าใจพื้นฐานของไวยากรณ์ C#—ไม่มีอะไรซับซ้อน + +> **เคล็ดลับมืออาชีพ:** หากคุณใช้ Visual Studio, เปิดใช้งาน *nullable reference types* เพื่อจับบั๊กเล็ก ๆ ได้ตั้งแต่แรก. + +## ขั้นตอนที่ 1: สร้าง Workbook และ Worksheet + +สิ่งแรกที่ต้องทำ: คุณต้องมีอ็อบเจ็กต์ workbook ที่แทนไฟล์ Excel, และ worksheet ที่ข้อมูลจะถูกจัดเก็บ. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*ทำไมจึงสำคัญ:* คลาส `Workbook` เป็นจุดเริ่มต้นสำหรับการทำงานกับ Excel ทั้งหมด การสร้างมันในหน่วยความจำหมายความว่าคุณจะไม่ต้องสัมผัสระบบไฟล์จนกว่าจะบันทึกอย่างชัดเจน ซึ่งทำให้กระบวนการเร็วและเป็นมิตรต่อการทดสอบ. + +## ขั้นตอนที่ 2: เขียนวันที่ลงใน Excel + +ต่อไป เราจะใส่สตริงวันที่ตามยุคญี่ปุ่น (`"R02-04-01"`) ลงในเซลล์ **A1** สตริงนี้จำลองยุค Reiwa (ปีที่ 2, เดือนเมษายน 1). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*กำลังเกิดอะไรขึ้น:* `PutValue` จะเก็บสตริงดิบ Aspose.Cells จะพยายามแปลงในภายหลังตามสไตล์ของเซลล์ หากคุณข้ามขั้นตอนนี้และเขียน `DateTime` โดยตรง คุณจะสูญเสียข้อมูลยุคที่ต้องการแสดง. + +## ขั้นตอนที่ 3: ใช้รูปแบบตัวเลขวันที่ที่มีอยู่ในตัว (ID 14) + +Excel มีรูปแบบวันที่ที่มีอยู่ในตัวด้วย ID 14 (`mm-dd-yy`). การใช้มันบอกให้เอนจินทราบว่าเซลล์ **มีวันที่**, ไม่ใช่แค่ข้อความ. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*ทำไมต้องใช้ ID 14?* มันเป็นรูปแบบ “วันที่สั้น” สากลที่ทำให้ Excel ปฏิบัติกับเนื้อหาเป็นค่าที่เป็นวันที่ ซึ่งเป็นเงื่อนไขเบื้องต้นสำหรับรูปแบบกำหนดเองใด ๆ ให้ทำงานได้อย่างถูกต้อง. + +## ขั้นตอนที่ 4: ตั้งค่ารูปแบบกำหนดเองเพื่อแสดงการระบุยุคญี่ปุ่น + +ต่อไปเป็นส่วนที่สนุก: เราบอกให้ Excel แสดงวันที่โดยใช้รูปแบบยุคญี่ปุ่น สตริงกำหนดเอง `[$-ja-JP]ggge年m月d日` ทำเช่นนั้นได้อย่างแม่นยำ. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Explanation:* +- `[$-ja-JP]` บังคับให้ภาษาถูกตั้งเป็นญี่ปุ่น. +- `ggg` คือชื่อยุค (เช่น “R” สำหรับ Reiwa). +- `e` คือปีของยุค. +- `年`, `月`, `日` เป็นอักขระญี่ปุ่นที่หมายถึง ปี, เดือน, วัน ตามลำดับ. + +หากคุณต้องการภาษาท้องถิ่นอื่น เพียงแทนที่ `ja-JP` ด้วยรหัสวัฒนธรรมที่เหมาะสม (เช่น `en-US`). + +## ขั้นตอนที่ 5: ดึงค่าที่แปลงเป็น DateTime + +สุดท้าย เรามาอ่าน **`DateTime` จริง** ที่ Excel แปลงจากเซลล์ นี่เป็นการพิสูจน์ว่าสตริงถูกตีความอย่างถูกต้อง. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*ผลลัพธ์:* คอนโซลจะแสดง `Parsed DateTime: 2020-04-01`. แม้ว่าเราจะใส่สตริงยุคญี่ปุ่น, Excel จะเก็บวันที่แบบ Gregorian ภายใน ซึ่งคุณสามารถใช้สำหรับการคำนวณ, การเปรียบเทียบ, หรือการส่งออกต่อไป. + +## ขั้นตอนที่ 6: บันทึก Workbook (ไม่บังคับ) + +หากคุณต้องการดู workbook ที่มีรูปแบบใน Excel เพียงบันทึกลงดิสก์. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +เปิดไฟล์ **JapaneseEraDate.xlsx** ที่สร้างขึ้นและคุณจะเห็นเซลล์ **A1** แสดง `R02年4月1日` (รูปแบบยุคญี่ปุ่นที่เราตั้งค่าไว้). + +![ตัวอย่างการตั้งค่ารูปแบบเซลล์แบบกำหนดเอง](image-placeholder.png "เซลล์ Excel แสดงวันที่ตามยุคญี่ปุ่น – ตั้งค่ารูปแบบเซลล์แบบกำหนดเอง") + +*ข้อความ alt ด้านบนมีคีย์เวิร์ดหลัก, ตรงตามข้อกำหนด SEO ของรูปภาพ.* + +## ความแปรผันทั่วไปและกรณีขอบ + +### การเขียนรูปแบบวันที่อื่น + +หากคุณต้องการรูปแบบ ISO‑8601 (`2020-04-01`) แทนสตริงยุค เพียงเปลี่ยนการเรียก `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### การจัดการกับเซลล์ที่เป็น Null หรือว่าง + +เมื่ออ่านวันที่, ควรตรวจสอบเซลล์ที่ว่างเสมอเพื่อหลีกเลี่ยง `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### การสนับสนุนหลายภาษาท้องถิ่น + +คุณสามารถวนลูปผ่านรายการรหัสวัฒนธรรมและใช้แบบไดนามิก: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## เคล็ดลับมืออาชีพและข้อควรระวัง + +- **ควรตั้งค่ารูปแบบตัวเลขที่มีอยู่ในตัวก่อนเสมอ** (`Style.Number`). หากไม่ทำ, Excel จะถือว่าเซลล์เป็นข้อความธรรมดาและรูปแบบกำหนดเองจะถูกละเลย. +- **รหัสภาษาท้องถิ่นไม่สนใจตัวพิมพ์ใหญ่/เล็ก** แต่การใช้รูปแบบมาตรฐาน (`ja-JP`) จะหลีกเลี่ยงความสับสน. +- **การบันทึกเป็นทางเลือก** สำหรับการประมวลผลในหน่วยความจำ; คุณสามารถสตรีม workbook ไปยังการตอบสนองเว็บโดยตรง (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **ใบอนุญาต Aspose.Cells**: เวอร์ชันประเมินฟรีจะใส่ลายน้ำ. สำหรับการใช้งานจริง, ตรวจสอบว่าคุณมีใบอนุญาตที่ถูกต้องเพื่อหลีกเลี่ยงการลดประสิทธิภาพ. + +## สรุป + +เราได้แสดงวิธี **ตั้งค่ารูปแบบเซลล์แบบกำหนดเอง** ใน C# เพื่อแสดงวันที่ตามยุคญี่ปุ่น, วิธี **เขียนวันที่ลงใน Excel**, **ใช้รูปแบบวันที่แบบกำหนดเอง**, **อ่าน DateTime จาก Excel**, และ **สร้าง workbook worksheet**—ทั้งหมดในโปรแกรมเดียวที่เป็นอิสระ. คีย์เวิร์ดหลักปรากฏอย่างเป็นธรรมชาติตลอดบท, ขณะที่คีย์เวิร์ดรองถูกใส่ในหัวข้อและข้อความ, ตรงตามมาตรฐาน SEO และการอ้างอิง AI. + +## ต่อไปคืออะไร? + +- สำรวจ **conditional formatting** เพื่อไฮไลท์วันที่ล่าช้า. +- ผสานวิธีนี้กับ **PivotTables** เพื่อการรายงานแบบไดนามิก. +- ลอง **อ่านไฟล์ CSV ขนาดใหญ่** และแปลงเป็น 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/thai/net/excel-data-export-retrieval/_index.md b/cells/thai/net/excel-data-export-retrieval/_index.md index 5ff64e80cd..37cb687aac 100644 --- a/cells/thai/net/excel-data-export-retrieval/_index.md +++ b/cells/thai/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ ### [ดึงข้อมูลจากเซลล์ใน Excel](./retrieve-data-from-cells-in-excel/) เรียนรู้วิธีดึงข้อมูลจากเซลล์ Excel โดยใช้ Aspose.Cells สำหรับ .NET ในบทช่วยสอนทีละขั้นตอนนี้ ซึ่งเหมาะสำหรับทั้งผู้เริ่มต้นและนักพัฒนาที่มีประสบการณ์ +### [ส่งออกตารางข้อมูล Excel ใน C# – คู่มือฉบับสมบูรณ์](./export-excel-data-table-in-c-complete-guide/) +เรียนรู้วิธีส่งออกตารางข้อมูล Excel ด้วย C# อย่างละเอียดในบทช่วยสอนนี้ เหมาะสำหรับนักพัฒนาทุกระดับ + +### [ส่งออกข้อมูล Excel ใน C# – คู่มือแบบขั้นตอนต่อขั้นตอน](./how-to-export-excel-data-in-c-step-by-step-guide/) +เรียนรู้วิธีส่งออกข้อมูล Excel ด้วย C# อย่างละเอียดในบทช่วยสอนแบบขั้นตอนต่อขั้นตอน เหมาะสำหรับนักพัฒนาทุกระดับ + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/thai/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/thai/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..41a8a4cd5f --- /dev/null +++ b/cells/thai/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: ส่งออกตารางข้อมูล Excel ไปยัง DataTable พร้อมหัวตาราง, จำกัดจำนวนตำแหน่งทศนิยม, + และส่งออก 100 แถวแรกโดยใช้ Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: th +og_description: เรียนรู้วิธีส่งออกตารางข้อมูล Excel ไปยัง DataTable รักษาแถวหัวตาราง + จำกัดจำนวนทศนิยม และดึง 100 แถวแรกใน C# +og_title: ส่งออกตารางข้อมูล Excel ใน C# – คู่มือแบบทีละขั้นตอน +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: ส่งออกตารางข้อมูล Excel ใน C# – คู่มือฉบับสมบูรณ์ +url: /th/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ส่งออกตารางข้อมูล Excel – คู่มือเต็ม C# + +ต้องการ **export excel data table** จาก workbook ไปยัง .NET `DataTable` หรือไม่? คุณมาถูกที่แล้ว—คู่มือนี้จะแสดงวิธีทำอย่างละเอียด รักษาชื่อคอลัมน์, จำกัดจำนวนตำแหน่งทศนิยม, และดึงเฉพาะ 100 แถวแรกเท่านั้น + +ถ้าคุณเคยมองตารางสเปรดชีตแล้วคิดว่า “จะเอาข้อมูลนี้เข้าแอปโดยไม่เสียรูปแบบได้อย่างไร?” คุณไม่ได้อยู่คนเดียว ในไม่กี่นาทีต่อไปเราจะเปลี่ยน “ถ้าอย่างนั้น” ให้เป็นวิธีแก้ปัญหาที่คัดลอก‑วางได้ ทำงานร่วมกับ Aspose.Cells ซึ่งเป็นไลบรารียอดนิยมสำหรับการจัดการ Excel + +## สิ่งที่คุณจะได้เรียนรู้ + +- วิธี **export excel to datatable** โดยใช้เมธอด `ExportDataTable` +- วิธีเก็บชื่อคอลัมน์เดิม (`export excel with headers`) +- วิธี **limit decimal places excel** ค่าโดยการกำหนดค่า `ExportTableOptions` +- วิธีดึงเฉพาะแถวบนสุด 100 แถวอย่างปลอดภัย (`export first 100 rows`) + +ไม่มีสคริปต์ภายนอก ไม่มีสตริงวิเศษ—เพียง C# ธรรมดาที่คุณสามารถนำไปใส่ในโปรเจค .NET ใดก็ได้ + +## ข้อกำหนดเบื้องต้น + +| ข้อกำหนด | ทำไมจึงสำคัญ | +|-------------|----------------| +| .NET 6 หรือรุ่นต่อไป (หรือ .NET Framework 4.7+) | Aspose.Cells รองรับทั้งสอง แต่ runtime ที่ใหม่กว่าให้ API ที่พร้อมใช้งานแบบ async | +| Aspose.Cells for .NET NuGet package | ให้ `Workbook`, `ExportTableOptions`, และตัวช่วย `ExportDataTable` | +| ตัวอย่างไฟล์ Excel (เช่น `Numbers.xlsx`) | เป็นแหล่งข้อมูลที่คุณจะส่งออก | +| ความรู้พื้นฐาน C# | คุณจะทำตามตัวอย่างโค้ด แต่ไม่จำเป็นต้องมีความรู้ขั้นสูง | + +หากส่วนใดส่วนหนึ่งฟังดูแปลกใหม่ ให้ติดตั้งแพคเกจ NuGet ด้วย `dotnet add package Aspose.Cells` แล้วสร้างไฟล์ Excel เล็ก ๆ ที่มีตัวเลขสองสามค่า—เป็นข้อมูลทดสอบของคุณ + +![export excel data table example](excel-data-table.png "Screenshot of an Excel sheet that will be exported to a DataTable") + +## ขั้นตอนที่ 1: โหลด Workbook (export excel data table) + +สิ่งแรกที่คุณต้องมีคืออินสแตนซ์ `Workbook` ที่ชี้ไปยังไฟล์ Excel ของคุณ คิดว่าเป็นการเปิดหนังสือก่อนจะอ่านบทใดบทหนึ่ง + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **ทำไมสิ่งนี้ถึงสำคัญ:** การโหลด workbook ทำให้คุณเข้าถึง worksheet, cell, และ style ต่าง ๆ หากเส้นทางไฟล์ผิด Aspose จะโยน `FileNotFoundException` ดังนั้นตรวจสอบตำแหน่งไฟล์ให้แน่ใจ + +## ขั้นตอนที่ 2: กำหนดค่าตัวเลือกการส่งออก – limit decimal places excel + +โดยค่าเริ่มต้น Aspose จะส่งออกค่าตัวเลขทุกค่าด้วยความแม่นยำเต็มรูปแบบ บ่อยครั้งที่คุณต้องการเพียงไม่กี่หลักสำคัญ โดยเฉพาะเมื่อส่งข้อมูลไปยัง UI grid หรือ API ที่คาดหวังตัวเลขที่ปัดเศษแล้ว + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **เคล็ดลับ:** หากต้องการกลยุทธ์การปัดเศษที่ต่างออกไป (เช่น ปัดขึ้นเสมอ) คุณสามารถทำ post‑process `DataTable` หลังการส่งออกได้ การตั้งค่า `SignificantDigits` เป็นวิธีที่เร็วที่สุดในการ **limit decimal places excel** โดยไม่ต้องเขียนลูปเพิ่ม + +## ขั้นตอนที่ 3: ส่งออกช่วงที่ต้องการ (export first 100 rows) + +ตอนนี้เราบอก Aspose ว่าเราต้องการดึงบล็อกเซลล์ใดเข้าสู่ `DataTable` ในบทเรียนนี้เราจะดึง 100 แถวแรกและ 10 คอลัมน์แรก แต่คุณสามารถปรับตัวเลขเหล่านี้ให้ตรงกับกรณีของคุณได้ + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **กรณีขอบเขต:** หากชีตมีแถวน้อยกว่า 100 แถว Aspose จะส่งออกเฉพาะที่มีอยู่โดยไม่เกิดข้อผิดพลาด อย่างไรก็ตามคุณอาจต้องการตรวจสอบเพื่อป้องกันช่วงที่คาดไม่ถึงเล็กเกินไป: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## ขั้นตอนที่ 4: ตรวจสอบผลลัพธ์ – แสดงผลสั้นใน Console + +การดูข้อมูลใน debugger นั้นดี แต่การพิมพ์ไม่กี่แถวลง console จะยืนยันว่า **export excel to datatable** ทำงานสำเร็จและตำแหน่งทศนิยมถูกตัดแล้ว + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### ผลลัพธ์ที่คาดหวัง + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +สังเกตว่าคอลัมน์ตัวเลขตอนนี้แสดงเพียงสี่หลักสำคัญเท่านั้น ตรงกับการตั้งค่า `SignificantDigits = 4` ที่เราใช้เมื่อตั้งค่าในขั้นตอนก่อนหน้า + +## ขั้นตอนที่ 5: สรุปทั้งหมด – ตัวอย่างที่ทำงานได้เต็มรูปแบบ + +ด้านล่างเป็นโปรแกรมเต็มที่คุณสามารถคัดลอก‑วางลงในแอป console ได้ รวมถึงการจัดการข้อผิดพลาด, ตัวตรวจสอบจำนวนแถวแบบเลือกใช้, และเมธอดช่วยพิมพ์ผลลัพธ์ + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +รันโปรแกรมแล้วคุณจะเห็น 100 แถวแรกของชีตของคุณ ปัดเศษอย่างสวยงาม พร้อมชื่อคอลัมน์ที่คงอยู่ + +## คำถามที่พบบ่อย & ข้อควรระวัง + +| คำถาม | คำตอบ | +|----------|--------| +| **What if my sheet has merged cells?** | `ExportDataTable` จะทำให้เซลล์ที่รวมกันกลายเป็นค่าเดียวโดยใช้ค่าจากเซลล์บน‑ซ้าย หากต้องการการจัดการแบบกำหนดเอง ให้ยกเลิกการรวมเซลล์ก่อนหรืออ่านอ็อบเจ็กต์ `Cell` ดิบ | +| **Can I export to a `DataSet` instead?** | ใช่—ใช้ `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/thai/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..0eba1eabf5 --- /dev/null +++ b/cells/thai/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,280 @@ +--- +category: general +date: 2026-03-21 +description: วิธีส่งออกข้อมูล Excel พร้อมชื่อคอลัมน์ รักษาฟอร์แมตตัวเลข และอ่านแถวเฉพาะโดยใช้ + Aspose.Cells ใน C# เรียนรู้การอ่านแผ่นงาน Excel และส่งออกแถวที่ต้องการอย่างมีประสิทธิภาพ +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: th +og_description: วิธีส่งออกข้อมูล Excel พร้อมชื่อคอลัมน์ รักษาฟอร์แมตตัวเลข และอ่านแถวเฉพาะโดยใช้ + Aspose.Cells ตัวอย่างเต็มที่สามารถรันได้สำหรับนักพัฒนา C# +og_title: วิธีส่งออกข้อมูล Excel ใน C# – คู่มือการเขียนโปรแกรมครบวงจร +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: วิธีส่งออกข้อมูล Excel ด้วย C# – คู่มือขั้นตอนโดยละเอียด +url: /th/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีการส่งออกข้อมูล Excel ใน C# – คู่มือการเขียนโปรแกรมฉบับสมบูรณ์ + +เคยสงสัย **how to export excel** ข้อมูลโดยไม่สูญเสียรูปแบบเดิมหรือไม่? บางทีคุณอาจลองคัดลอก‑วางอย่างรวดเร็วแล้วได้วันที่แสดงเป็น “44728” หรือหัวคอลัมน์หายไป นั่นทำให้หงุดหงิดใช่ไหม? ในบทเรียนนี้คุณจะได้เห็นวิธีที่สะอาดและครบวงจรในการอ่าน Worksheet ของ Excel, รักษาฟอร์แมตตัวเลข, ส่งออกพร้อมชื่อคอลัมน์, และแม้แต่เลือกแถวที่ต้องการเท่านั้น + +เราจะใช้ไลบรารี Aspose.Cells เพราะให้การควบคุมระดับละเอียดบนตัวเลือกการส่งออก เมื่อจบบทเรียนนี้คุณจะมีโค้ดสแนปช็อตที่นำไปใช้ได้ในโปรเจกต์ .NET ใดก็ได้ และคุณจะเข้าใจว่าทำไมแต่ละตัวเลือกจึงสำคัญ ไม่ต้องอ้างอิงเอกสารภายนอก—ทุกอย่างที่คุณต้องการอยู่ที่นี่ + +--- + +## สิ่งที่คุณจะได้เรียนรู้ + +- **Read Excel worksheet** เข้าไปในหน่วยความจำด้วย Aspose.Cells +- **Export specific rows** (เช่น แถว 0‑49) พร้อมคงชื่อคอลัมน์ +- **Preserve number format** เพื่อให้สกุลเงิน, วันที่, และเปอร์เซ็นต์คงรูปแบบเดิม +- วิธี **export with column names** และรวมคอมเมนต์ของเซลล์หากต้องการ +- ตัวอย่าง C# ที่พร้อมรันเต็มรูปแบบพร้อมเคล็ดลับหลีกเลี่ยงข้อผิดพลาดทั่วไป + +### ข้อกำหนดเบื้องต้น + +- .NET 6.0 หรือใหม่กว่า (โค้ดนี้ยังทำงานกับ .NET Framework 4.6+ ด้วย) +- Aspose.Cells for .NET ที่ติดตั้งผ่าน NuGet (`Install-Package Aspose.Cells`) +- ไฟล์ Excel (`input.xlsx`) ที่วางไว้ในโฟลเดอร์ที่คุณอ้างอิงได้ + +> **Pro tip:** หากคุณทำงานบน CI pipeline ให้ดึงแพ็กเกจ NuGet จากฟีดส่วนตัวเพื่อหลีกเลี่ยงปัญหาไลเซนส์ที่ไม่คาดคิด + +--- + +## ขั้นตอนที่ 1 – ติดตั้ง Aspose.Cells และเพิ่ม Namespaces + +ก่อนอื่นตรวจสอบให้แน่ใจว่าแพ็กเกจ Aspose.Cells อยู่ในโปรเจกต์ของคุณแล้ว เปิด Package Manager Console แล้วรัน: + +```powershell +Install-Package Aspose.Cells +``` + +จากนั้นเพิ่ม `using` directives ที่ส่วนหัวของไฟล์ C# ของคุณ: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +การนำเข้าเหล่านี้ทำให้คุณเข้าถึง `Workbook`, `Worksheet`, `ExportTableOptions`, และ `DataTable`—ส่วนสำคัญสำหรับ **reading an Excel worksheet** และการส่งออกข้อมูล + +--- + +## ขั้นตอนที่ 2 – โหลด Workbook (อ่านไฟล์ Excel) + +ตอนนี้เราจะ **read the Excel worksheet** จริง ๆ ตัวสร้าง `Workbook` รับพาธของไฟล์และ Aspose.Cells จะจัดการทั้งรูปแบบ `.xlsx` และ `.xls` เก่า + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **ทำไมเรื่องนี้สำคัญ:** การโหลด workbook เพียงครั้งเดียวแล้วใช้ `Worksheet` เดิมซ้ำหลายครั้งนั้นมีประสิทธิภาพกว่าการเปิดไฟล์หลาย ๆ ครั้ง โดยเฉพาะกับสเปรดชีตขนาดใหญ่ + +--- + +## ขั้นตอนที่ 3 – ตั้งค่า Export Options (Preserve Number Format & Column Names) + +ตรงนี้เราจะบอก Aspose.Cells *วิธี* ส่งออก `ExportTableOptions` ให้เราปรับแต่งผลลัพธ์ได้ เราจะเปิดใช้สามฟลัก: + +1. `ExportAsString = true` – บังคับให้ทุกเซลล์เป็นสตริง เพื่อให้ตัวเลขคงรูปแบบที่มองเห็น +2. `IncludeCellComments = true` – คัดลอกคอมเมนต์ที่แนบกับเซลล์ (สะดวกสำหรับเอกสารประกอบ) +3. `PreserveNumberFormat = true` – รักษาฟอร์แมตตัวเลขเดิม (สัญลักษณ์สกุลเงิน, รูปแบบวันที่ ฯลฯ) + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **กรณีขอบ:** หากตั้ง `ExportAsString` เป็น `false` แต่ยังต้องการคงฟอร์แมตตัวเลข คุณอาจเจอค่าตัวเลขดิบ (เช่น 44728 สำหรับวันที่) การเปิดทั้งสองฟลักจะช่วยหลีกเลี่ยงสถานการณ์นั้น + +--- + +## ขั้นตอนที่ 4 – ดึง Worksheet แรก (Read Excel Worksheet) + +ไฟล์ง่าย ๆ ส่วนใหญ่มีข้อมูลที่ต้องการอยู่บนแผ่นแรก เราจึงดึงโดยใช้ดัชนี หากต้องการแผ่นอื่นให้เปลี่ยน `0` เป็นดัชนีที่ต้องการหรือใช้ `workbook.Worksheets["SheetName"]` + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **ทำไมจึงเป็นประโยชน์:** การเข้าถึงอ็อบเจ็กต์ worksheet โดยตรงให้คุณควบคุมคอลเลกชัน `Cells` ได้เต็มที่ ซึ่งจำเป็นสำหรับ **export specific rows** ในขั้นตอนต่อไป + +--- + +## ขั้นตอนที่ 5 – ส่งออกช่วงเซลล์ (Export Specific Rows) + +นี่คือหัวใจของบทเรียน: ส่งออกแถว 0‑49 และคอลัมน์ 0‑4 (แถวแรก 50 แถวและคอลัมน์แรก 5 คอลัมน์) ไปยัง `DataTable` พร้อมให้ Aspose.Cells ใส่ชื่อคอลัมน์เป็นแถวแรกของ `DataTable` + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### สิ่งที่ทำงานนี้ทำ + +- **`startRow: 0`** – เริ่มจากด้านบนสุดของแผ่น +- **`totalRows: 50`** – ดึง 50 แถวแรก (**export specific rows**) +- **`totalColumns: 5`** – จำกัดการส่งออกเพียง 5 คอลัมน์แรก +- **`includeColumnNames: true`** – ทำให้หัวคอลัมน์ของ `DataTable` ตรงกับแถวหัวของ Excel, ตอบโจทย์ **export with column names** +- **`exportOptions`** – ใช้การตั้งค่าจากขั้นตอน 3 เพื่อให้ค่าตัวเลขแสดงเป็น “$1,234.56” แทน “1234.56” + +--- + +## ขั้นตอนที่ 6 – ตรวจสอบผลการส่งออก (What the Result Looks Like) + +พิมพ์แถวแรก ๆ ลงคอนโซลเพื่อให้คุณเห็นว่าฟอร์แมตยังคงอยู่ + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**ผลลัพธ์ที่คาดหวัง (ตัวอย่าง):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +สังเกตว่าข้อมูลวันที่แสดงในรูปแบบ `MM/dd/yyyy` และสกุลเงินยังคงมีสัญลักษณ์ `$`—ทั้งหมดนี้มาจาก **preserve number format** + +--- + +## ข้อผิดพลาดทั่วไป & วิธีหลีกเลี่ยง + +| ปัญหา | สาเหตุ | วิธีแก้ | +|-------|--------|--------| +| วันที่แปลงเป็นตัวเลขขนาดใหญ่ | `ExportAsString` left `false` | ตั้งค่า `ExportAsString = true` หรือแปลงเซลล์ด้วยตนเอง | +| ไม่มีหัวคอลัมน์ | `includeColumnNames` set to `false` | ตั้งค่าเป็น `true` เมื่อคุณต้องการ **export with column names** | +| คอมเมนต์หาย | `IncludeCellComments` not enabled | เปิดใช้งาน `IncludeCellComments` ใน `ExportTableOptions` | +| ส่งออกแผ่นงานผิด | Using `Worksheets[0]` on a multi‑sheet file | ระบุชื่อแผ่นงาน: `workbook.Worksheets["Data"]` | +| ข้อยกเว้นเกินช่วง | `totalRows` exceeds actual rows | ใช้ `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## โบนัส: ส่งออกทั้งแผ่นงานพร้อมคงฟอร์แมต + +หากในภายหลังต้องการส่งออกทั้งแผ่น ให้เปลี่ยน `totalRows` และ `totalColumns` เป็นขนาดสูงสุดของแผ่นงาน: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +ตอนนี้คุณมี **read excel worksheet** routine ที่ทำงานกับขนาดใดก็ได้ พร้อม **preserving number format** และ **exporting with column names** + +--- + +## ตัวอย่างเต็มที่พร้อมรัน (Copy‑Paste Ready) + +ด้านล่างเป็นโปรแกรมเต็มที่คุณสามารถวางลงในแอปคอนโซลได้ รวมทุกขั้นตอน, การนำเข้า, และการพิมพ์ผลตรวจสอบอย่างง่าย + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +บันทึกเป็น `Program.cs`, รัน `dotnet run` แล้วคุณจะเห็นตัวอย่างข้อมูลที่จัดรูปแบบไว้ในเทอร์มินัลของคุณ + +--- + +## สรุป + +เราได้เดินผ่าน **how to export excel** ด้วย Aspose.Cells ตั้งแต่การโหลด workbook, การคงฟอร์แมตตัวเลข, การส่งออกพร้อมชื่อคอลัมน์, และการจำกัดแถวที่ต้องการ โค้ดนี้เป็นอิสระ, รันได้ทันที, และรวมการป้องกันข้อผิดพลาดที่พบบ่อยที่สุด + +พร้อมรับความท้าทายต่อไปหรือยัง? ลองส่งออกเป็น CSV โดยยังคงฟอร์แมตตัวเลขเดิม หรือส่ง `DataTable` ไปยัง Entity Framework Core เพื่อทำการแทรกข้อมูลจำนวนมาก ทั้งสองกรณีใช้พื้นฐานเดียวกับที่เราเรียนในที่นี้ + +ถ้าคุณพบว่าคู่มือเล่มนี้เป็นประโยชน์ + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..eddc318371 100644 --- a/cells/thai/net/excel-workbook/_index.md +++ b/cells/thai/net/excel-workbook/_index.md @@ -75,6 +75,7 @@ Power Query เป็นเครื่องมือสำคัญในก - [ปรับระดับการบีบอัด](./adjust-compression-level/) เรียนรู้วิธีปรับระดับการบีบอัดสำหรับไฟล์ Excel โดยใช้ Aspose.Cells สำหรับ .NET ปรับขนาดไฟล์ของคุณอย่างมีประสิทธิภาพด้วยคู่มือทีละขั้นตอนนี้ - | [อนุญาตให้ใช้เครื่องหมายอะพอสทรอฟีนำหน้า](./allow-leading-apostrophe/) จัดการเครื่องหมายอะพอสทรอฟีนำหน้าใน Excel ได้อย่างง่ายดายด้วย Aspose.Cells สำหรับ .NET บทช่วยสอนที่ครอบคลุมนี้จะแนะนำคุณทีละขั้นตอนตลอดกระบวนการ - [สร้างสมุดงานที่แชร์](./create-shared-workbook/) | เรียนรู้วิธีสร้างเวิร์กบุ๊กที่ใช้ร่วมกันโดยใช้ Aspose.Cells สำหรับ .NET ด้วยคำแนะนำทีละขั้นตอนง่ายๆ นี้ เหมาะอย่างยิ่งสำหรับการปรับปรุงการทำงานร่วมกันเป็นทีม - +- [สร้างสมุดงาน Excel พร้อมตารางที่มีสไตล์ – คู่มือขั้นตอนโดยละเอียด](./create-excel-workbook-with-styled-table-step-by-step-guide/) | เรียนรู้วิธีสร้างสมุดงาน Excel พร้อมตารางที่จัดรูปแบบสวยงามโดยใช้ Aspose.Cells สำหรับ .NET ด้วยขั้นตอนง่ายๆ | [ตรวจจับประเภทลิงก์](./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/thai/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/thai/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..3eefa63df8 --- /dev/null +++ b/cells/thai/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-21 +description: สร้างเวิร์กบุ๊ก Excel และนำเข้าตารางข้อมูลไปยัง Excel พร้อมตั้งค่าสไตล์คอลัมน์, + ส่งออกข้อมูลไปยัง Excel, และจัดรูปแบบวันที่ในเซลล์ Excel เป็นนาที. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: th +og_description: สร้างเวิร์กบุ๊ก Excel อย่างรวดเร็ว เรียนรู้การนำเข้า datatable ไปยัง + Excel ตั้งค่ารูปแบบคอลัมน์ ส่งออกข้อมูลไปยัง Excel และจัดรูปแบบวันที่ในเซลล์ Excel + ในคู่มือเดียว +og_title: สร้างสมุดงาน Excel – คู่มือเต็มสำหรับการจัดรูปแบบและการส่งออก +tags: +- C# +- Aspose.Cells +- Excel automation +title: สร้างสมุดงาน Excel พร้อมตารางที่จัดสไตล์ – คู่มือขั้นตอนโดยละเอียด +url: /th/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง Excel Workbook – คู่มือการเขียนโปรแกรมแบบครบถ้วน + +เคยต้องการ **create excel workbook** ที่ดูเรียบหรูโดยตรงจากโค้ดหรือไม่? บางทีคุณอาจดึงข้อมูลจากฐานข้อมูลและต้องการให้วันที่แสดงในรูปแบบที่ถูกต้องโดยไม่ต้องแก้ไขใน Excel หลังจากนั้น นี่เป็นปัญหาที่พบบ่อย—โดยเฉพาะเมื่อผลลัพธ์ส่งถึงกล่องจดหมายของลูกค้าและพวกเขาคาดหวังว่าทุกอย่างพร้อมใช้งานแล้ว + +ในคู่มือนี้เราจะพาคุณผ่านโซลูชันแบบอิสระที่ **imports datatable to excel**, ตั้งค่า **set column style**, และสุดท้าย **export data to excel** เป็นไฟล์ที่จัดรูปแบบอย่างสวยงาม คุณจะได้เห็นวิธี **format excel cells date** อย่างแม่นยำเพื่อให้สเปรดชีตดูเป็นรายงานระดับมืออาชีพ และคุณจะได้รับตัวอย่างที่ทำงานได้เต็มรูปแบบในตอนท้าย ไม่มีส่วนที่ขาดหาย ไม่มีการอ้างอิง “ดูเอกสาร”—เพียงโค้ดที่คุณสามารถนำไปใช้ในโปรเจกต์ของคุณได้ทันที + +--- + +## สิ่งที่คุณจะได้เรียนรู้ + +- วิธี **create excel workbook** ด้วยไลบรารี Aspose.Cells (หรือ API ที่เข้ากันได้ใด ๆ) +- วิธีที่เร็วที่สุดในการ **import datatable to excel** โดยไม่ต้องวนลูปเซลล์ทีละเซลล์ +- เทคนิคการ **set column style** รวมถึงการกำหนดรูปแบบวันที่ให้กับคอลัมน์เฉพาะ +- วิธี **export data to excel** ด้วยการเรียก `Save` เพียงครั้งเดียว +- ข้อผิดพลาดทั่วไปเมื่อคุณพยายาม **format excel cells date** และวิธีหลีกเลี่ยง + +### ข้อกำหนดเบื้องต้น + +- .NET 6+ (หรือ .NET Framework 4.6+). +- Aspose.Cells for .NET installed (`Install-Package Aspose.Cells`). +- `DataTable` ที่พร้อมส่งออก—แหล่งข้อมูลของคุณอาจมาจาก SQL, CSV, หรืออะไรก็ตามที่สามารถแปลงเป็น `DataTable` ได้ + +หากคุณคุ้นเคยกับ C# แล้วและมีส่วนประกอบเหล่านี้พร้อมใช้งาน คุณก็พร้อมเริ่มได้เลย หากไม่เช่นนั้น ส่วน “Prerequisites” ด้านบนจะให้เช็คลิสต์สั้น ๆ เพื่อช่วยคุณเตรียมพร้อม + +--- + +## ขั้นตอนที่ 1 – สร้างอินสแตนซ์ Excel Workbook + +สิ่งแรกที่คุณทำเมื่ออยาก **create excel workbook** อย่างโปรแกรมเมติกคือการสร้างอ็อบเจกต์ workbook คิดว่าเป็นการเปิดโน้ตบุ๊กเปล่าที่คุณจะเขียนข้อมูลลงไปในภายหลัง + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **ทำไมสิ่งนี้ถึงสำคัญ:** +> คลาส `Workbook` เป็นจุดเริ่มต้นของทุกการทำงานใน Aspose.Cells การสร้างล่วงหน้าจะให้แคนวาสที่สะอาด และคุณสามารถโหลดไฟล์ที่มีอยู่ในภายหลังได้หากต้องการเพิ่มข้อมูลแทนการเริ่มจากศูนย์ + +--- + +## ขั้นตอนที่ 2 – เตรียม DataTable เพื่อทำการนำเข้า + +ก่อนที่เราจะ **import datatable to excel** เราต้องมี `DataTable` ในโครงการจริง ๆ มักมาจาก `SqlDataAdapter.Fill` หรือ `DataTable.Load` เพื่อความชัดเจนเราจะสร้างเมธอดจำลองที่คืนค่า `DataTable` พร้อมใช้ + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **เคล็ดลับ:** หากวันที่ของคุณถูกเก็บเป็นสตริง ให้แปลงเป็น `DateTime` ก่อน—ไม่เช่นนั้นขั้นตอน **format excel cells date** จะไม่ทำงานตามที่คาดหวัง + +--- + +## ขั้นตอนที่ 3 – กำหนดสไตล์สำหรับแต่ละคอลัมน์ (Set Column Style) + +ต่อไปคือส่วนที่เราจะ **set column style** เราจะสร้างอาเรย์ของอ็อบเจกต์ `Style`—หนึ่งอ็อบเจกต์ต่อคอลัมน์ คอลัมน์แรกจะได้รับรูปแบบวันที่ในตัว (code 14) ส่วนคอลัมน์อื่น ๆ จะใช้รูปแบบทั่วไป (code 0) + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **ทำไมต้องใช้อ็อบเจกต์สไตล์?** +> การกำหนดสไตล์เพียงครั้งเดียวแล้วนำไปใช้ซ้ำทำให้ประหยัดทรัพยากรกว่าการตั้งค่ารูปแบบบนแต่ละเซลล์ นอกจากนี้ยังรับประกันว่าคอลัมน์ทั้งหมดจะปฏิบัติตามกฎ **format excel cells date** เดียวกัน ซึ่งสำคัญสำหรับความสอดคล้องเมื่อไฟล์เปิดในโลคัลต่าง ๆ + +--- + +## ขั้นตอนที่ 4 – นำเข้า DataTable พร้อมสไตล์ลง Worksheet + +เมื่อ workbook พร้อมและสไตล์ถูกกำหนดแล้ว เราจะ **import datatable to excel** เมธอด `ImportDataTable` จะทำหน้าที่หลัก: เขียนหัวคอลัมน์, แถวข้อมูล, และนำสไตล์ที่เราผ่านเข้าไปใช้ + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **สิ่งที่เกิดขึ้นเบื้องหลัง:** +> - `true` บอก Aspose.Cells ให้รวมชื่อคอลัมน์เป็นแถวแรก +> - `0, 0` คือดัชนีแถวและคอลัมน์เริ่มต้น (มุมบน‑ซ้าย) +> - `columnStyles` จัดสไตล์ให้แต่ละคอลัมน์ตรงกับที่เตรียมไว้ ทำให้กฎ **format excel cells date** ถูกนำไปใช้กับคอลัมน์วันที่ + +--- + +## ขั้นตอนที่ 5 – บันทึก (Export) Workbook ไปยังไฟล์จริง + +สุดท้ายเราจะ **export data to excel** โดยบันทึก workbook ลงดิสก์ คุณสามารถเปลี่ยนเส้นทางไปยังโฟลเดอร์ใดก็ได้ หรือแม้กระทั่งสตรีมไฟล์โดยตรงไปยัง HTTP response สำหรับ Web API + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **เคล็ดลับระดับมืออาชีพ:** ใช้ `workbook.Save(Stream, SaveFormat.Xlsx)` เมื่อคุณต้องการส่งไฟล์ผ่านเครือข่ายโดยไม่ต้องเขียนลงดิสก์ + +--- + +## ตัวอย่างทำงานเต็มรูปแบบ (รวมทุกขั้นตอน) + +ด้านล่างเป็นโปรแกรมที่พร้อมรันเต็มรูปแบบ คัดลอก‑วางลงในแอปคอนโซล ปรับเส้นทางเอาต์พุต แล้วคุณจะได้ไฟล์ Excel ที่จัดรูปแบบสวยงามภายในไม่กี่วินาที + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**ผลลัพธ์ที่คาดหวัง:** +เมื่อคุณเปิด `StyledTable.xlsx` คอลัมน์ A จะแสดงวันที่เช่น `03/19/2026` (ขึ้นอยู่กับโลคัลของคุณ) ส่วนคอลัมน์ B และ C จะแสดงชื่อสินค้าและจำนวนเป็นข้อความ/ตัวเลขธรรมดา ไม่ต้องทำขั้นตอนการจัดรูปแบบเพิ่มเติม—กระบวนการ **create excel workbook** ของคุณเสร็จสมบูรณ์แล้ว + +--- + +## คำถามที่พบบ่อย & กรณีขอบเขต + +### 1️⃣ ถ้า DataTable ของฉันมีมากกว่าสามคอลัมน์จะทำอย่างไร? +เพิ่มอ็อบเจกต์ `Style` ลงในอาเรย์ `columnStyles` และปรับคุณสมบัติ `Number` สำหรับคอลัมน์ที่ต้องการรูปแบบพิเศษ (เช่น สกุลเงิน, เปอร์เซ็นต์) เมธอด `ImportDataTable` จะจับคู่สไตล์กับตำแหน่งของคอลัมน์โดยอัตโนมัติ + +### 2️⃣ ฉันสามารถใช้รูปแบบวันที่กำหนดเองแทน 14 ที่มีอยู่ได้หรือไม่? +ได้เลย แทนที่ `columnStyles[i].Number = 14;` ด้วย: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ จะ **export data to excel** ใน Web API อย่างไรโดยไม่ต้องเขียนไฟล์ลงดิสก์? +ใช้ `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ ถ้าโลคัลของผู้ใช้ต้องการตัวคั่นวันที่ต่างกันจะทำอย่างไร? +รูปแบบวันที่ในตัว (ID 14) จะเคารพการตั้งค่าโลคัลของ workbook หากต้องการรูปแบบคงที่ไม่ขึ้นกับโลคัล ให้ใช้คุณสมบัติ `Custom` ตามที่แสดงด้านบน + +### 5️⃣ โค้ดนี้ทำงานกับ .NET Core ได้หรือไม่? +ทำได้—Aspose.Cells รองรับ .NET Standard 2.0 ขึ้นไป ดังนั้นโค้ดเดียวกันจึงทำงานบน .NET 6, .NET 7 หรือรันไทม์ที่เข้ากันได้อื่น ๆ + +--- + +## เคล็ดลับการปฏิบัติที่ดีที่สุด (Pro Tips) + +- **Reuse styles**: การสร้างสไตล์ต่อคอลัมน์นั้นไม่แพง แต่การใช้สไตล์เดียวกันซ้ำสำหรับคอลัมน์ที่เหมือนกันจะช่วยประหยัดหน่วยความจำ +- **Avoid cell‑by‑cell loops**: `ImportDataTable` ถูกปรับให้ทำงานอย่างมีประสิทธิภาพ การวนลูปด้วยตนเองช้ากว่าและเสี่ยงต่อข้อผิดพลาด +- **Set workbook culture early** หากต้องการให้ตัวคั่นเลข/วันที่คงที่ข้ามสภาพแวดล้อม: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validate DataTable** ก่อนนำเข้า—วันที่ที่เป็น `null` จะทำให้เกิดข้อยกเว้นเมื่อสไตล์วันที่ถูกนำไปใช้ +- **Turn on calculation** หากคุณเพิ่มสูตรหลังจากนำเข้า: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## สรุป + +คุณมีสูตรครบวงจรเพื่อ **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, และ **format excel cells date**—ทั้งหมดในไม่ถึงสิบสองบรรทัดของโค้ด C# วิธีนี้รวดเร็ว เชื่อถือได้ และจัดการเรื่องการจัดรูปแบบทั้งหมดในโค้ด ทำให้สเปรดชีตสุดท้ายพร้อมใช้งานสำหรับผู้ใช้ธุรกิจทันทีที่เปิด + +พร้อมรับความท้าทายต่อไปหรือยัง? ลองเพิ่ม conditional formatting, แทรก charts, หรือแปลงไฟล์ต่อไป + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/thai/net/row-and-column-management/_index.md index 281e03448b..1ed9b6a02f 100644 --- a/cells/thai/net/row-and-column-management/_index.md +++ b/cells/thai/net/row-and-column-management/_index.md @@ -68,6 +68,8 @@ เรียนรู้วิธีการลบแถวใน Excel ด้วย Aspose.Cells สำหรับ .NET คำแนะนำทีละขั้นตอนนี้ครอบคลุมถึงข้อกำหนดเบื้องต้น การนำเข้าโค้ด และคำแนะนำโดยละเอียดสำหรับการจัดการข้อมูลอย่างราบรื่น ### [ลบหลายแถวใน Aspose.Cells .NET](./delete-multiple-rows-aspose-cells/) เรียนรู้การลบหลายแถวใน Excel โดยใช้ Aspose.Cells สำหรับ .NET คำแนะนำทีละขั้นตอนโดยละเอียดนี้ครอบคลุมถึงข้อกำหนดเบื้องต้น ตัวอย่างการเขียนโค้ด และคำถามที่พบบ่อยสำหรับนักพัฒนา +### [โหลดไฟล์ Excel ด้วย C# – วิธีลบแถวและลบแถวเฉพาะ](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +เรียนรู้วิธีโหลดไฟล์ Excel ด้วย C# และลบแถว รวมถึงการลบแถวเฉพาะโดยใช้ Aspose.Cells ### [แทรกคอลัมน์ใน Aspose.Cells .NET](./insert-column-aspose-cells/) เรียนรู้วิธีการแทรกคอลัมน์ใน Excel โดยใช้ Aspose.Cells สำหรับ .NET ปฏิบัติตามคำแนะนำทีละขั้นตอนง่ายๆ ของเราเพื่อเพิ่มคอลัมน์ใหม่ได้อย่างราบรื่น เหมาะสำหรับนักพัฒนา .NET ### [แทรกแถวใน Aspose.Cells .NET](./insert-row-aspose-cells/) diff --git a/cells/thai/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/thai/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..ced31ef8a4 --- /dev/null +++ b/cells/thai/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-21 +description: โหลดไฟล์ Excel ด้วย C# และลบแถวข้อมูลด้วย Aspose.Cells เรียนรู้วิธีลบแถว, + ลบแถวเฉพาะ, และเชี่ยวชาญการลบแถวใน Excel ด้วย C# ภายในไม่กี่นาที. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: th +og_description: โหลดไฟล์ Excel ด้วย C# และลบแถวอย่างรวดเร็ว, ลบแถวที่ต้องการ, พร้อมจัดการการลบแถวใน + Excel ด้วย C# ผ่าน Aspose.Cells. คู่มือแบบขั้นตอนเต็ม. +og_title: โหลดไฟล์ Excel C# – ลบแถวและลบแถวเฉพาะ +tags: +- C# +- Excel +- Aspose.Cells +title: โหลดไฟล์ Excel ด้วย C# – วิธีลบแถวและลบแถวเฉพาะ +url: /th/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# โหลดไฟล์ Excel ด้วย C# – วิธีลบแถวและลบแถวที่ระบุเฉพาะ + +เคยต้อง **load Excel file C#** แล้วต้องตัดแถวที่ไม่ต้องการออกหรือไม่? บางครั้งคุณอาจต้องทำความสะอาดข้อมูลที่ดึงมามากมาย หรืออาจมีเทมเพลตที่ต้องลบแถวบางแถวก่อนส่งเวิร์กบุ๊กให้ลูกค้า ไม่ว่าจะเป็นกรณีใด ปัญหาก็เหมือนกัน: คุณมีไฟล์ `.xlsx` อยู่บนดิสก์ ต้องการเปิดใน .NET แล้วต้อง **delete rows** โดยไม่ทำลายตารางหรือ ListObject ที่ซ่อนอยู่ + +เรื่องนี้ Aspose.Cells ทำให้เป็นเรื่องง่ายมาก ในบทแนะนำนี้คุณจะได้เห็นตัวอย่างที่พร้อมรันเต็มรูปแบบซึ่งแสดง **วิธีลบแถว**, **วิธีลบแถวที่ระบุเฉพาะ**, และเหตุผลที่คุณอาจต้องสนใจ **c# excel row deletion** ตั้งแต่แรกจนถึงตอนสุดท้าย คุณจะได้ไฟล์ `output.xlsx` ที่สะอาดและมีเฉพาะแถวที่ต้องการเท่านั้น + +## สิ่งที่คู่มือนี้ครอบคลุม + +- การโหลดเวิร์กบุ๊ก Excel จากดิสก์ด้วย Aspose.Cells +- การลบช่วงแถว (เช่น แถว 5‑10) พร้อมคำนึงถึงหัวตาราง ListObject +- การบันทึกเวิร์กบุ๊กที่แก้ไขแล้วกลับไปยังระบบไฟล์ +- จุดบกพร่องทั่วไป เช่น การลบแถวโดยบังเอิญภายในตาราง, พร้อมเคล็ดลับการจัดการ +- ตัวอย่างโค้ดเต็มที่สามารถรันได้ทันทีและนำไปใส่ในแอปคอนโซลได้เลย + +> **Prerequisites** +> • .NET 6+ (หรือ .NET Framework 4.6+) +> • Aspose.Cells for .NET ติดตั้งผ่าน NuGet (`Install-Package Aspose.Cells`) +> • ความคุ้นเคยพื้นฐานกับ C# และแนวคิดของ Excel (worksheet, cell, table) + +หากคุณสงสัย **ทำไมต้องใช้ Aspose.Cells** แทน `Microsoft.Office.Interop.Excel` คำตอบคือ ความเร็ว, ไม่ต้องใช้ COM, และสามารถรันบนเซิร์ฟเวอร์ที่ไม่มี Office ติดตั้ง อีกทั้ง API ก็ง่ายต่อการทำงานลบแถว + +--- + +## ขั้นตอนที่ 1: โหลดเวิร์กบุ๊ก Excel ใน C# + +ก่อนที่คุณจะลบอะไรได้ คุณต้องโหลดเวิร์กบุ๊กเข้าสู่หน่วยความจำ คลาส `Workbook` แทนไฟล์ Excel ทั้งไฟล์ + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**ทำไมเรื่องนี้สำคัญ:** +การโหลดไฟล์จะสร้างกราฟวัตถุที่สะท้อนโครงสร้างของ Excel — worksheets, cells, tables ฯลฯ การถืออ้างอิงถึง `ws` ทำให้คุณสามารถจัดการแถวโดยตรงโดยไม่ต้องกังวลเรื่องไฟล์ล็อกหรือข้อบกพร่องของ COM interop + +--- + +## ขั้นตอนที่ 2: ลบแถวที่มีเฉพาะข้อมูลเท่านั้น + +เมื่อเวิร์กบุ๊กอยู่ในหน่วยความจำแล้ว คุณสามารถลบแถวได้ เมธอด `Cells.DeleteRows(startRow, totalRows)` จะลบบล็อกต่อเนื่อง ในตัวอย่างนี้เราจะลบแถว 5‑10 + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**วิธีทำงาน:** +- `startRow` เริ่มจากศูนย์ ดังนั้น `5` จริง ๆ หมายถึงแถว 6 ของ Excel ปรับค่าให้เหมาะสม +- หาก worksheet มี **ListObject** (ตาราง Excel) ที่หัวตารางอยู่ที่แถว 4, Aspose.Cells จะปกป้องหัวตารางและลบเฉพาะแถวข้อมูลใต้หัวเท่านั้น ความปลอดภัยในตัวนี้ช่วยป้องกันการทำลายตารางที่มีโครงสร้าง — เป็นกรณีขอบที่พบบ่อยเมื่อ **removing data rows** + +> **Pro tip:** หากต้องลบแถวที่ไม่ต่อเนื่อง (เช่น แถว 3, 7, 12) ให้วนลูปผ่านคอลเลกชันของดัชนีแถวในลำดับย้อนกลับและเรียก `DeleteRows(rowIndex, 1)` สำหรับแต่ละแถว การลบจากด้านล่างขึ้นบนจะรักษาดัชนีเดิมของแถวที่เหลือไว้ + +--- + +## ขั้นตอนที่ 3: บันทึกเวิร์กบุ๊กที่แก้ไขแล้ว + +เมื่อแถวที่ไม่ต้องการหายไปแล้ว เพียงเขียนเวิร์กบุ๊กกลับไปยังดิสก์ + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +เมธอด `Save` จะกำหนดรูปแบบไฟล์อัตโนมัติตามส่วนขยาย (`.xlsx` ในกรณีนี้) หากต้องการรูปแบบอื่น — CSV, PDF ฯลฯ — เพียงเปลี่ยนส่วนขยายหรือส่งค่า `SaveFormat` enum + +### ผลลัพธ์ที่คาดหวัง + +เปิด `output.xlsx` ใน Excel แล้วคุณจะเห็นว่าแถว 5‑14 (แถวเดิม 5‑10) หายไป ข้อมูลอื่นทั้งหมดเลื่อนขึ้นตาม และสูตรใด ๆ ที่อ้างอิงแถวที่ลบจะถูกปรับโดยอัตโนมัติโดย Aspose.Cells + +--- + +## คำถามที่พบบ่อย (FAQ) + +### จะลบแถวตามเงื่อนไข (เช่น แถวที่คอลัมน์ A ว่าง) อย่างไร? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +ลูปทำงานย้อนกลับเพื่อหลีกเลี่ยงการเปลี่ยนดัชนี แพทเทิร์นนี้ตอบคำถาม **c# excel row deletion** ที่ต้องการตรรกะเชิงเงื่อนไข + +### หาก worksheet มีหลาย ListObject จะทำอย่างไร? + +Aspose.Cells จัดการแต่ละ ListObject แยกกัน หากหัวตารางของตารางใด ๆ จะถูกกระทบจากช่วงที่ลบ API จะโยน `InvalidOperationException` วิธีแก้คือ ปรับช่วงลบหรือชั่วคราวตั้งค่า `ShowTableStyleFirstColumn` ของ ListObject ให้เป็น `false`, ทำการลบ, แล้วคืนค่าเดิมกลับ + +### สามารถลบแถวโดยไม่โหลดเวิร์กบุ๊กทั้งหมดเข้าสู่หน่วยความจำได้หรือ? + +ได้ — Aspose.Cells มี **streaming API** (`Workbook.LoadOptions`) ที่อ่านข้อมูลเป็นชิ้น ๆ อย่างไรก็ตาม การลบแถวต้องการโครงสร้างของ worksheet ดังนั้นคุณยังต้องโหลดแผ่นงานเป้าหมายเข้าสู่หน่วยความจำ สำหรับไฟล์ขนาดใหญ่ (>500 MB) ให้พิจารณาประมวลผลเป็นชุดหรือใช้ **cell‑by‑cell** API + +--- + +## ตัวอย่างเต็มที่สามารถรันได้ + +ด้านล่างเป็นโปรแกรมเต็มที่คุณสามารถคอมไพล์และรันเป็นแอปคอนโซล แทนที่ `YOUR_DIRECTORY` ด้วยพาธโฟลเดอร์จริงบนเครื่องของคุณ + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**วิธีรันโค้ด:** +1. เปิดเทอร์มินัลหรือ Visual Studio +2. `dotnet new console -n ExcelRowDeletionDemo` +3. แทนที่ `Program.cs` ด้วยโค้ดด้านบน +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +คุณจะเห็นข้อความในคอนโซลยืนยันการลบและตำแหน่งไฟล์ที่บันทึกไว้ + +--- + +## จุดบกพร่องทั่วไป & วิธีหลีกเลี่ยง + +| จุดบกพร่อง | สาเหตุ | วิธีแก้ | +|------------|--------|--------| +| **ลบหัวตาราง ListObject โดยบังเอิญ** | `DeleteRows` ไม่ตรวจสอบหัวตารางที่ซ่อนอยู่เมื่อช่วงลบทับหัว | ตรวจสอบให้แน่ใจว่าแถวเริ่มต้นอยู่ **หลัง** หัวตาราง, หรือใช้ API ของ `ListObject` (`ListObject.DeleteRows`) | +| **ดัชนีแถวผิดหนึ่ง** | Aspose.Cells ใช้การนับจากศูนย์, แต่ผู้ใช้ Excel คิดเป็น 1‑based | ลด 1 จากหมายเลขแถวของ Excel ก่อนเขียนโค้ด | +| **สูตรพังหลังการลบ** | การลบแถวอาจทำให้สูตรอ้างอิงแถวที่หายไปเป็น `#REF!` | Aspose.Cells ปรับสูตรส่วนใหญ่โดยอัตโนมัติ, แต่ควรตรวจสอบการอ้างอิงภายนอกหรือ Named Range | +| **ประสิทธิภาพช้ากับไฟล์ขนาดใหญ่** | การลบหลายแถวกระตุ้นการทำดัชนีใหม่ภายใน | ลบเป็นช่วงใหญ่ (`DeleteRows(start, count)`) แทนการลบแถวเดี่ยวหลายครั้ง | + +--- + +## ขั้นตอนต่อไป & หัวข้อที่เกี่ยวข้อง + +- **ลบแถวตามค่าเซลล์:** ผสานลูปเชิงเงื่อนไขจาก FAQ กับ `DeleteRows` +- **แทรกแถวเป็นกลุ่ม:** ใช้ `InsertRows` เพื่อเพิ่มแถวว่างก่อนใส่ข้อมูล +- **ทำงานกับตาราง (ListObjects):** สำรวจเมธอดของ `ListObject` สำหรับการจัดการระดับแถวภายในตารางที่มีโครงสร้าง +- **ส่งออกเป็น CSV หลังลบแถว:** เรียก `workbook.Save("output.csv", SaveFormat.Csv)` เพื่อสร้าง CSV ที่ไม่มีแถวที่ลบออก + +ทุกหัวข้อเหล่านี้ต่อยอดจากกระบวนการ **load excel file c#** ที่คุณเพิ่งเรียนรู้ ทำให้คุณสามารถปรับแต่งไฟล์ Excel อย่างละเอียดได้ทั้งในสคริปต์ง่าย ๆ และระบบประมวลผลระดับองค์กร + +--- + +## สรุป + +เราได้เดินผ่านสถานการณ์จริงของ **load excel file c#**, แสดง **วิธีลบแถว**, และอธิบายรายละเอียดของ **remove specific rows** และ **remove data rows** ด้วย Aspose.Cells โดยการโหลดเวิร์กบุ๊ก, เรียก `DeleteRows`, แล้วบันทึกผลลัพธ์ คุณจะได้การ **c# excel row deletion** ที่เชื่อถือได้โดยไม่ต้องพึ่ง COM interop + +ลองใช้กับชุดข้อมูลจริง — อาจทำความสะอาดรายงานการขายหรือเอาแถวทดสอบออกจากเทมเพลต เมื่อคุ้นเคยแล้วลองทำการลบเชิงเงื่อนไขและการทำงานกับตาราง API ของ 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/worksheet-operations/_index.md b/cells/thai/net/worksheet-operations/_index.md index 7e1a49741b..713bb4a12e 100644 --- a/cells/thai/net/worksheet-operations/_index.md +++ b/cells/thai/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ เรียนรู้วิธีอัปเดตประวัติบันทึกการแก้ไขในเวิร์กบุ๊กที่แชร์โดยใช้ Aspose.Cells สำหรับ .NET ทำให้การทำงานร่วมกันง่ายขึ้นและรักษาบันทึกเอกสารที่ชัดเจน ### [ใช้คุณสมบัติ Sheet_SheetId ของ OpenXml ในเวิร์กชีต](./utilize-sheet-sheetid-property/) ปลดล็อกพลังของ Excel ด้วย Aspose.Cells สำหรับ .NET เรียนรู้การจัดการ Sheet ID อย่างมีประสิทธิภาพด้วยคู่มือทีละขั้นตอนของเรา +### [วิธีสร้างเวิร์กชีต – คู่มือขั้นตอนต่อขั้นตอนสำหรับการสร้าง Excel แบบไดนามิก](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +เรียนรู้วิธีสร้างเวิร์กชีตใน Excel อย่างอัตโนมัติด้วย Aspose.Cells สำหรับ .NET ผ่านขั้นตอนละเอียดและตัวอย่างโค้ด {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/thai/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..b22c8050b1 --- /dev/null +++ b/cells/thai/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,276 @@ +--- +category: general +date: 2026-03-21 +description: เรียนรู้วิธีสร้างแผ่นงาน, สร้างไฟล์ Excel ที่มีชื่อแผ่นงานแบบไดนามิกและบันทึกสมุดงานเป็น + XLSX โดยใช้ Aspose.Cells ใน C# +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: th +og_description: วิธีสร้างแผ่นงานใน Excel ด้วย Aspose.Cells, สร้างแผ่น Excel พร้อมชื่อแผ่นงานแบบไดนามิก, + และบันทึกเวิร์กบุ๊กเป็นไฟล์ XLSX. +og_title: วิธีสร้างแผ่นงาน – คอร์สสอน C# อย่างครบถ้วน +tags: +- Aspose.Cells +- C# +- Excel automation +title: วิธีสร้างแผ่นงาน – คู่มือขั้นตอนต่อขั้นตอนสำหรับการสร้าง Excel แบบไดนามิก +url: /th/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีสร้าง Worksheet – Tutorial C# ฉบับสมบูรณ์ + +เคยสงสัย **วิธีสร้าง worksheet** อย่างรวดเร็วโดยไม่ต้องเปิด Excel ด้วยตนเองทุกครั้งหรือไม่? คุณไม่ได้เป็นคนเดียวที่เจอปัญหานี้ นักพัฒนาหลายคนมักเจออุปสรรคเมื่อจำเป็นต้อง **สร้าง Excel sheets** จากแหล่งข้อมูลและต้องการให้แต่ละ sheet มีชื่อที่มีความหมายและเปลี่ยนแปลงได้ ข่าวดีคือ? ด้วย Aspose.Cells คุณสามารถอัตโนมัติกระบวนการทั้งหมด, **ประมวลผล master sheet**, และสุดท้าย **บันทึก workbook เป็น XLSX** เพียงไม่กี่บรรทัดของโค้ด + +ในบทเรียนนี้เราจะเดินผ่านสถานการณ์จริง: เริ่มจาก workbook ว่าง, แทรก token smart‑marker ที่บอก Aspose ว่าจะสร้าง detail sheet ใด, ตั้งค่ารูปแบบการตั้งชื่อเพื่อให้แต่ละ sheet มีชื่อเฉพาะ, และสุดท้ายบันทึกผลลัพธ์ลงดิสก์ เมื่อจบคุณจะได้โปรแกรม C# ที่พร้อมรันซึ่งสร้าง worksheet, สร้าง Excel sheets ด้วยชื่อ worksheet แบบไดนามิก, และบันทึก workbook เป็น XLSX — โดยไม่ต้องสัมผัส UI ใดเลย + +> **Prerequisites** +> • .NET 6+ (หรือ .NET Framework 4.6+) +> • Aspose.Cells for .NET (เวอร์ชันทดลองฟรีทำงานได้กับตัวอย่างนี้) +> • ความรู้พื้นฐาน C# — ไม่ต้องใช้เทคนิค Excel interop ขั้นสูง + +--- + +## ภาพรวมของสิ่งที่เราจะสร้าง + +- **Master sheet** ที่มี placeholder smart‑marker (`«DetailSheetNewName:Dept»`) +- **SmartMarkerProcessor** ที่อ่านแหล่งข้อมูล (เช่น `DataTable`) และสร้าง worksheet ใหม่สำหรับแต่ละแผนก +- **ชื่อ worksheet แบบไดนามิก** ตามรูปแบบ `Dept_{0}` โดยที่ `{0}` จะถูกแทนด้วยชื่อแผนก +- **ไฟล์ XLSX สุดท้าย** ที่บันทึกลงโฟลเดอร์ที่คุณระบุ + +แค่นั้นเอง ง่ายแต่ทรงพลังพอสำหรับใบแจ้งหนี้, รายงาน, หรือผลลัพธ์ Excel แบบหลายแท็บใด ๆ + +--- + +![Diagram showing how a master sheet is processed to generate multiple dynamic worksheets](/images/how-to-create-worksheets-diagram.png "How to create worksheets diagram") +*Alt text: ภาพประกอบวิธีสร้าง worksheet ด้วยชื่อ worksheet แบบไดนามิกโดยใช้ Aspose.Cells.* + +--- + +## Step 1: ตั้งค่า Project และเพิ่ม Aspose.Cells + +### ทำไมเรื่องนี้ถึงสำคัญ +ก่อนที่โค้ดใดจะทำงาน คอมไพเลอร์ต้องรู้ว่าคลาส `Workbook`, `Worksheet`, และ `SmartMarkerProcessor` อยู่ที่ไหน การเพิ่มแพ็กเกจ NuGet จะทำให้คุณได้ API ล่าสุดที่เต็มคุณสมบัติ + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro tip:** หากคุณใช้ Visual Studio, คลิกขวาที่โปรเจกต์ → *Manage NuGet Packages* → ค้นหา *Aspose.Cells* แล้วติดตั้งเวอร์ชัน stable ล่าสุด + +--- + +## Step 2: สร้าง Workbook ใหม่และ Master Sheet + +### สิ่งที่เรากำลังทำ +เราเริ่มด้วย workbook ที่สะอาด แล้วดึง worksheet แรก (index 0) Sheet นี้จะทำหน้าที่เป็น **master sheet** ที่เก็บ token smart‑marker + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +คลาส `Workbook` เป็นคอนเทนเนอร์ของทุก worksheet โดยค่าเริ่มต้นจะสร้าง sheet ชื่อ *Sheet1*; การเปลี่ยนชื่อเป็น “Master” จะทำให้ไฟล์สุดท้ายนำทางได้ง่ายขึ้น + +--- + +## Step 3: แทรก Smart‑Marker Token สำหรับชื่อ Detail Sheet + +### ทำไมต้องใช้ smart‑marker? +Smart markers ให้ Aspose.Cells แทนที่ placeholder ด้วยข้อมูลใน runtime token `«DetailSheetNewName:Dept»` บอก processor ว่า *“เมื่อเจออันนี้ ให้สร้าง detail sheet ใหม่สำหรับแต่ละแถวในคอลัมน์ `Dept`”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +คุณสามารถวาง token ได้ทุกที่; เราเลือก **A1** เพื่อความชัดเจน เมื่อ processor ทำงาน มันจะแทนที่ token ด้วยชื่อแผนกจริงและสร้าง worksheet ที่สอดคล้องกัน + +--- + +## Step 4: เตรียมแหล่งข้อมูล + +### วิธีที่ข้อมูลขับการสร้าง sheet +Aspose.Cells รองรับแหล่งข้อมูล `IEnumerable` ใด ๆ สำหรับตัวอย่างนี้เราจะใช้ `DataTable` ที่มีคอลัมน์เดียวชื่อ `Dept` + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **ถ้าคุณมีคอลัมน์เพิ่มขึ้น?** +> Processor จะละเว้นคอลัมน์ที่ไม่ได้อ้างอิงใน smart marker เพิ่มเติม ทำให้การสร้าง sheet มีน้ำหนักเบา + +--- + +## Step 5: ตั้งค่า SmartMarkerProcessor และรูปแบบการตั้งชื่อ + +### ชื่อ worksheet แบบไดนามิกในงาน +เราต้องการให้แต่ละ sheet ใหม่มีชื่อ `Dept_Finance`, `Dept_HR` ฯลฯ ตัวเลือก `DetailSheetNewName` ให้เรากำหนดรูปแบบที่ `{0}` จะถูกแทนด้วยชื่อแผนกจริง + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +หากแผนกเดียวปรากฏสองครั้ง Aspose จะเพิ่ม suffix ตัวเลขอัตโนมัติ (เช่น `Dept_Finance_1`) เพื่อหลีกเลี่ยงชื่อซ้ำ + +--- + +## Step 6: ประมวลผล Master Sheet เพื่อสร้าง Detail Sheets + +### แกนหลักของ **process master sheet** +การเรียก `Process` ทำหน้าที่หนัก: สแกน master sheet เพื่อหา smart markers, สร้าง worksheet ใหม่, คัดลอกเลย์เอาต์จาก master, แล้วเติมข้อมูลของแต่ละแถวลงไป + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +หลังจากเรียกนี้ workbook จะมี master sheet หนึ่งใบและ detail sheet สี่ใบ — แต่ละใบมีชื่อตามรูปแบบและมีชื่อแผนกในเซลล์ A1 + +--- + +## Step 7: บันทึก Workbook เป็น XLSX + +### ขั้นตอนสุดท้าย—**save workbook as XLSX** +ตอนนี้ worksheet ทั้งหมดพร้อมแล้ว เราเขียนไฟล์ลงดิสก์ คุณสามารถเลือกพาธใดก็ได้ เพียงให้แน่ใจว่าโฟลเดอร์มีอยู่แล้ว + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +การเปิด `DetailSheets.xlsx` จะได้ผลลัพธ์ดังนี้ + +| ชื่อแผ่น | เซลล์ A1 (เนื้อหา) | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (unchanged) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **กรณีขอบ:** หากโฟลเดอร์ปลายทางไม่มีอยู่ `Save` จะโยน `DirectoryNotFoundException` ให้ห่อการเรียกใน `try‑catch` หรือสร้างโฟลเดอร์ล่วงหน้า + +--- + +## ตัวอย่างทำงานเต็มรูปแบบ + +รวมทั้งหมดเข้าด้วยกัน นี่คือโปรแกรมสมบัติที่คุณสามารถคัดลอก‑วางลงใน console app ได้เลย: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +รันโปรแกรม, เปิดไฟล์ที่ได้, คุณจะเห็นเลย์เอาต์ตามที่อธิบายไว้ข้างต้น ไม่ต้องคัดลอก‑วางด้วยมือ ไม่ต้องใช้ COM interop — เพียง C# สะอาดที่ **สร้าง Excel sheets** ด้วย **ชื่อ worksheet แบบไดนามิก** + +--- + +## คำถามที่พบบ่อย & จุดที่ต้องระวัง + +| คำถาม | คำตอบ | +|----------|--------| +| *ฉันสามารถใช้ DataSet ที่มีหลายตารางได้หรือไม่?* | ได้. ส่งตารางที่ต้องการให้ `Process` หรือใช้ dictionary ของตาราง | +| *ถ้าฉันต้องการ smart‑marker มากกว่าหนึ่งตัวบน master sheet จะทำอย่างไร?* | ใส่ token เพิ่มเช่น `«DetailSheetNewName:Region»` แล้วตั้งรูปแบบการตั้งชื่อแยกต่างหากตามต้องการ | +| *master sheet จะถูกเก็บไว้ในไฟล์สุดท้ายหรือไม่?* | โดยค่าเริ่มต้นจะเก็บไว้. หากไม่ต้องการสามารถเรียก `workbook.Worksheets.RemoveAt(0)` หลังการประมวลผล | +| *Aspose จัดการกับชุดข้อมูลขนาดใหญ่อย่างไร?* | มันสตรีมข้อมูลอย่างมีประสิทธิภาพ, แต่คุณอาจต้องเพิ่ม `MemorySetting` หากเจอข้อจำกัดเรื่องหน่วยความจำ | +| *ฉันสามารถส่งออกเป็น CSV แทน XLSX ได้หรือไม่?* | แน่นอน — ใช้ `workbook.Save("file.csv", SaveFormat.Csv)`. โลจิกการสร้าง sheet ยังคงเหมือนเดิม | + +--- + +## ขั้นตอนต่อไป + +เมื่อคุณรู้ **วิธีสร้าง worksheet** แบบไดนามิกแล้ว คุณอาจสำรวจต่อ: + +- **บันทึก workbook เป็น XLSX** พร้อมการป้องกันด้วยรหัสผ่าน (`workbook.Protect("pwd")`) +- **สร้าง Excel sheets** จากแหล่งข้อมูล JSON หรือ XML ด้วย `JsonDataSource` หรือ `XmlDataSource` +- **ใช้สไตล์** กับแต่ละ sheet ที่สร้าง (ฟอนต์, สี) ผ่านอ็อบเจกต์ `Style` +- **รวมเซลล์** หรือแทรกสูตรอัตโนมัติสำหรับรายงานสรุป + +แต่ละส่วนขยายนี้อิงกับแนวคิด **process master sheet** เดียวกัน ทำให้การเปลี่ยนแปลงเป็นเรื่องง่าย + +--- + +## สรุป + +เราได้ครอบคลุมขั้นตอนทั้งหมด: ตั้งค่า workbook, แทรก smart‑marker, ตั้งค่าชื่อ worksheet แบบไดนามิก, ประมวลผล master sheet เพื่อ **สร้าง Excel sheets**, และสุดท้าย **บันทึก workbook เป็น XLSX** ตัวอย่างสมบูรณ์, รันได้ทันที, และแสดงแนวทางปฏิบัติที่ดีที่สุดทั้งด้านประสิทธิภาพและการบำรุงรักษา + +ลองใช้, ปรับรูปแบบการตั้งชื่อ, ป้อนข้อมูลธุรกิจจริงของคุณ, แล้วดูการทำงานอัตโนมัติของ 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/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/turkish/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..c866388d2d --- /dev/null +++ b/cells/turkish/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: C# ile Aspose.Cells kullanarak çalışma kitabını nasıl hesaplayacağınız + – Excel çalışma kitabı oluşturmayı, Excel hücrelerini doldurmayı, Excel formüllerini + hesaplamayı ve sıralama işlevini kullanmayı öğrenin. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: tr +og_description: C#'ta çalışma kitabını hızlıca nasıl hesaplayacağınız. Bu öğreticide + Excel çalışma kitabı oluşturma, Excel hücrelerini doldurma, Excel formüllerini hesaplama + ve sıralama işlevini kullanma gösterilmektedir. +og_title: C#'ta Çalışma Kitabını Nasıl Hesaplayabilirsiniz – Tam Sıralama Rehberi +tags: +- C# +- Aspose.Cells +- Excel Automation +title: C#'ta Çalışma Kitabını Nasıl Hesaplayabilirsiniz – Sıralama ve Formül Rehberi +url: /tr/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#’ta Çalışma Kitabı Nasıl Hesaplanır – Sıralama & Formül Rehberi + +Excel’i açmadan **çalışma kitabı** değerlerini anlık olarak hesaplamayı hiç merak ettiniz mi? Tek başınıza değilsiniz. Birçok otomasyon senaryosunda bir Excel dosyası oluşturup, içine sayılar ekleyip, bunları sıralayıp, sonuçları .NET uygulamanıza programlı bir şekilde geri çekmeniz gerekir. + +Bu rehberde tam olarak bunu yapacağız: **excel çalışma kitabı** oluşturacak, **excel hücrelerini** dolduracak, bir **SORT** formülü ekleyecek ve sonunda **excel formüllerini** hesaplayarak sıralı diziyi doğrudan C#’tan okuyacağız. Sonunda, Aspose.Cells (veya benzeri bir kütüphane) referansı olan herhangi bir projeye ekleyebileceğiniz çalıştırılabilir bir kod parçacığı elde edeceksiniz. + +## Önkoşullar + +- .NET 6+ (kod .NET Framework 4.7.2’de de çalışır) +- Aspose.Cells for .NET (ücretsiz deneme NuGet paketi `Aspose.Cells`) +- C# sözdizimi hakkında temel bilgi +- Microsoft Excel’in kurulu olmasına gerek yok; kütüphane tüm işi sizin için yapar + +Bu koşullara uygunsanız, başlayalım. + +## Çalışma Kitabını Hesaplama – Çalışma Kitabını Başlatma + +İlk yapmanız gereken, yeni bir çalışma kitabı nesnesi oluşturmak. Bunu, tamamen boş bir Excel dosyasını açmak gibi düşünün. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Neden önemli:** `Workbook` sınıfı her işlemin giriş noktasıdır—onsuz sayfa, hücre veya formül ekleyemezsiniz. Doğru şekilde başlatmak, temiz bir sayfa ile çalıştığınızdan emin olmanızı sağlar. + +## Excel Çalışma Kitabı Oluşturma ve Çalışma Sayfasına Erişme + +Çalışma kitabı oluşturulduğuna göre, doğru çalışma sayfasına işaret ettiğimizden emin olmalıyız. Çoğu kütüphane varsayılan olarak “Sheet1” adlı tek bir sayfa oluşturur, ancak isterseniz adını değiştirebilir veya yeni sayfalar ekleyebilirsiniz. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **İpucu:** Sayfaları erken adlandırmak, formüllerde (`'Data'!A1:A10`) onlara başvururken işleri kolaylaştırır ve hata ayıklamayı basitleştirir. + +## Excel Hücrelerini Veriyle Doldurma + +Şimdi **excel hücrelerini** sıralamak istediğimiz sayılarla **dolduracağız**. Örnek sadece iki hücre kullanıyor, ancak aralığı istediğiniz kadar satıra genişletebilirsiniz. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **`PutValue` kullanmamızın nedeni** – Veri tipini (int, double, string vb.) otomatik algılar ve uygun şekilde depolar, böylece manuel tip dönüşümüne gerek kalmaz. + +## Formül ile SORT Fonksiyonunu Uygulama + +Excel’in `SORT` fonksiyonu, adından da anlaşılacağı gibi, orijinal veriyi değiştirmeden sıralı bir dizi döndürür. Bu formülü `B1` hücresine ekleyeceğiz. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Köşe durum notu:** `SORT` bir **dizi** sonucu döndürür. Eski Excel sürümlerinde (Office 365 öncesi) bu, Ctrl+Shift+Enter gerektirirdi. Aspose.Cells ile formülü hesapladığınızda dizi otomatik olarak elde edilir. + +## Excel Formüllerini Hesaplayarak Sonuçları Alma + +Bu aşamada çalışma kitabı *ne* hesaplayacağını biliyor, *hesaplaması* gerektiğini ise bilmiyor. `CalculateFormula` çağrısı, motoru her formülü, `SORT` dahil, değerlendirmeye zorlar. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Beklenen konsol çıktısı** + +``` +Sorted array: {2, 5} +``` + +> **Az önce ne oldu?** +> 1. Çalışma kitabı dahili bir hesaplama motoru oluşturdu. +> 2. `SORT` formülü `A1:A2` aralığını inceledi. +> 3. Motor yeni bir dizi üretti ve biz bunu `B1` hücresinden aldık. + +`A1` ve `A2` hücrelerindeki değerleri değiştirir (veya aralığı genişletir) ve `CalculateFormula`’yu yeniden çalıştırırsanız, çıktı otomatik olarak güncellenir—ekstra kod yazmanıza gerek yok. + +## Daha Büyük Veri Kümelerinde Sort Fonksiyonunu Kullanma (İsteğe Bağlı) + +Gerçek dünyadaki çoğu senaryo iki satırdan fazlasını içerir. İşte herhangi bir giriş sayısı için çalışan hızlı bir ayar: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Neden ihtiyacınız olabilir:** Büyük aralıkları sıralamak, lider tabloları oluşturmak, finansal verileri sıralamak veya daha ileri işleme öncesinde içe aktarılan CSV’leri temizlemek için idealdir. + +## Yaygın Tuzaklar & Nasıl Önlenir + +| Sorun | Neden Oluşur | Çözüm | +|-------|--------------|------| +| **B1’de `#VALUE!`** | `SORT` formülü boş veya sayısal olmayan bir aralığa başvuruyor. | Kaynak aralıktaki her hücrenin sayısal veya sıralanabilir metin içerdiğinden emin olun. | +| **Dizi kesilmesi** | Tek bir hücreden dizi okunmaya çalışılıyor ve tip dönüşümü yapılmıyor. | `worksheet.Cells["B1"].Value` değerini `object[]` (veya uygun tip) olarak cast edin. | +| **Performans yavaşlaması** | Her küçük değişiklikte büyük çalışma kitapları yeniden hesaplanıyor. | Sayfayı tamamen değiştirdikten sonra `CalculateFormula` çağırın veya kapsamı sınırlamak için `CalculateFormulaOptions` kullanın. | + +## Tam Çalışan Örnek (Kopyala-Yapıştır Hazır) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Sonuç ekran görüntüsü** +> ![çalışma kitabı sonucunun Excel’de nasıl hesaplandığı](https://example.com/images/sorted-result.png "çalışma kitabı sonucunun Excel’de nasıl hesaplandığı") + +Yukarıdaki resim, hesaplamadan sonra çalışma kitabını gösterir—**B1** hücresi `{2, 5}` sıralı dizisini içerir. + +## Sonuç + +Programatik olarak **çalışma kitabı** değerlerini nasıl hesaplayacağınızı öğrendik: bir Excel çalışma kitabı oluşturma, Excel hücrelerini doldurma, bir `SORT` formülü ekleme ve sonunda **Excel formüllerini** hesaplayarak sıralı veriyi çıkarma. Bu yaklaşım, iki hücrelik basit örneklerden büyük veri kümelerine kadar sorunsuzca ölçeklenir. + +Sırada ne var? `FILTER`, `UNIQUE` gibi diğer fonksiyonlarla veya `WorksheetFunction` aracılığıyla özel VBA‑stil mantıkla birleştirmeyi deneyin. Ayrıca çalışma kitabını diske kaydedebilir (`workbook.Save("Sorted.xlsx")`) ve görsel doğrulama için Excel’de açabilirsiniz. + +Denemeler yapın—sayıları değiştirin, aralığı genişletin veya birden fazla formülü zincirleyin. Otomasyon, hızlı yineleme demektir ve artık üzerine inşa edebileceğiniz sağlam bir temele sahipsiniz. + +İyi kodlamalar, ve çalışma kitaplarınız her zaman beklediğiniz gibi hesaplansı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/conversion-and-rendering/_index.md b/cells/turkish/net/conversion-and-rendering/_index.md index c8bbc9079b..0918888483 100644 --- a/cells/turkish/net/conversion-and-rendering/_index.md +++ b/cells/turkish/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Son olarak, .NET'te Excel'i MHTML'e Dönüştürme kılavuzunu unutamayız. MHTM Bu adım adım kılavuzla Aspose.Cells for .NET kullanarak bir Excel çalışma sayfasını SVG'ye nasıl dönüştüreceğinizi öğrenin. Excel'i SVG'ye dönüştürmek isteyen .NET geliştiricileri için mükemmeldir. ### [Excel'i .NET'te MHTML'e dönüştürme](./converting-excel-to-mhtml/) Aspose.Cells ile Excel dosyalarını .NET'te MHTML formatına etkili bir şekilde nasıl dönüştüreceğinizi öğrenin, raporlama ve veri paylaşım yeteneklerinizi artırın. +### [C#'ta Excel'den Görüntü Oluştur – Pivot'u PNG Olarak Dışa Aktarma](./create-image-from-excel-export-pivot-to-png-in-c/) +Aspose.Cells ile bir pivot tabloyu PNG görüntüsü olarak dışa aktararak C# uygulamanızda görsel raporlar oluşturun. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/turkish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..70586f8be7 --- /dev/null +++ b/cells/turkish/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells kullanarak C#'ta Excel'den resim oluşturun. Excel'i resme + dönüştürmeyi, pivotları dışa aktarmayı ve resmi PNG olarak kaydetmeyi eksiksiz, + çalıştırılabilir bir örnekle öğrenin. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: tr +og_description: C#'ta Excel'den hızlıca resim oluşturun. Bu rehber, Excel'i resme + dönüştürmeyi, pivotu dışa aktarmayı ve resmi net bir kodla PNG olarak kaydetmeyi + gösterir. +og_title: Excel'den Görüntü Oluştur – Pivot'u C#'da PNG Olarak Dışa Aktar +tags: +- C# +- Aspose.Cells +- Excel automation +title: Excel'den Görsel Oluştur – C# ile Pivot'u PNG Olarak Dışa Aktar +url: /tr/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel'den Görüntü Oluştur – Pivot'u PNG Olarak Dışa Aktar (C#) + +## Gereksinimler + +- **Aspose.Cells for .NET** (NuGet paketi `Aspose.Cells`). Ticari bir kütüphane ancak ücretsiz değerlendirme modu sunar—test için mükemmel. +- .NET 6+ (veya .NET Framework 4.6+). +- En az bir pivot tablo içeren basit bir Excel çalışma kitabı (`Pivot.xlsx`). +- İstediğiniz herhangi bir IDE—Visual Studio, Rider ya da hatta VS Code da çalışır. + +Hepsi bu. Ek DLL gerekmez, COM interop yok ve karmaşık Excel‑otomasyon hileleri de yok. + +Şimdi koda dalalım. + +## Adım 1: Çalışma Kitabını Yükle – Excel'den Görüntü Oluştur + +İlk olarak pivot tablosunu içeren Excel dosyasını açıyoruz. Bu adım çok önemlidir çünkü renderlayıcı, bellekteki bir `Workbook` nesnesi üzerinde çalışır. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Neden önemli:* Çalışma kitabını yüklemek, **pivot** ve daha sonra **Excel'i görüntüye dönüştür** işlemi sırasında saygı gösterilecek tüm biçimlendirmelere erişim sağlar. Bunu atlayarsanız renderlayıcının üzerinde çalışacağı bir şey kalmaz. + +## Adım 2: Dışa Aktarma Seçeneklerini Yapılandır – Excel'i Görüntüye Dönüştür + +Şimdi Aspose'a son resmin nasıl görünmesini istediğimizi söylüyoruz. `ImageOrPrintOptions` sınıfı PNG seçmemize, DPI ayarlamamıza ve hatta arka plan rengini kontrol etmemize olanak tanır. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Neden önemli:* Yüksek DPI ayarlayarak **Excel'i PNG olarak dışa aktar** işleminin keskin görünmesini sağlarız, özellikle pivot çok satır içeriyorsa. Dosya boyutu bir endişe ise DPI'yi düşürebilirsiniz. + +## Adım 3: Çalışma Sayfasını Renderla – Pivot'u Nasıl Dışa Aktarız + +Şimdi sürecin kalbi geliyor: çalışma sayfasını (pivot ile birlikte) bir görüntüye dönüştürmek. `WorksheetRender` sınıfı bu ağır işi yapar. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Neden önemli:* İşte **pivot'u nasıl dışa aktar**acağımız yer. Renderlayıcı tüm pivot biçimlendirmelerini, dilimleyicileri ve koşullu stilleri korur, böylece PNG, Excel'de gördüğünüz gibi görünür. + +## Adım 4: Hepsini Bir Araya Getir – Görüntüyü Nasıl Kaydederiz + +Son olarak, tüm parçaları birleştiren tek bir public metot sunuyoruz. Bu, uygulamanızdan, servisinizden ya da konsol aracınızdan çağıracağınız metot olacak. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Tam Çalışan Örnek + +Yeni bir konsol projesi oluşturun, `Aspose.Cells` NuGet paketini ekleyin ve ardından aşağıdaki `Program.cs` dosyasını yerleştirin: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Beklenen sonuç:** Programı çalıştırdıktan sonra, belirttiğiniz klasörde `PivotImage.png` dosyası oluşacak ve pivot tablosunun pikselle tam bir anlık görüntüsünü gösterecek. + +![Create image from Excel example](https://example.com/placeholder.png "Create image from Excel example") + +*Alt metin:* Excel'den görüntü oluşturma örneği, dışa aktarılan pivot tablosunu PNG olarak gösteriyor. + +## Yaygın Sorular & Kenar Durumlar + +### Çalışma kitabımda birden fazla çalışma sayfası varsa ne olur? + +Yardımcı şu anda `Worksheets[0]` öğesini alıyor. Belirli bir sayfayı hedeflemek için sayfa adını geçirin: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG bulanık – nasıl düzeltebilirim? + +`GetImageOptions` içinde `HorizontalResolution` ve `VerticalResolution` değerlerini artırın. 300–600 DPI aralıkları genellikle net sonuçlar verir. Unutmayın, yüksek DPI dosya boyutunu artırır. + +### Pivot birden fazla sayfaya yayılmış — tüm sayfaları dışa aktarabilir miyim? + +Evet. `renderer.PageCount` üzerinden döngü kurarak her sayfa için `ToImage(pageIndex, ...)` çağırın veya `OnePagePerSheet = false` ayarıyla sayfa başına ayrı görüntüler elde edin. + +### Sayfanın sadece belirli bir kısmına (ör. belirli bir aralığa) ihtiyacım var mı? + +`ImageOrPrintOptions` içinde `PrintArea` ayarlayın: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Bu sayede **Excel'i görüntüye dönüştür** sadece ilgilendiğiniz alan için yapılır. + +### .xls (Excel 97‑2003) dosyalarıyla çalışır mı? + +Kesinlikle. Aspose.Cells dosya formatını soyutlar; `.xls`, `.xlsx`, `.xlsm` ya da hatta `.ods` dosyalarını besleyebilir ve yine **excel'i png olarak dışa aktar**abilirsiniz. + +## Pro İpuçları & Dikkat Edilmesi Gerekenler + +- **Lisans önemli:** Değerlendirme modunda Aspose bir filigran ekler. Üretim ortamı için geçerli bir lisans dağıtın. +- **Bellek kullanımı:** Büyük çalışma kitaplarını renderlamak bellek yoğun olabilir. `Workbook` nesnesini hızlıca dispose edin ya da bir `using` bloğu içinde tutun. +- **Thread güvenliği:** `Workbook` thread‑safe değildir. Web servisinde her istek için yeni bir örnek oluşturun. +- **Görüntü formatı esnekliği:** JPEG ya da BMP gerekiyorsa, sadece `GetImageOptions` içindeki `ImageFormat` değerini değiştirin. + +## Sonuç + +Artık **Excel'den görüntü oluştur** için sağlam, uçtan uca bir tarifiniz var; özellikle **pivot** verilerini yüksek kaliteli bir PNG olarak dışa aktarmak için. Yukarıdaki kod parçacığı tam, çalıştırılabilir kodu gösteriyor, **görseli nasıl kaydederiz** açıklıyor ve birden fazla sayfa ya da özel baskı alanları gibi varyasyonları kapsıyor. + +Sonraki adım? Bu dışa aktarıcıyı bir e‑posta servisiyle zincirleyerek PNG'yi otomatik gönderin ya da `ImageOrPrintOptions` ile PDF üretmeyi deneyin. Aynı desen, **excel'i görüntüye dönüştür** görevleri için birçok formatta işe yarar. + +Başka sorularınız mı var? 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/converting-excel-files-to-other-formats/_index.md b/cells/turkish/net/converting-excel-files-to-other-formats/_index.md index 984bc30d8d..6832281444 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 @@ -67,6 +67,9 @@ açıklama: Bu ayrıntılı eğitimde, Aspose.Cells for .NET kullanarak belge d ### [.NET'te TIFF için Belge Dönüştürme İlerlemesinin Programatik Olarak İzlenmesi](./tracking-document-conversion-progress-for-tiff/) Aspose.Cells for .NET'i kullanarak adım adım kılavuzumuzla TIFF dönüştürme ilerlemesini programatik olarak izlemeyi öğrenin. Belge yönetimi becerilerinizi geliştirin. +### [C# ile Excel Dosyasını Docx Olarak Kaydet – Tam Adım Adım Kılavuz](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Aspose.Cells for .NET kullanarak C# ile Excel dosyasını Docx formatına nasıl kaydedeceğinizi adım adım öğrenin. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/turkish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/turkish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..779d7b91aa --- /dev/null +++ b/cells/turkish/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: C#'ta Excel'i Docx olarak kaydedin — Excel'i Word'e dönüştürmeyi, grafik + eklemeyi ve Aspose.Cells kullanarak C# ile Excel çalışma kitabını yüklemeyi öğrenin. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: tr +og_description: C#'ta Excel'i Docx olarak kaydetme, ilk cümlede açıklanmıştır. Excel'i + Word'e dönüştürmek, grafik eklemek ve C#'ta Excel çalışma kitabını yüklemek için + bu öğreticiyi izleyin. +og_title: Excel'i C# ile Docx olarak kaydet – Tam Kılavuz +tags: +- C# +- Aspose.Cells +- Document Conversion +title: C# ile Excel'i Docx olarak kaydet – Tam Adım Adım Rehber +url: /tr/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel'i Docx olarak Kaydet C# – Tam Adım‑Adım Kılavuz + +Hiç **save Excel as Docx** yapmak zorunda kaldınız mı ama nereden başlayacağınızı bilemediniz mi? Tek başınıza değilsiniz—birçok geliştirici, *Excel'i Word'e dönüştürürken* grafiklerin bozulmaması gerektiğinde aynı duvara çarpıyor. Bu öğreticide ihtiyacınız olan tam kodu adım adım inceleyecek, her satırın neden önemli olduğunu açıklayacak ve Excel grafiklerini kalite kaybı olmadan nasıl gömeceğinizi göstereceğiz. + +Ayrıca **load Excel workbook C#** senaryoları için birkaç ekstra ipucu da ekleyeceğiz; böylece .NET projenizde Excel'i Docx'e dönüştürürken kendinizi rahat hissedeceksiniz. Belirsiz referanslar yok, sadece şu anda kopyalayıp‑yapıştırabileceğiniz somut, çalıştırılabilir bir örnek. + +--- + +## Bu Kılavuzda Neler Ele Alınıyor + +- Aspose.Cells (veya uyumlu herhangi bir kütüphane) ile mevcut bir `.xlsx` dosyasını yükleme. +- Dönüştürmeden önce çalışma sayfalarını veya grafikleri isteğe bağlı olarak değiştirme. +- Çalışma kitabını gömülü grafikleri koruyarak bir `.docx` dosyası olarak kaydetme. +- Çıktıyı doğrulama ve büyük çalışma kitapları ya da desteklenmeyen grafik türleri gibi yaygın kenar durumlarını ele alma. + +**Neden Excel'i Docx'e dönüştürmek isteyebileceğinizi** merak ediyorsanız, teknik olmayan paydaşlara göndermeniz gereken raporları düşünün—Word belgeleri evrensel olarak kabul edilir ve grafiklerinizin görsel bütünlüğünü korur. Hadi başlayalım. + +--- + +## Önkoşullar – Load Excel Workbook C# + +Kod yazmaya başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun: + +| Gereksinim | Sebep | +|------------|-------| +| **.NET 6.0 veya üzeri** | Modern çalışma zamanı, daha iyi performans ve Aspose.Cells için tam destek. | +| **Aspose.Cells for .NET** (NuGet paketi `Aspose.Cells`) | Excel'i okuyup DOCX'e dışa aktarmak için kullanılan `Workbook` sınıfını sağlar. | +| **Visual Studio 2022** (veya tercih ettiğiniz herhangi bir IDE) | Hata ayıklama ve IntelliSense için kullanışlı. | +| **Grafik içeren bir Excel dosyası** (`AdvancedCharts.xlsx`) | *embed excel charts* özelliğini aksiyonda görmek için. | + +Kütüphaneyi Paket Yöneticisi Konsolu üzerinden kurabilirsiniz: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro ipucu:** Bir CI/CD boru hattında çalışıyorsanız, paketi `*.csproj` dosyanıza ekleyin; böylece geri yüklemeler otomatik olur. + +--- + +## Adım 1 – Excel Çalışma Kitabını Yükle (Save Excel as Docx Burada Başlar) + +İlk yaptığımız şey kaynak çalışma kitabını yüklemek. İşte **load excel workbook c#** ifadesinin devreye girdiği yer. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Neden önemli:** Dosyayı yüklemek, her çalışma sayfasına, grafiğe ve stile erişmenizi sağlar. Bu adım olmadan dönüştürülecek bir şey yoktur ve API gömülü grafikleri koruyamaz. + +--- + +## Adım 2 – (İsteğe Bağlı) Dönüştürmeden Önce Çalışma Kitabını Düzenle + +Bir sayfanın adını değiştirmek, bir sütunu gizlemek ya da bir grafiğin başlığını değiştirmek isteyebilirsiniz. Bu adım isteğe bağlıdır ancak dönüşümün ne kadar esnek olabileceğini gösterir. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Kenar durumu:** Bazı eski grafik türleri (ör. Radar) Word'de mükemmel render olmayabilir. Dönüştürmeden sonra belirli grafiklerinizi test edin. + +--- + +## Adım 3 – Çalışma Kitabını Word Belgesi Olarak Kaydet (Temel “Save Excel as Docx” İşlemi) + +Şimdi asıl an geliyor: **save Excel as Docx** işlemini gerçekleştiriyoruz. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Bu çalıştırıldığında, Aspose.Cells her çalışma sayfasını Word dosyası içinde bir tablo olarak yazar ve her grafiği yüksek çözünürlüklü bir görüntü olarak gömer. Sonuç, orijinal Excel görünümüne birebir benzeyen tamamen düzenlenebilir bir `.docx` dosyasıdır. + +> **DOCX'i PDF yerine neden seçmelisiniz?** DOCX alıcıların metni düzenlemesine veya grafikleri daha sonra değiştirmesine izin verir; PDF ise statik bir anlık görüntüdür. + +--- + +## Adım 4 – Çıktıyı Doğrula ve Yaygın Sorunları Gider + +Dönüştürme tamamlandıktan sonra `ChartsInWord.docx` dosyasını Microsoft Word'de açın: + +1. **Her çalışma sayfasının ayrı bir bölüm olarak göründüğünden emin olun** – Excel verilerinizi yansıtan tabloları görmelisiniz. +2. **Grafiklerin gömülü olduğunu doğrulayın** – kırık yer tutucular değil, seçilebilir görüntüler olmalı. +3. **Bir grafik eksikse**, grafiğin Aspose.Cells tarafından desteklenip desteklenmediğini kontrol edin ([resmi uyumluluk listesi](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro ipucu:** Büyük çalışma kitapları için `MemorySetting` değerini artırarak `OutOfMemoryException` hatasından kaçının: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Tam Çalışan Örnek (Kopyala‑Yapıştır Hazır) + +Aşağıda, derlenmeye hazır tam program yer alıyor. `YOUR_DIRECTORY` kısmını makinenizdeki gerçek klasör yolu ile değiştirin. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Beklenen sonuç:** Tüm çalışma sayfalarını tablo olarak ve her grafiği gömülü, yüksek çözünürlüklü bir görüntü olarak içeren bir Word belgesi (`ChartsInWord.docx`). Word'de açın; Excel'de gördüğünüz tam görsel düzeni göreceksiniz. + +--- + +## Sık Sorulan Sorular (SSS) + +**S: Birden fazla Excel dosyasını döngü içinde dönüştürebilir miyim?** +C: Kesinlikle. Dönüştürme mantığını `foreach (var file in Directory.GetFiles(...))` döngüsü içinde sarın ve aynı `Workbook` örnekleme desenini yeniden kullanın. + +**S: `.xls` dosyalarıyla da çalışır mı?** +C: Evet—Aspose.Cells eski formatları destekler. Kaynak uzantıyı değiştirin; aynı `SaveFormat.Docx` çağrısı geçerli olur. + +**S: Dönüştürürken formülleri korumam gerekirse ne yapmalıyım?** +C: Word Excel formüllerini yerel olarak desteklemez. Dönüştürme formülleri hesaplanmış değerlerine dönüştürür. Canlı hesaplamalara ihtiyacınız varsa, çalışma kitabını OLE nesnesi olarak gömmeyi düşünün. + +**S: Grafiklerin görüntü çözünürlüğünü kontrol etmenin bir yolu var mı?** +C: Kaydetmeden önce `ImageOrPrintOptions` kullanın: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Excel Grafiklerini Word'e Doğrudan Gömme (Save Excel as Docx’in Ötesinde) + +Grafiğin Word içinde düzenlenebilir kalmasını istiyorsanız, tüm Excel sayfasını bir OLE nesnesi olarak gömebilirsiniz: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Bu teknik, *embed excel charts* özelliğini canlı nesneler olarak sunar; son kullanıcılar Word içinde çift tıklayarak Excel'de doğrudan düzenleyebilir. Etkileşim gerektiğinde kullanışlı bir alternatiftir. + +--- + +## Sonuç + +Artık C# kullanarak **save Excel as docx** için sağlam, uçtan uca bir çözümünüz var. Öğreticide çalışma kitabının yüklenmesi, isteğe bağlı ayarlamalar, gerçek kaydetme işlemi, doğrulama adımları ve düzenlenebilir senaryolar için grafik gömme konularını ele aldık. Yukarıdaki kodu izleyerek **Excel'i Word'e dönüştürebilir**, tüm grafikleri koruyabilir ve büyük dosyalarla sorunsuz çalışabilirsiniz. + +Bir sonraki meydan okumaya hazır mısınız? Toplu dönüştürme otomasyonu, bu mantığı bir ASP.NET Core API'sine entegre etme veya çoklu‑sayfa panolar için **convert Excel to docx** keşfetme… Öğrendiğiniz beceriler, herhangi bir belge‑otomasyon projesi için temel oluşturur. + +Sorularınız veya dönüştürülmesi zor bir çalışma kitabınız varsa yorum bırakın; birlikte sorunları çözebiliriz. Mutlu kodlamalar! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..d2e878c722 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. +### [XLSB Kaydetme – C#'ta Özel Özellik Ekleme](./how-to-save-xlsb-add-custom-property-in-c/) +Aspose.Cells for .NET kullanarak C# ile XLSB dosyasını kaydederken özel bir özellik eklemeyi öğrenin. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/turkish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..2df1837dfb --- /dev/null +++ b/cells/turkish/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: C#'ta xlsb dosyalarını kaydederken ProjectId gibi özel bir özellik eklemeyi + öğrenin. Bu kılavuz, bir Excel çalışma kitabı oluşturmayı, özel özellik eklemeyi + ve doğrulamayı gösterir. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: tr +og_description: C# kullanarak xlsb dosyalarını nasıl kaydedeceğinizi ve ProjectId + gibi özel bir özelliği nasıl ekleyeceğinizi keşfedin. Tam kodlu adım adım rehber. +og_title: XLSB Nasıl Kaydedilir – C#'ta Özel Özellik Ekleme +tags: +- C# +- Aspose.Cells +- Excel automation +title: XLSB Nasıl Kaydedilir – C#'ta Özel Özellik Ekle +url: /tr/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# XLSB Nasıl Kaydedilir – C#'ta Özel Özellik Ekleme + +Hiç **how to save xlsb** dosyalarını kaydederken içine bir meta veri parçası saklamayı düşündünüz mü? Belki gizli bir ProjectId'ye ihtiyaç duyan bir raporlama motoru geliştiriyorsunuz ya da çalışma sayfalarını sonraki işlemler için etiketlemek istiyorsunuz. **how to save xlsb** bir roket bilimi değil, ancak bunu bir özel özellik ile birleştirmek, birçok geliştiricinin gözden kaçırdığı küçük bir dönemeç ekliyor. + +Bu öğreticide bir Excel çalışma kitabı oluşturmayı, bir özel özellik (**add custom property**) eklemeyi, dosyayı **XLSB** ikili çalışma kitabı olarak kalıcı hale getirmeyi ve sonunda özelliğin hâlâ mevcut olduğunu kanıtlamak için tekrar yüklemeyi adım adım göstereceğiz. Yol boyunca **how to add custom property** gibi bir ProjectId değerini nasıl ekleyeceğinize de değineceğiz, böylece gelecekteki projelerinizde yeniden kullanılabilir bir desen elde edeceksiniz. + +> **İpucu:** Zaten Aspose.Cells kütüphanesini (aşağıdaki kod bunu yapıyor) kullanıyorsanız, COM interop baş ağrısı yaşamadan özel özellikler için yerel desteğe sahipsiniz. + +--- + +## Prerequisites + +- .NET 6+ (veya .NET Framework 4.6+). +- Aspose.Cells for .NET – NuGet üzerinden kurun: `Install-Package Aspose.Cells`. +- Temel C# bilgisi – birkaç `using` ifadesi dışında bir şey gerekmez. + +Hepsi bu. Office kurulumu, interop yok, sadece saf yönetilen kod. + +--- + +## Step 1: How to Save XLSB – Create Excel Workbook + +İlk yapmanız gereken, yeni bir çalışma kitabı nesnesi oluşturmaktır. Bunu, sadece bellekte var olan boş bir Excel dosyasını açmak gibi düşünün; diske yazmaya karar verene kadar sadece hafızada kalır. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Neden bir çalışma kitabı ile başlıyoruz? Çünkü **create excel workbook** sonraki tüm işlemlerin temeli – ister formül, ister grafik, ister özel özellik ekleyin – `Workbook` sınıfı tüm dosyayı soyutlarken, `Worksheets` size bireysel sekmelere erişim sağlar. + +--- + +## Step 2: Add Custom Property to Worksheet + +Şimdi eğlenceli kısma geliyoruz—**add custom property**. Aspose.Cells içinde bir özelliği doğrudan bir çalışma sayfasına (veya tüm çalışma kitabına) ekleyebilirsiniz. Burada, görünür hücrelere dokunmadan alt hizmetlerin okuyabileceği sayısal bir ProjectId saklayacağız. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**how to add custom property**? Sadece `CustomProperties.Add(name, value)` çağırın. API, alttaki XML'i otomatik olarak yönetir, bu yüzden düşük seviyeli detaylarla uğraşmanıza gerek kalmaz. Bu, son kullanıcıya görünmeyen meta veriyi gömmenin en güvenli yoludur. + +--- + +## Step 3: Save the Workbook as XLSB + +Çalışma kitabı hazır ve özel özellik eklenmiş olduğuna göre, **how to save xlsb** zamanı geldi. XLSB formatı verileri ikili bir temsilde saklar; bu genellikle klasik XLSX'e göre daha küçük ve daha hızlı açılır. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +XLSB olarak kaydetmek, `Save` metoduna `SaveFormat.Xlsb` geçmek kadar basittir. Özel özelliğin silineceği konusunda endişeniz varsa—merak etmeyin, Aspose.Cells ikili dosyada hem çalışma kitabı‑seviyesindeki hem de çalışma sayfası‑seviyesindeki özellikleri korur. + +--- + +## Step 4: Verify the Custom Property + +İyi bir alışkanlık, dosyayı yeniden yükleyip özelliğin turu‑tur dolaşımda hayatta kalıp kalmadığını doğrulamaktır. Bu aynı zamanda **how to add custom property**'yi daha sonra güncellemeniz gerektiğinde nasıl yapacağınızı gösterir. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Konsol `12345` yazdırıyorsa, **how to save xlsb** *ve* **add project id** işlemlerini tek seferde başarıyla gerçekleştirmişsiniz demektir. Özellik, dosyanın iç meta verileri içinde bulunur, UI'da görünmez ancak kod tarafından sorunsuz okunabilir. + +--- + +## Additional Tips: Adding Multiple Properties & Edge Cases + +### Adding More Than One Property + +İstediğiniz kadar özellik ekleyebilirsiniz: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Updating an Existing Property + +Bir özellik zaten varsa, sadece yeni bir değer atayın: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Handling Missing Properties + +Var olmayan bir özelliği okumaya çalışmak `KeyNotFoundException` fırlatır. Bunun önüne geçin: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Cross‑Version Compatibility + +XLSB, Excel 2007 + ve web sürümü Excel'de çalışır. Ancak, daha eski Office sürümleri (< 2007) XLSB dosyalarını açamaz. Daha geniş uyumluluk gerekiyorsa, ikinci bir kopyayı XLSX olarak kaydetmeyi düşünün. + +### Performance Considerations + +İkili XLSB dosyaları genellikle XLSX'ten %30‑50 daha küçüktür ve daha hızlı yüklenir. Yüz binlerce satır gibi büyük veri setlerinde hız farkı belirgin olabilir. + +--- + +## Full Working Example + +Aşağıda, bir konsol projesine kopyalayıp‑yapıştırabileceğiniz tam program yer alıyor. Tüm adımları, hata yönetimini ve yorumları içerir; böylece anında çalışmaya başlayabilirsiniz. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Expected output** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Yukarıdakini görürseniz, **how to save xlsb**, **add custom property** ve **add project id** konularında uzmanlaşmış oldunuz—hepsi temiz, yeniden kullanılabilir bir snippet içinde. + +--- + +## Frequently Asked Questions + +**S: Bu .NET Core ile çalışır mı?** +C: Kesinlikle. Aspose.Cells .NET Standard‑uyumlu, bu yüzden aynı kod .NET 5/6/7 ve .NET Framework üzerinde sorunsuz çalışır. + +**S: Özelliği tek bir sayfa yerine tüm çalışma kitabına ekleyebilir miyim?** +C: Evet. `workbook.CustomProperties.Add("Key", value);` kullanarak çalışma kitabı seviyesinde ekleyebilirsiniz. + +**S: Büyük bir dizeyi (ör. JSON) özellik olarak saklamam gerekirse?** +C: API, uzunluk sınırlaması olmadan string kabul eder, ancak çok büyük bloklar dosya boyutunu artırabilir. Devasa veriler için gizli bir sayfa kullanmayı düşünün. + +**S: Özel özellik Excel UI'da görülür mü?** +C: Doğrudan görünmez. Kullanıcılar **File → Info → Properties → Advanced Properties → Custom** yoluyla görebilir, ancak ızgarada yer almaz. + +--- + +## Conclusion + +**how to save xlsb** dosyalarını C# ile **add custom property** (ör. ProjectId) ekleyerek nasıl kaydedeceğinizi ele aldık. Adım‑adım deseni—**create excel workbook**, **add custom property**, **save as XLSB**, ve **verify**—takip ederek, arama motorları ve AI asistanları için de referans niteliğinde sağlam bir kaynağa sahip oldunuz. + +Sonraki adımlarınız şunlar olabilir: + +- **how to add custom property**'yi bir döngü içinde birden çok çalışma sayfasına eklemek. +- VeriTablosu'ndan veriyi çalışma kitabına aktarmak ve ardından kaydetmek. +- Ek güvenlik için XLSB dosyasını şifrelemek. + +Denemeler yapmaktan, özellik adlarını değiştirmekten veya daha geniş uyumluluk için ikili formatı XLSX ile değiştirmekten çekinmeyin. Zor bir senaryonuz mu var? Yorum bırakın, birlikte çözümleyelim. Mutlu kodlamalar! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/turkish/net/excel-autofilter-validation/_index.md index 7893a0ca88..34c732ffb2 100644 --- a/cells/turkish/net/excel-autofilter-validation/_index.md +++ b/cells/turkish/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Eğitimimiz [Excel'de Ondalık Veri Doğrulaması](./decimal-data-validation-in- Bu kapsamlı adım adım kılavuzla .NET'te Aspose.Cells kullanarak Excel satırlarını nasıl otomatik filtreleyeceğinizi zahmetsizce öğrenin. ### [Excel'de Ondalık Veri Doğrulaması](./decimal-data-validation-in-excel/) Kolay takip edilebilir kılavuzumuzla Aspose.Cells for .NET kullanarak Excel'de ondalık veri doğrulamasını nasıl uygulayacağınızı keşfedin. Veri bütünlüğünü zahmetsizce geliştirin. +### [Excel'den Otomatik Filtreyi Kaldır – Tam C# Rehberi](./remove-autofilter-from-excel-complete-c-guide/) +Aspose.Cells for .NET kullanarak Excel dosyalarından otomatik filtreyi nasıl kaldıracağınızı adım adım öğrenin. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/turkish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..877065faac --- /dev/null +++ b/cells/turkish/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: C# kullanarak Excel'den AutoFilter'ı nasıl kaldıracağınızı öğrenin. Bu + adım adım kılavuz, AutoFilter'ı nasıl sileceğinizi, Excel'de AutoFilter'ı nasıl + kapatacağınızı ve Excel tablo filtresini nasıl temizleyeceğinizi de gösterir. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: tr +og_description: C# ile Excel'den AutoFilter'ı kaldırın. Bu öğreticide, AutoFilter'ı + silme, Excel'de AutoFilter'ı kapatma ve sadece birkaç satır kodla Excel tablo filtresini + temizleme yöntemleri gösterilmektedir. +og_title: Excel'den Otomatik Filtreyi Kaldır – Tam C# Rehberi +tags: +- C# +- Aspose.Cells +- Excel automation +title: Excel'den Otomatik Filtreyi Kaldır – Tam C# Rehberi +url: /tr/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel'den AutoFilter'ı Kaldırma – Tam C# Kılavuzu + +Hiç **Excel'den AutoFilter'ı kaldırmanız** gerekti ama hangi API çağrısının gerçekten devre dışı bıraktığını bilmiyor muydunuz? Tek başınıza değilsiniz. Birçok raporlama hattında filtre arayüzü, sonraki işlemlerin önüne geçiyor, bu yüzden temiz bir başlangıç yapmak yaygın bir gereksinim. Bu öğreticide, **AutoFilter'ı nasıl silinir** sorusunun cevabını gösteren, üretim‑hazır bir çözümü adım adım inceleyecek ve **turn off AutoFilter Excel** tarzı filtreleri nasıl kapatacağınızı ve **clear Excel table filter** işlemini tamamen nasıl yapacağınızı açıklayacağız. + +> **Edinecekleriniz:** Mevcut bir çalışma kitabını yükleyen, ilk tablodan filtreyi kaldıran ve hiçbir kalıntı UI öğesi kalmayan yeni bir kopya kaydeden, çalıştırmaya hazır bir C# programı. + +## Önkoşullar + +- .NET 6+ (veya .NET Framework 4.7.2+) +- **Aspose.Cells** NuGet paketi (kodda kullandığımız API) +- AutoFilter uygulanmış bir tablo içeren örnek çalışma kitabı (`TableWithFilter.xlsx`) +- C# sözdizimi hakkında temel bilgi (Excel iç detaylarına derinlemesine girmenize gerek yok) + +Bu koşullara sahipseniz, başlayalım. + +--- + +## Adım 1 – Aspose.Cells'i Yükleyin ve Projeyi Hazırlayın + +Kod çalıştırılmadan önce `Workbook`, `Worksheet` ve `ListObject` sınıflarını sağlayan kütüphaneye ihtiyacınız var. + +```bash +dotnet add package Aspose.Cells +``` + +> **İpucu:** Test amaçlı ücretsiz değerlendirme sürümünü kullanın; sadece üretime geçmeden önce lisans anahtarını ayarlamayı unutmayın. + +### Neden Önemli +Aspose.Cells, düşük seviyeli OOXML işlemlerini soyutlayarak tabloları, filtreleri ve stilleri XML'i kendimiz ayrıştırmadan manipüle etmemizi sağlıyor. Bu yüzden **remove autofilter from excel** görevleri bir satır kodla halledilebiliyor, XML uğraşına gerek kalmıyor. + +--- + +## Adım 2 – Tabloyu İçeren Çalışma Kitabını Yükleyin + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +`Workbook` nesnesi tüm Excel dosyasını temsil eder. İlk önce onu yüklemek, daha sonra **clear excel table filter** işlemini diğer sayfalara etki etmeden yapabilmek için temiz bir bellek kopyasına sahip olduğunuzdan emin olmanızı sağlar. + +--- + +## Adım 3 – Çalışma Sayfasını ve Hedef Tabloyu Alın + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +**ListObject**, Aspose'in Excel tablosu için kullandığı terimdir. Sayfanızda birden fazla tablo varsa, `worksheet.ListObjects` üzerinden döngü kurarak aynı mantığı her tabloya uygulayabilirsiniz. Bu esneklik, birçok geliştiricinin “birden fazla tablom olsaydı ne olur?” sorusuna yanıt verir. + +--- + +## Adım 4 – Tablodaki AutoFilter'ı Kaldırın + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +`AutoFilter` özelliğini `null` olarak ayarlamak **filtre nesnesini tamamen kaldırır**, bu da **how to delete autofilter** işleminin en güvenilir yoludur. Alternatif olarak `ShowAutoFilter` yalnızca UI’yı gizler, filtre motorunu hâlâ aktif tutar—bu, sadece **turn off autofilter excel** görsel olarak istiyor, ancak alt kriterleri korumak isteyenler için faydalıdır. + +> **Köşe Durumu:** Tabloda AutoFilter uygulanmamışsa, `table.AutoFilter` zaten `null` olur. Yukarıdaki satır güvenlidir; hiçbir şey yapmaz. + +--- + +## Adım 5 – Değiştirilmiş Çalışma Kitabını Kaydedin + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Yeni bir dosyaya kaydetmek, orijinali bozulmadan tutar—Excel dönüşümlerini otomatikleştirirken en iyi uygulamadır. Programı çalıştırdıktan sonra `NoAutoFilter.xlsx` dosyasını açın; tablonun filtre açılır menülerinden yoksun olduğunu göreceksiniz ve **remove excel table filter** işleminin başarılı olduğunu doğrulayacaksınız. + +--- + +## Sonucu Doğrulama – Beklenenler + +1. **`NoAutoFilter.xlsx` dosyasını** Excel’de açın. +2. **Tabloyu seçin** – sütun başlıklarının yanındaki küçük huni simgeleri artık görünmemeli. +3. **Diğer sayfaları kontrol edin** – dokunulmamış olmalı, bu da sadece istenen sayfada **clear excel table filter** yaptığımızı kanıtlar. + +Eğer simgeler hâlâ görünüyorsa, doğru `ListObject` indeksini hedeflediğinizden emin olun. Aspose'te Excel tabloları sıfır‑tabanlıdır, yani `ListObjects[0]` sayfadaki ilk tablodur. + +--- + +## Birden Fazla Tablo veya Çalışma Sayfası İşleme + +Bazen **remove autofilter from excel** işlemini birden çok tablo ve farklı sayfalara sahip çalışma kitaplarında yapmanız gerekir. İşte hızlı bir genişletme: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Bu döngü, **turn off autofilter excel** işlemini her yerde garanti eder ve sonraki veri içe aktarmalarını engelleyebilecek gizli filtreleri ortadan kaldırır. + +--- + +## Yaygın Tuzaklar ve Çözümleri + +| Tuzak | Neden Oluşur | Çözüm | +|-------|--------------|------| +| **Filtre kaydedildikten sonra kalıyor** | `ShowAutoFilter = false` sadece UI’yı gizler. | Gerçekten silmek için `table.AutoFilter = null` kullanın. | +| **Yanlış tablo indeksi** | İlk tablonun ihtiyacınız olan tablo olduğunu varsaymak. | `worksheet.ListObjects.Count` değerini inceleyin ve anlamlı isimler (`tbl.Name`) kullanın. | +| **Lisans eksik** | Değerlendirme sürümü filigran ekleyebilir. | Lisansınızı erken kaydedin: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Dosya kilitli** | Excel hâlâ kaynak dosyayı açık tutuyor. | Betiği çalıştırmadan önce Excel’de dosyanın kapalı olduğundan emin olun. | + +--- + +## Bonus: AutoFilter'ı Geri Eklemek (Fikriniz Değişirse) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Ters işlemi de elinizde bulundurmak, öğreticiyi **remove autofilter from excel** ve **how to delete autofilter** senaryoları için tek durak haline getirir. + +--- + +## Tam Çalışan Örnek (Kopyala‑Yapıştır Hazır) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Yukarıdaki kodu çalıştırdığınızda, çalışma kitabındaki her tablo için **remove autofilter from excel** yapılır ve sonraki işlemler için temiz bir ortam elde edersiniz. + +--- + +## Sonuç + +C# kullanarak **remove autofilter from excel** işlemini nasıl yapacağınızı tüm adımlarla ele aldık. Aspose.Cells'i kurmaktan, çalışma kitabını yüklemeye, tabloyu bulmaya, filtreyi gerçekten silmeye ve temiz dosyayı kaydetmeye kadar her adımın “neden”ini açıkladık. Artık **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel** ve **clear excel table filter** işlemlerini tek bir yeniden kullanılabilir kod parçacığıyla yapabiliyorsunuz. + +Bir sonraki meydan okumaya hazır mısınız? Koşullu biçimlendirme eklemeyi otomatikleştirmeyi deneyin ya da programatik olarak **add an AutoFilter back** konusunu keşfedin. Her iki konu da az önce ele aldığımız kavramların üzerine inşa edilir ve Excel otomasyon aracınızı daha da zenginleştirir. + +Sorularınız mı var, yoksa kapsamadığımız bir senaryo mı var? Aşağıya yorum bırakın—mutlu kodlamalar! + +--- + +![Excel sayfasında filtre açılır menüsü olmadan bir ekran görüntüsü – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/turkish/net/excel-comment-annotation/_index.md index 83756725df..1e86e6fff2 100644 --- a/cells/turkish/net/excel-comment-annotation/_index.md +++ b/cells/turkish/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Aspose.Cells for .NET kullanarak Excel'de resimlerle yorum eklemeyi öğrenin. K Aspose.Cells for .NET kullanarak Excel'deki hücrelere yorum eklemeyi öğrenin. Excel işlevselliğini geliştirmek için yeni başlayanlar için adım adım kılavuz. ### [Biçim Yorumları - Yazı Tipi, Renk, Hizalama](./format-comments-font-color-alignment/) Aspose.Cells for .NET kullanarak Excel yorumlarını zahmetsizce nasıl biçimlendireceğinizi keşfedin. E-tablolarınızı geliştirmek için yazı tipini, boyutunu ve hizalamayı özelleştirin. +### [Excel Çalışma Kitabı Oluştur C# – Akıllı İşaretçilerle Yorum Ekle ve Doldur](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Aspose.Cells for .NET kullanarak C# ile Excel çalışma kitabı oluşturun, akıllı işaretçilerle yorum ekleyin ve doldurun. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/turkish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..bbed251fa1 --- /dev/null +++ b/cells/turkish/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,247 @@ +--- +category: general +date: 2026-03-21 +description: C# ile Excel çalışma kitabı oluşturun ve Excel’e yorum eklemeyi, Smart + Markers kullanarak yorumu otomatik olarak doldurmayı öğrenin. Geliştiriciler için + adım adım rehber. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: tr +og_description: C# ile Excel çalışma kitabı oluşturun ve Excel'e hızlıca yorum ekleyin, + ardından Smart Markers kullanarak yorumu doldurun. Kodlu tam bir öğretici. +og_title: Excel Çalışma Kitabı Oluşturma C# – Yorumları Ekle ve Doldur +tags: +- C# +- Excel automation +- Aspose.Cells +title: Excel Çalışma Kitabı Oluşturma C# – Akıllı İşaretçilerle Yorumları Ekle ve + Doldur +url: /tr/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel Çalışma Kitabı Oluştur C# – Akıllı İşaretçilerle Yorum Ekle ve Doldur + +Hiç **create Excel workbook C#** yapmanız gerekti ve otomatik olarak kendini güncelleyen bir yorum eklemenin nasıl olduğunu merak ettiniz mi? Tek başınıza değilsiniz. Birçok raporlama senaryosunda, adı ve tarihi her seferinde sabit kodlamadan *“Created by Alice on 2024‑07‑15”* şeklinde bir hücre yorumu istiyorsunuz. + +Bu öğreticide size tam olarak **how to add comment to Excel** ve ardından Aspose.Cells’in Smart Markers'ını kullanarak **how to fill comment** nasıl yapılacağını göstereceğiz. Sonunda, bir çalışma kitabı oluşturan, dinamik bir yorum ekleyen ve dosyayı kaydeden, birkaç düzenli adımda çalıştırılabilir bir programınız olacak. + +> **Ne elde edeceksiniz:** tam, derlenebilir bir C# konsol uygulaması, her satırın açıklaması, yaygın hatalar için ipuçları ve çözümü genişletme fikirleri. + +## Önkoşullar + +- .NET 6.0 SDK veya daha yeni bir sürüm (kod .NET Core ve .NET Framework ile de çalışır) +- Visual Studio 2022 veya tercih ettiğiniz herhangi bir IDE +- **Aspose.Cells for .NET** NuGet paketi (`Install-Package Aspose.Cells`) – bu kütüphane aşağıda kullanılan `Workbook`, `Worksheet` ve `SmartMarkerProcessor` sınıflarını sağlar. +- C# sözdizimi hakkında temel bir aşinalık – bir `Console.WriteLine` yazdıysanız, hazırsınız. + +Artık temel hazırlıklar tamamlandığına göre, başlayalım. + +![Excel çalışma kitabı C# örnek ekran görüntüsü](excel-workbook.png "Excel çalışma kitabı C# örnek") + +## Adım 1: Yeni Bir Çalışma Kitabı Başlat – Excel Çalışma Kitabı Oluştur C# Temelleri + +İlk olarak temiz bir çalışma kitabı nesnesine ihtiyacımız var. `Workbook`'u boş bir tuval olarak düşünün; onsuz hücre, satır veya yorum ekleyemezsiniz. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Neden önemli:** `Workbook` otomatik olarak varsayılan bir çalışma sayfası oluşturur, bu yüzden ekstra sekmelere ihtiyacınız olmadıkça `Add` çağırmanıza gerek yoktur. `Worksheets[0]`'a erişmek, veri doldurmaya başlamak için en hızlı yoldur. + +## Adım 2: Akıllı İşaretçi Yorumu Ekle – Token'larla Yorum Nasıl Eklenir + +Sonra **B2** hücresine Smart Marker token'ları (`«UserName»` ve `«CreatedDate»`) içeren bir yorum ekliyoruz. Bu token'lar daha sonra gerçek değerlerle değiştirilecektir. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Açıklama:** +- `CreateComment()` yorum nesnesi yoksa oluşturur; aksi takdirde mevcut olanı döndürür. +- `Note` özelliği görünen metni tutar. Yer tutucuları `« »` içinde sararak Aspose.Cells'e bunların **Smart Markers** olduğunu söyleriz – bir seferde değiştirilebilen yer tutucular. + +> **Pro ipucu:** Çok satırlı bir yorum gerekiyorsa, dize içinde `\n` kullanın, örneğin, `"Line1\nLine2"`. + +## Adım 3: Veri Nesnesini Hazırla – Yorumu Dinamik Olarak Doldur + +Smart Markers bir veri kaynağına ihtiyaç duyar. C#'ta en kolay yol, yer tutucu adlarıyla eşleşen anonim bir tiptir. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Neden anonim tip?** +Hafiftir, ekstra bir sınıf dosyasına gerek yoktur ve özellik adlarını (`UserName`, `CreatedDate`) token adlarıyla tam olarak eşleştirir. Daha güçlü tipli bir model tercih ederseniz, aynı özelliklere sahip bir sınıf oluşturmanız yeterlidir. + +## Adım 4: Smart Marker'ları İşle – Veri Nesnesini Kullanarak Yorumu Doldur + +Şimdi sihir gerçekleşir. `SmartMarkerProcessor`, çalışma kitabını herhangi bir `«…»` token'ı için tarar ve bunları `markerData`'dan gelen değerlerle değiştirir. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Nasıl çalışıyor?** +`SmartMarkerProcessor`, her hücre, yorum, başlık vb. üzerinden `«Token»` desenini arar. Birini bulduğunda, yansıtma (reflection) kullanarak `markerData`'dan eşleşen özelliği okur ve değeri yazar. Elle döngü yazmaya gerek yok. + +## Adım 5: Çalışma Kitabını Kaydet – Excel Yorumunu Doldur ve Dosyayı Sakla + +Son olarak çalışma kitabını diske yazıyoruz. Yorum artık *“Created by Alice on 03/21/2026 10:15 AM”* gibi bir şey gösteriyor. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Sonuç doğrulama:** Excel'de `CommentFilled.xlsx` dosyasını açın, **B2** hücresinin üzerine gelin ve gerçek kullanıcı adı ve zaman damgası ile yorumun göründüğünü göreceksiniz. Gelecek çalıştırmalar için başka kod değişikliğine gerek yok—sadece `markerData` değerlerini değiştirin. + +--- + +## Yaygın Varyasyonlar ve Kenar Durumları + +### Özel Tarih Formatı Kullanma + +Tarihi `yyyy‑MM‑dd` formatında istiyorsanız, veri nesnesini şu şekilde ayarlayın: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Birden Çok Yorum Ekleme + +**Adım 2**'yi diğer hücreler için tekrarlayabilirsiniz. Her yorum kendi token setine sahip olabilir veya bilgi evrenselse aynı token'ları paylaşabilir. + +### Mevcut Çalışma Kitaplarıyla Çalışma + +`new Workbook()` yerine mevcut bir dosya yükleyin: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Adımların geri kalanı aynı kalır—Smart Markers yeni ve önceden var olan dosyalarda da çalışır. + +### Null Değerleri İşleme + +Bir token eksik olabilecekse, özelliği nullable bir tip içinde sarın veya bir yedek değer sağlayın: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +İşlemci, kaynak `null` olduğunda *“Unknown”* ekleyecektir. + +--- + +## Tam Çalışan Örnek (Kopyala‑Yapıştır Hazır) + +Aşağıda, bir konsol uygulaması projesine ekleyip hemen çalıştırabileceğiniz **tam program** bulunmaktadır (sadece `YOUR_DIRECTORY`'yi gerçek bir klasör yolu ile değiştirin). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Programı çalıştırın, oluşturulan dosyayı açın ve **B2** hücresinde dinamik yorumu göreceksiniz. Kolay, değil mi? + +--- + +## Sık Sorulan Sorular (SSS) + +**S: Bu .NET Framework 4.7 ile çalışır mı?** +C: Kesinlikle. Aspose.Cells .NET Framework 4.0+ ve .NET Core/5/6/7'yi destekler. Yalnızca uygun DLL veya NuGet paketini referans gösterin. + +**S: Bu yaklaşımı veri doğrulama veya koşullu biçimlendirme için kullanabilir miyim?** +C: Smart Markers temel olarak hücrelere, yorumlara, başlıklara ve altlıklara değer eklemek için kullanılır. Koşullu biçimlendirme için hâlâ normal `Style` API'lerini kullanmanız gerekir. + +**S: Farklı bir çalışma sayfasına yorum eklemem gerekirse ne yapmalıyım?** +C: Hedef çalışma sayfasını alın (`workbook.Worksheets["MySheet"]`) ve o sayfanın hücrelerinde **Adım 2**'yi tekrarlayın. + +## Sonraki Adımlar ve İlgili Konular + +- **How to add comment to Excel** programmatically for multiple cells (range üzerinden döngü). +- **Fill Excel comment** with data from a database (Smart Markers için veri kaynağı olarak bir `DataTable` kullanarak). +- Tablo oluşturmak için **Smart Marker arrays** keşfedin. +- **Aspose.Cells styling** hakkında öğrenin ve yorumun yazı tipini, rengini ve boyutunu biçimlendirin. + +Kod parçacıklarıyla denemeler yapın, veri kaynağını değiştirin ve herhangi bir Excel otomasyon senaryosunda **how to fill comment**'ı çabucak ustalaşacaksınız. + +### Özet + +**create excel workbook c#**, **add comment to excel**, ve **fill excel comment** işlemlerini Smart Markers kullanarak tüm süreci adım adım gösterdik. Çözüm kompakt, yeniden kullanılabilir ve üretime hazır. + +Deneyin, yer tutucuları değiştirin ve kütüphanenin zor işleri halletmesine izin verin. Herhangi bir sorunla karşılaşırsanız, aşağıya 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/_index.md b/cells/turkish/net/excel-custom-number-date-formatting/_index.md index 8bca470e49..bdfba940f2 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,8 @@ 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#'ta Hücre Özel Biçimini Ayarlama – Excel'de Tarih Yazma ve Okuma İçin Tam Kılavuz](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Bu kapsamlı rehberde, C# ile Aspose.Cells kullanarak Excel hücrelerine özel tarih biçimi uygulamayı ve tarihleri okuma‑yazma işlemlerini öğrenin. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/turkish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..e96f33d012 --- /dev/null +++ b/cells/turkish/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-03-21 +description: C#'ta hücreye özel biçim ayarlayın ve Excel'e tarih yazmayı, özel tarih + biçimi uygulamayı, Excel'den DateTime okumayı ve çalışma kitabı sayfasını hızlıca + oluşturmayı öğrenin. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: tr +og_description: C#'ta hücreye özel format ayarlayarak tarihi Excel'e yazın, özel tarih + formatı uygulayın, Excel'den DateTime okuyun ve kolayca bir çalışma kitabı sayfası + oluşturun. +og_title: C#'ta Hücre Özel Biçimini Ayarla – Excel'de Tarihleri Yaz ve Oku +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#'ta Hücre Özel Biçimini Ayarlama – Excel'de Tarih Yazma ve Okuma İçin Tam + Kılavuz +url: /tr/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hücre Özel Biçimini Ayarlama – C# Kullanarak Excel'de Tarih Yazma ve Okuma + +## Neler Öğreneceksiniz + +- Programlı olarak **workbook worksheet** oluşturmayı. +- Yerel‑spesifik bir dize kullanarak **write date to Excel** için kesin adımları. +- **apply custom date format**'i (Japon dönemi gösterimi dahil) nasıl uygulayacağınızı. +- **read DateTime from Excel**'i bir `DateTime` nesnesine geri okuma yolunu. +- Excel tarihleriyle çalışırken karşılaşabileceğiniz ipuçları, tuzaklar ve varyasyonlar. + +Harici bir dokümantasyona gerek yok—gereken her şey burada. + +## Önkoşullar + +- .NET 6.0 veya daha yenisi (kod .NET Framework 4.7+ üzerinde de çalışır). +- NuGet üzerinden (`Install-Package Aspose.Cells`) Aspose.Cells for .NET yüklü. +- C# sözdizimi hakkında temel bir anlayış—fantezi bir şey yok. + +> **Pro ipucu:** Visual Studio kullanıyorsanız, *nullable reference types*'ı etkinleştirerek ince hataları erken yakalayabilirsiniz. + +## Adım 1: Bir Workbook ve Worksheet Oluşturma + +İlk olarak, Excel dosyasını temsil eden bir workbook nesnesine ve verilerin bulunacağı bir worksheet'e ihtiyacınız var. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Neden önemli?*: `Workbook` sınıfı tüm Excel işlemlerinin giriş noktasıdır. Bellekte oluşturulması, açıkça kaydedene kadar dosya sistemine dokunmadığınız anlamına gelir; bu da süreci hızlı ve test‑dostu tutar. + +## Adım 2: Excel'e Tarih Yazma + +Sonra, Japon dönemi tarih dizesini (`"R02-04-01"`) **A1** hücresine yerleştireceğiz. Dize, Reiwa dönemini (yıl 2, Nisan 1) taklit eder. + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Ne oluyor?*: `PutValue` ham dizeyi depolar. Aspose.Cells daha sonra hücrenin stiline göre ayrıştırmaya çalışır. Bu adımı atlayıp doğrudan bir `DateTime` yazarsanız, göstermek istediğiniz dönem bilgisini kaybedersiniz. + +## Adım 3: Yerleşik Tarih Sayı Biçimini Uygulama (ID 14) + +Excel, ID 14 (`mm-dd-yy`) ile yerleşik bir tarih biçimine sahiptir. Bunu uygulamak, motoru hücrenin **tarih içerdiğini**, sadece metin olmadığını söyler. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Neden ID 14 kullanılır?*: Bu, Excel'in içeriği tarih değeri olarak işlemesini sağlayan evrensel “kısa tarih” biçimidir; bu da herhangi bir özel biçimin doğru çalışması için ön koşuldur. + +## Adım 4: Japon Dönemi Gösterimi İçin Özel Bir Biçim Ayarlama + +Şimdi eğlenceli kısım: Excel'e tarihi Japon dönemi biçimiyle göstermesini söylüyoruz. Özel dize `[$-ja-JP]ggge年m月d日` tam olarak bunu yapar. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Açıklama:* +- `[$-ja-JP]` yerel ayarı Japonca olarak zorlar. +- `ggg` dönem adıdır (ör. Reiwa için “R”). +- `e` dönem yılını gösterir. +- `年`, `月`, `日` sırasıyla yıl, ay, gün için Japonca karakterlerdir. + +Farklı bir yerel ayara ihtiyacınız varsa, `ja-JP`'yi uygun kültür kodu ile değiştirin (ör. `en-US`). + +## Adım 5: Ayrıştırılmış DateTime Değerini Almak + +Son olarak, hücreden Excel'in ayrıştırdığı **gerçek `DateTime`** değerini okuyalım. Bu, dizenin doğru yorumlandığını kanıtlar. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Sonuç:* Konsol `Parsed DateTime: 2020-04-01` yazdırır. Japon dönemi dizesi girmiş olsak da, Excel içsel olarak Gregoryen tarihini saklar; bu tarihi hesaplamalar, karşılaştırmalar veya daha fazla dışa aktarma için kullanabilirsiniz. + +## Adım 6: Workbook'u Kaydetme (İsteğe Bağlı) + +Biçimlendirilmiş workbook'u Excel'de görmek istiyorsanız, sadece diske kaydedin. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Oluşturulan **JapaneseEraDate.xlsx** dosyasını açın ve **A1** hücresinin `R02年4月1日` (ayarladığımız tam Japon dönemi biçimi) gösterdiğini göreceksiniz. + +![hücre özel biçim ayarlama örneği](image-placeholder.png "Japon dönemi tarihini gösteren Excel hücresi – hücre özel biçim ayarlama") + +*Yukarıdaki alt metin birincil anahtar kelimeyi içerir, görüntü‑SEO gereksinimini karşılar.* + +## Ortak Varyasyonlar ve Kenar Durumları + +### Farklı Bir Tarih Biçimi Yazma + +Eğer bir dönem dizesi yerine ISO‑8601 (`2020-04-01`) tercih ediyorsanız, sadece `PutValue` çağrısını değiştirin: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Null veya Boş Hücrelerle Başa Çıkma + +Bir tarihi okurken, `InvalidOperationException` hatasından kaçınmak için her zaman boş hücrelere karşı koruma ekleyin: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Birden Çok Yerel Ayarı Destekleme + +Kültür kodları listesini döngüye alarak dinamik olarak uygulayabilirsiniz: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Pro İpuçları ve Dikkat Edilmesi Gerekenler + +- **Her zaman önce yerleşik bir sayı biçimi ayarlayın** (`Style.Number`). Olmazsa, Excel hücreyi düz metin olarak kabul eder ve özel biçim yok sayılır. +- **Yerel kodları büyük/küçük harfe duyarsızdır**, ancak kanonik biçimi (`ja-JP`) kullanmak karışıklığı önler. +- **Kaydetme isteğe bağlıdır** bellek içi işlem için; workbook'u doğrudan bir web yanıtına akıtabilirsiniz (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Aspose.Cells lisansları**: Ücretsiz deneme sürümü bir filigran ekler. Üretim ortamında, performans kaybını önlemek için geçerli bir lisansa sahip olduğunuzdan emin olun. + +## Özet + +C#'ta **set cell custom format**'ı kullanarak Japon dönemi tarihlerini nasıl göstereceğinizi, **write date to Excel**, **apply custom date format**, **read DateTime from Excel** ve **create workbook worksheet**'i nasıl yapacağınızı gösterdik—hepsi tek, bağımsız bir programda. Birincil anahtar kelime doğal olarak metin içinde yer alırken, ikincil anahtar kelimeler başlıklara ve metin gövdesine işlenmiştir; bu da SEO ve AI‑atıf standartlarını karşılar. + +## Sıradaki Adımlar? + +- Gecikmiş tarihleri vurgulamak için **conditional formatting**'i keşfedin. +- Dinamik raporlama için bu yaklaşımı **PivotTables** ile birleştirin. +- Aynı tarih işleme mantığıyla **large CSV files**'ı okuyup Excel'e dönüştürmeyi deneyin. + +Farklı yerel ayarlarla, özel desenlerle ya da zaman dilimleriyle denemeler yapmaktan çekinmeyin. Herhangi bir sorunla karşılaşırsanız, aşağıya 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-data-export-retrieval/_index.md b/cells/turkish/net/excel-data-export-retrieval/_index.md index d27c32149c..a082b21eaa 100644 --- a/cells/turkish/net/excel-data-export-retrieval/_index.md +++ b/cells/turkish/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Bunu nasıl yapacağınızı bilmek ister misiniz? Bu kullanışlı kılavuza g ### [Excel'deki Hücrelerden Veri Alma](./retrieve-data-from-cells-in-excel/) Bu adım adım eğitimde, Aspose.Cells for .NET kullanarak Excel hücrelerinden veri almayı öğrenin. Bu eğitim, hem yeni başlayanlar hem de deneyimli geliştiriciler için mükemmeldir. +### [C# ile Excel Veri Tablosu Dışa Aktarma – Tam Rehber](./export-excel-data-table-in-c-complete-guide/) +Bu kapsamlı rehberde, C# kullanarak Aspose.Cells ile Excel veri tablolarını nasıl dışa aktaracağınızı adım adım öğrenin. + +### [C# ile Excel Verilerini Dışa Aktarma – Adım Adım Rehber](./how-to-export-excel-data-in-c-step-by-step-guide/) +Bu adım adım rehberde, C# ve Aspose.Cells kullanarak Excel verilerini nasıl dışa aktaracağınızı öğrenin. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/turkish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/turkish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..b1b7180cfb --- /dev/null +++ b/cells/turkish/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Excel veri tablosunu başlıklarla bir DataTable'a aktar, ondalık basamaklarını + sınırlı tut ve Aspose.Cells kullanarak ilk 100 satırı dışa aktar. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: tr +og_description: Excel veri tablosunu bir DataTable'a nasıl aktaracağınızı, başlıkları + korumayı, ondalık basamakları sınırlamayı ve C#'ta ilk 100 satırı almayı öğrenin. +og_title: C#'ta Excel Veri Tablosunu Dışa Aktarma – Adım Adım Rehber +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: C#'ta Excel Veri Tablosunu Dışa Aktarma – Tam Kılavuz +url: /tr/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel Veri Tablosunu Dışa Aktarma – Tam C# Kılavuzu + +Bir çalışma kitabından .NET `DataTable`'a **excel veri tablosunu dışa aktar** mı istiyorsunuz? Doğru yerdesiniz—bu kılavuz tam olarak nasıl yapılacağını, sütun başlıklarını korumayı, ondalık basamakları sınırlamayı ve yalnızca ilk 100 satırı çekmeyi gösteriyor. + +Eğer bir zamanlar bir elektronik tabloya bakıp “Bunu uygulamama format kaybı olmadan nasıl alabilirim?” diye düşündüyseniz, yalnız değilsiniz. Önümüzdeki birkaç dakikada bu “ne olurdu” sorusunu Aspose.Cells ile çalışan somut, kopyala‑yapıştır çözümüne dönüştüreceğiz; Aspose.Cells, Excel manipülasyonu için popüler bir kütüphanedir. + +## Öğrenecekleriniz + +- `ExportDataTable` metodunu kullanarak **excel'i DataTable'a dışa aktar** nasıl yapılır. +- Orijinal sütun adlarını (`export excel with headers`) koruma. +- `ExportTableOptions` yapılandırmasıyla **excel'de ondalık basamakları sınırlama** nasıl yapılır. +- Yalnızca ilk 100 satırı (`export first 100 rows`) güvenli bir şekilde alma. + +Harici betikler, sihirli dizgeler yok—herhangi bir .NET projesine ekleyebileceğiniz sade C# kodu. + +## Önkoşullar + +| Gereksinim | Neden Önemli | +|-------------|----------------| +| .NET 6 veya üzeri (veya .NET Framework 4.7+) | Aspose.Cells her ikisini de destekler, ancak daha yeni çalışma zamanları async‑hazır API'ler sunar. | +| Aspose.Cells for .NET NuGet paketi | `Workbook`, `ExportTableOptions` ve `ExportDataTable` yardımcı aracını sağlar. | +| Örnek bir Excel dosyası (ör. `Numbers.xlsx`) | Dışa aktaracağınız verinin kaynağı. | +| Temel C# bilgisi | Kod parçacıklarıyla ilerleyeceksiniz, ama karmaşık bir şey gerekmiyor. | + +Eğer bunlardan biri size yabancı geliyorsa, `dotnet add package Aspose.Cells` komutuyla NuGet paketini alın ve birkaç sayı içeren küçük bir Excel dosyası oluşturun—test veriniz olsun. + +![excel veri tablosu dışa aktarım örneği](excel-data-table.png "DataTable'a dışa aktarılacak bir Excel sayfasının ekran görüntüsü") + +## Adım 1: Çalışma Kitabını Yükle (excel veri tablosunu dışa aktar) + +İlk olarak, Excel dosyanıza işaret eden bir `Workbook` örneğine ihtiyacınız var. Bunu, bir kitabın bölümlerini okuyabilmek için önce kitabı açmak gibi düşünün. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Neden Önemli:** Çalışma kitabını yüklemek, çalışma sayfalarına, hücrelere ve stillere erişim sağlar. Dosya yolu yanlışsa, Aspose bir `FileNotFoundException` fırlatır, bu yüzden konumu iki kez kontrol edin. + +## Adım 2: Dışa Aktarım Seçeneklerini Yapılandır – excel'de ondalık basamakları sınırlama + +Varsayılan olarak Aspose, her sayısal değeri tam hassasiyetle dışa aktarır. Çoğu zaman, özellikle veriyi bir UI ızgarasına ya da yuvarlanmış sayılar bekleyen bir API'ye beslerken, sadece birkaç anlamlı basamağa ihtiyacınız olur. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Pro tip:** Farklı bir yuvarlama stratejisine (ör. her zaman yukarı yuvarla) ihtiyacınız varsa, dışa aktardıktan sonra `DataTable` üzerinde post‑process yapabilirsiniz. `SignificantDigits` ayarı, **excel'de ondalık basamakları sınırlama** için ekstra döngüler yazmadan en hızlı yoldur. + +## Adım 3: İstenen Aralığı Dışa Aktar (ilk 100 satırı dışa aktar) + +Şimdi Aspose'a hangi hücre bloğunu `DataTable`'a çekmek istediğimizi söylüyoruz. Bu öğreticide ilk 100 satırı ve ilk 10 sütunu alıyoruz, ancak senaryonuza göre bu sayıları ayarlayabilirsiniz. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Köşe Durumu:** Sayfa 100 satırdan az içeriyorsa, Aspose hata fırlatmadan mevcut olanları dışa aktarır. Yine de beklenmedik şekilde küçük bir aralıkla karşılaşmamak için koruma eklemek isteyebilirsiniz: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Adım 4: Sonucu Doğrula – Hızlı Konsol Çıktısı + +Veriyi hata ayıklayıcınızda görmek güzel, ancak birkaç satırı konsola yazdırmak, **excel'i DataTable'a dışa aktar** işleminin gerçekten çalıştığını ve ondalık basamakların kırpıldığını doğrular. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Beklenen Çıktı + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Şimdi sayısal sütunların yalnızca dört anlamlı basamak gösterdiğine dikkat edin; bu, daha önce uyguladığımız `SignificantDigits = 4` ayarıyla eşleşiyor. + +## Adım 5: Hepsini Birleştir – Tam, Çalıştırılabilir Örnek + +Aşağıda, bir konsol uygulamasına kopyala‑yapıştır yapabileceğiniz tam program bulunuyor. Hata yönetimi, isteğe bağlı satır‑sayısı koruması ve yazdırma yardımcı yöntemi dahildir. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Programı çalıştırın, ve sayfanızın ilk 100 satırını, güzelce yuvarlanmış ve sütun adları korunmuş şekilde göreceksiniz. + +## Yaygın Sorular & Tuzaklar + +| Soru | Cevap | +|----------|--------| +| **Sayfamda birleştirilmiş hücreler varsa ne olur?** | `ExportDataTable` birleştirilmiş hücreleri, sol‑üst hücrenin değerini alarak düzleştirir. Özel bir işleme ihtiyacınız varsa, önce birleştirmeyi kaldırın ya da ham `Cell` nesnelerini okuyun. | +| **Bunun yerine bir `DataSet`'e dışa aktarabilir miyim?** | Evet—`ExportDataTable` kullanı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-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/turkish/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..136232ad55 --- /dev/null +++ b/cells/turkish/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells kullanarak C#'ta sütun adlarıyla Excel verilerini dışa aktarma, + sayı formatını koruma ve belirli satırları okuma. Excel çalışma sayfasını okumayı + ve belirli satırları verimli bir şekilde dışa aktarmayı öğrenin. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: tr +og_description: Aspose.Cells kullanarak sütun adlarıyla Excel verilerini dışa aktarma, + sayı formatını koruma ve belirli satırları okuma. C# geliştiricileri için tam, çalıştırılabilir + bir örnek. +og_title: C#'ta Excel Verilerini Dışa Aktarma – Tam Programlama Rehberi +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: C# ile Excel Verilerini Dışa Aktarma – Adım Adım Rehber +url: /tr/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta Excel Verilerini Dışa Aktarma – Tam Programlama Rehberi + +Orijinal biçimlendirmeyi kaybetmeden **excel verilerini nasıl dışa aktaracağınızı** hiç merak ettiniz mi? Belki hızlı bir kopyala‑yapıştır denediniz ve tarihlerin “44728” gibi göründüğünü ya da sütun başlıklarının eksik olduğunu gördünüz. Bu can sıkıcı, değil mi? Bu öğreticide, bir Excel çalışma sayfasını okumanın, sayı biçimini korumanın, sütun adlarıyla dışa aktarmanın ve hatta sadece ihtiyacınız olan satırları seçmenin temiz, uçtan uca bir yolunu göreceksiniz. + +Aspose.Cells kütüphanesini kullanacağız çünkü dışa aktarma seçenekleri üzerinde ince ayar kontrolü sağlıyor. Bu rehberin sonunda, herhangi bir .NET projesine ekleyebileceğiniz yeniden kullanılabilir bir kod parçacığına sahip olacaksınız ve her seçeneğin neden önemli olduğunu anlayacaksınız. Harici belgelere ihtiyaç yok—gereken her şey burada. + +--- + +## Öğrenecekleriniz + +- **Read Excel worksheet**'i Aspose.Cells ile belleğe okuyun. +- **Export specific rows** (ör. rows 0‑49) sütun adlarını koruyarak dışa aktarın. +- **Preserve number format**'ı koruyarak para birimleri, tarih ve yüzde değerlerinin bozulmamasını sağlayın. +- **export with column names**'i nasıl yapacağınızı ve gerekirse hücre yorumlarını eklemeyi öğrenin. +- Tam, çalıştırmaya hazır bir C# örneği ve yaygın hatalar için ipuçları. + +### Önkoşullar + +- .NET 6.0 veya daha yeni bir sürüm (kod .NET Framework 4.6+ ile de çalışır). +- NuGet üzerinden kurulan Aspose.Cells for .NET (`Install-Package Aspose.Cells`). +- Referans verebileceğiniz bir klasöre yerleştirilmiş bir Excel dosyası (`input.xlsx`). + +> **Pro tip:** Bir CI hattındaysanız, lisans sürprizlerinden kaçınmak için NuGet paketini özel bir beslemeden çekmeyi düşünün. + +--- + +## 1. Adım – Aspose.Cells'i Kurun ve Ad Alanlarını Ekleyin + +İlk olarak, Aspose.Cells paketinin projenizde olduğundan emin olun. Package Manager Console'u açın ve şu komutu çalıştırın: + +```powershell +Install-Package Aspose.Cells +``` + +Ardından, C# dosyanızın en üstüne gerekli `using` yönergelerini ekleyin: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Bu importlar, **reading an Excel worksheet** ve veri dışa aktarma için temel parçalar olan `Workbook`, `Worksheet`, `ExportTableOptions` ve `DataTable`'a erişim sağlar. + +--- + +## 2. Adım – Çalışma Kitabını Yükleyin (Excel Dosyasını Okuyun) + +Şimdi gerçekten **read the Excel worksheet** yapıyoruz. `Workbook` yapıcı metodu dosyanın yolunu alır ve Aspose.Cells hem `.xlsx` hem de eski `.xls` formatlarını işleyebilir. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Neden önemli:** Çalışma kitabını bir kez yükleyip aynı `Worksheet` nesnesini tekrar kullanmak, özellikle büyük elektronik tablolarda dosyayı tekrar tekrar açmaktan çok daha verimlidir. + +--- + +## 3. Adım – Dışa Aktarma Seçeneklerini Yapılandırın (Sayı Biçimini Koru & Sütun Adları) + +Burada Aspose.Cells'e *nasıl* dışa aktarılacağını söylüyoruz. `ExportTableOptions` sınıfı çıktıyı ince ayar yapmamıza izin verir. Üç bayrağı etkinleştireceğiz: + +1. `ExportAsString = true` – her hücreyi bir dizeye zorlar, bu da sayıların görsel temsillerini korur. +2. `IncludeCellComments = true` – hücrelere eklenmiş yorumları kopyalar (belgeleme için kullanışlı). +3. `PreserveNumberFormat = true` – orijinal sayı biçimini korur (para birimi simgeleri, tarih desenleri vb.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Köşe durumu:** `ExportAsString`'i `false` yaparsanız ama yine de sayı biçimlerini korumak isterseniz, ham sayısal değerlerle (ör. bir tarih için 44728) karşılaşabilirsiniz. Her iki bayrağı da açık tutmak bu sürprizi önler. + +--- + +## 4. Adım – İlk Çalışma Sayfasını Alın (Excel Worksheet'ı Okuyun) + +Çoğu basit dosyada ihtiyacınız olan veri ilk sayfada bulunur, bu yüzden indekse göre alacağız. Farklı bir sayfa gerekiyorsa, `0` yerine uygun sıfır‑tabanlı indeksi koyun ya da `workbook.Worksheets["SheetName"]` kullanın. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Neden faydalı:** Çalışma sayfası nesnesine doğrudan erişmek, `Cells` koleksiyonu üzerinde tam kontrol sağlar; bu, daha sonra **export specific rows** için esastır. + +--- + +## 5. Adım – Hücre Aralığını Dışa Aktarın (Belirli Satırları Dışa Aktarın) + +Şimdi öğreticinin kalbi: rows 0‑49 ve columns 0‑4 (yani ilk 50 satır ve ilk beş sütun) `DataTable`'a dışa aktarmak. Ayrıca Aspose.Cells'ten `DataTable`'ın ilk satırı olarak sütun adlarını eklemesini isteyeceğiz. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Bunun Ne Yaptığı + +- **`startRow: 0`** – sayfanın en üstünden başlar. +- **`totalRows: 50`** – ilk 50 satırı alır (yani **export specific rows**). +- **`totalColumns: 5`** – dışa aktarmayı ilk beş sütunla sınırlar. +- **`includeColumnNames: true`** – `DataTable` sütun başlıklarının Excel başlık satırıyla eşleşmesini sağlar, **export with column names** gereksinimini karşılar. +- **`exportOptions`** – Adım 3'teki ayarları uygular, böylece sayısal değerler “$1,234.56” gibi görünür, “1234.56” yerine. + +--- + +## 6. Adım – Dışa Aktarmayı Doğrulayın (Sonuç Nasıl Görünüyor) + +İlk birkaç satırı konsola yazdıralım, böylece biçimlendirmelerin korunduğunu görebilirsiniz. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Beklenen çıktı (örnek):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Tarihlerin `MM/dd/yyyy` formatında ve para biriminin `$` sembolünü koruduğuna dikkat edin—**preserve number format** sayesinde. + +--- + +## Yaygın Tuzaklar ve Nasıl Önlenir + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| Tarihler büyük sayılara dönüşür | `ExportAsString` `false` bırakıldı | `ExportAsString = true` tutun` veya hücreleri manuel olarak dönüştürün | +| Sütun başlıkları eksik | `includeColumnNames` `false` olarak ayarlandı | **export with column names** gerektiğinde `true` olarak ayarlayın | +| Yorumlar kaybolur | `IncludeCellComments` etkinleştirilmedi | `ExportTableOptions` içinde `IncludeCellComments`'i açın | +| Yanlış sayfa dışa aktarılıyor | Çok sayfalı dosyada `Worksheets[0]` kullanılması | Sayfa adını belirtin: `workbook.Worksheets["Data"]` | +| Aralık dışı istisna | `totalRows` gerçek satır sayısını aşıyor | `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` kullanın | + +--- + +## Bonus: Tüm Sayfayı Dışa Aktarma ve Biçimleri Korumaya Devam Etme + +Daha sonra tüm sayfaya ihtiyacınız olursa, `totalRows` ve `totalColumns` değerlerini sayfanın maksimum boyutlarıyla değiştirin: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Artık herhangi bir boyutta çalışan bir **read excel worksheet** rutininiz var, aynı zamanda **preserving number format** ve **exporting with column names** özelliklerini koruyor. + +--- + +## Tam Çalışan Örnek (Kopyala‑Yapıştır Hazır) + +Aşağıda, bir console uygulamasına ekleyebileceğiniz tam program yer alıyor. Tüm adımları, importları ve basit bir doğrulama çıktısını içerir. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +`Program.cs` olarak kaydedin, `dotnet run` komutunu çalıştırın ve terminalinizde biçimlendirilmiş önizlemeyi görmelisiniz. + +--- + +## Sonuç + +Aspose.Cells kullanarak **how to export excel** verilerini nasıl dışa aktaracağımızı adım adım inceledik; çalışma kitabını yüklemekten sayı biçimini korumaya, sütun adlarıyla dışa aktarmaya ve dışa aktarmayı belirli satırlarla sınırlamaya kadar her şeyi kapsadık. Kod bağımsız, tamamen çalıştırılabilir ve en yaygın köşe durumları için pratik önlemler içeriyor. + +Bir sonraki meydan okumaya hazır mısınız? Orijinal sayı biçimini koruyarak doğrudan CSV'ye dışa aktarmayı deneyin ya da `DataTable`'ı toplu veri eklemek için bir Entity Framework Core bağlamına gönderin. Her iki senaryo da burada ele aldığımız aynı temeller üzerine kuruludur. + +Bu rehberi faydalı bulduysanız + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..7d8f26f7a1 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. | +| [Stilize Tabloyla Excel Çalışma Kitabı Oluşturma – Adım Adım Rehber](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Aspose.Cells for .NET kullanarak stilize bir tablo içeren Excel çalışma kitabını adım adım oluşturmayı öğrenin. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/turkish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..50cd3a6db5 --- /dev/null +++ b/cells/turkish/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-21 +description: Excel çalışma kitabı oluşturun ve sütun stilini ayarlarken veri tablosunu + Excel'e aktarın, verileri Excel'e dışa aktarın ve Excel hücrelerindeki tarihleri + dakikalar biçiminde formatlayın. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: tr +og_description: Excel çalışma kitabını hızlıca oluşturun. Veri tablosunu Excel'e aktarmayı, + sütun stilini ayarlamayı, verileri Excel'e dışa aktarmayı ve Excel hücrelerinin + tarih formatını tek bir rehberde öğrenin. +og_title: Excel Çalışma Kitabı Oluşturma – Stil ve Dışa Aktarma İçin Tam Kılavuz +tags: +- C# +- Aspose.Cells +- Excel automation +title: Stil Verilmiş Tabloyla Excel Çalışma Kitabı Oluşturma – Adım Adım Kılavuz +url: /tr/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel Çalışma Kitabı Oluşturma – Tam Programlama Öğreticisi + +Koddan doğrudan şık görünen bir **create excel workbook** oluşturmanız gerektiğinde hiç zorlandınız mı? Belki bir veritabanından veri çekiyorsunuz ve tarihlerin Excel’de sonradan uğraşmadan doğru formatta görünmesini istiyorsunuz. Bu, özellikle çıktının bir müşterinin e‑postasına düştüğü ve her şeyin kullanıma hazır olmasını beklediği durumlarda sıkça karşılaşılan bir sorundur. + +Bu rehberde, **import datatable to excel** işlemini, **set column style** uygulamasını ve sonunda **export data to excel** işlemini tek bir, bağımsız çözümle nasıl yapacağınızı adım adım göstereceğiz. **format excel cells date** işleminin tam olarak nasıl yapılacağını görecek ve sonunda eksiksiz, çalıştırılabilir bir örnek elde edeceksiniz. Eksik parça, “belgelere bakın” gibi kısayollar yok – sadece projenize hemen ekleyebileceğiniz saf kod. + +--- + +## Öğrenecekleriniz + +- Aspose.Cells kütüphanesini (veya uyumlu herhangi bir API) kullanarak **create excel workbook** nasıl yapılır. +- **import datatable to excel** işlemini manuel hücre‑hücre döngüleri olmadan en hızlı şekilde nasıl gerçekleştirirsiniz. +- **set column style** teknikleri, özellikle belirli bir sütuna tarih formatı uygulama. +- Tek bir `Save` çağrısıyla **export data to excel** nasıl yapılır. +- **format excel cells date** sırasında sıkça karşılaşılan tuzaklar ve bunlardan nasıl kaçınılır. + +### Önkoşullar + +- .NET 6+ (veya .NET Framework 4.6+). +- Aspose.Cells for .NET yüklü (`Install-Package Aspose.Cells`). +- `DataTable` hazır – veri kaynağınız SQL, CSV ya da `DataTable`a dönüştürülebilen herhangi bir şey olabilir. + +C# konusunda rahat iseniz ve bu bileşenler elinizdeyse, hemen başlayabilirsiniz. Aksi takdirde, yukarıdaki “Önkoşullar” bölümü size hızlı bir kontrol listesi sunar. + +--- + +## Adım 1 – Excel Çalışma Kitabı Örneğini Oluşturma + +Programatik olarak **create excel workbook** istediğinizde ilk yaptığınız şey, çalışma kitabı nesnesini örneklemektir. Bunu, daha sonra verilerinizi yazacağınız boş bir defter açmak gibi düşünün. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Neden önemli:** +> `Workbook` sınıfı, Aspose.Cells’teki her işlemin giriş noktasıdır. Önceden oluşturmak temiz bir tuval sağlar; ihtiyacınız olursa mevcut bir dosyayı da yükleyerek veri ekleyebilirsiniz. + +--- + +## Adım 2 – İçe Aktarılacak DataTable’ı Hazırlama + +**import datatable to excel** yapabilmek için bir `DataTable`’a ihtiyacımız var. Gerçek projelerde bu genellikle `SqlDataAdapter.Fill` ya da `DataTable.Load` ile elde edilir. Açıklık olması açısından hazır bir tablo döndüren bir metot taklit edeceğiz. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **İpucu:** Tarihleriniz metin olarak saklanıyorsa, önce `DateTime` tipine dönüştürün – aksi takdirde **format excel cells date** adımı beklendiği gibi çalışmaz. + +--- + +## Adım 3 – Her Sütun İçin Stil Tanımlama (Set Column Style) + +Şimdi **set column style** kısmına geliyoruz. Her sütun için bir `Style` nesnesi dizisi oluşturacağız. İlk sütun yerleşik tarih formatı (kod 14) alırken, diğerleri genel formatta (kod 0) kalacak. + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Stil nesneleri neden kullanılmalı?** +> Stili bir kez tanımlayıp yeniden kullanmak, her hücreye ayrı ayrı format uygulamaktan çok daha verimlidir. Ayrıca tüm sütunun aynı **format excel cells date** kuralına uymasını garantiler; bu, dosya farklı yerel ayarlarda açıldığında tutarlılık için kritiktir. + +--- + +## Adım 4 – DataTable’ı Stillerle Worksheet’e İçe Aktarma + +Çalışma kitabı ve stiller hazır olduğuna göre, şimdi **import datatable to excel** işlemini gerçekleştiriyoruz. `ImportDataTable` metodu işi halleder: sütun başlıklarını, satırları yazar ve bize verdiğimiz stilleri uygular. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Arka planda ne oluyor?** +> - `true` Aspose.Cells’e ilk satırda sütun adlarını eklemesini söyler. +> - `0, 0` başlangıç satır ve sütun indeksleridir (sol‑üst köşe). +> - `columnStyles` her sütunu hazırladığımız stil ile eşleştirir, böylece tarih sütununda **format excel cells date** kuralı uygulanır. + +--- + +## Adım 5 – Çalışma Kitabını Fiziksel Bir Dosyaya Kaydetme (Export) + +Son olarak, **export data to excel** işlemini gerçekleştirmek için çalışma kitabını diske kaydediyoruz. Yolu istediğiniz klasöre değiştirebilir ya da bir web API için dosyayı doğrudan HTTP yanıtına akıtabilirsiniz. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Pro ipucu:** Dosyayı diske yazmadan ağ üzerinden göndermeniz gerektiğinde `workbook.Save(Stream, SaveFormat.Xlsx)` kullanın. + +--- + +## Tam Çalışan Örnek (Tüm Adımlar Birleştirilmiş) + +Aşağıda, eksiksiz, çalıştırılabilir program yer alıyor. Konsol uygulamasına kopyalayıp yapıştırın, çıktı yolunu ayarlayın; birkaç saniye içinde şık bir Excel dosyanız olacak. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Beklenen çıktı:** +`StyledTable.xlsx` dosyasını açtığınızda, A sütunu `03/19/2026` gibi tarihleri (yerel ayarınıza bağlı) gösterirken, B ve C sütunları ürün adlarını ve miktarları düz metin/sayı olarak gösterecek. Ek bir formatlama adımına gerek yok – **create excel workbook** süreciniz tamam. + +--- + +## Sık Sorulan Sorular & Kenar Durumlar + +### 1️⃣ DataTable’ım üçten fazla sütun içeriyorsa ne yapmalıyım? +`columnStyles` dizisine daha fazla `Style` nesnesi ekleyin ve özel format gerektiren (ör. para birimi, yüzde) sütunların `Number` özelliğini ayarlayın. `ImportDataTable` her stili konumuna göre eşleyecektir. + +### 2️⃣ Yerleşik 14 yerine özel bir tarih formatı kullanabilir miyim? +Tabii ki. `columnStyles[i].Number = 14;` satırını aşağıdaki kodla değiştirin: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ **export data to excel** işlemini bir web API’da diske yazmadan nasıl yaparım? +`MemoryStream` kullanın: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Kullanıcının yerel ayarı farklı bir tarih ayırıcı bekliyorsa ne olur? +Yerleşik tarih formatı (ID 14) çalışma kitabının yerel ayarlarını dikkate alır. Sabit bir format istiyorsanız, yukarıda gösterildiği gibi `Custom` özelliğini kullanın. + +### 5️⃣ Bu .NET Core ile çalışır mı? +Evet—Aspose.Cells .NET Standard 2.0 ve üzerini destekler; aynı kod .NET 6, .NET 7 ya da uyumlu herhangi bir runtime’da sorunsuz çalışır. + +--- + +## En İyi Uygulama İpuçları (Pro Tips) + +- **Stilleri yeniden kullanın**: Sütun başına bir stil oluşturmak ucuzdur, ancak aynı stil nesnesini birden çok sütun için paylaşmak bellek tasarrufu sağlar. +- **Hücre‑hücre döngülerinden kaçının**: `ImportDataTable` yüksek derecede optimize edilmiştir; manuel döngüler daha yavaştır ve hata yapma olasılığını artırır. +- **Workbook kültürünü erken ayarlayın**; böylece ortamlar arasında sayı/tarih ayırıcıları tutarlı olur: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **DataTable’ı içe aktarmadan önce doğrulayın**—null tarih değerleri, tarih stilinin uygulanması sırasında istisna fırlatır. +- **Formüller ekledikten sonra hesaplamayı açın**: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Sonuç + +Artık **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel** ve **format excel cells date** işlemlerini tek bir düzine C# satırıyla tamamlayan eksiksiz bir tarifiniz var. Yaklaşım hızlı, güvenilir ve formatlama sorumluluğunu kod içinde tutarak, son spreadsheet’in iş kullanıcıları tarafından anında kullanılabilir olmasını sağlıyor. + +Bir sonraki meydan okumaya hazır mısınız? Koşullu biçimlendirme eklemeyi, grafik yerleştirmeyi ya da dönüştürmeyi deneyin. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/turkish/net/row-and-column-management/_index.md index 8b95db5d73..a281917946 100644 --- a/cells/turkish/net/row-and-column-management/_index.md +++ b/cells/turkish/net/row-and-column-management/_index.md @@ -76,6 +76,8 @@ Bu adım adım kılavuzla Aspose.Cells for .NET kullanarak Excel'e satır ekleme Aspose.Cells for .NET kullanarak Excel'de biçimlendirmeyle satır eklemeyi öğrenin. Kolay uygulama için adım adım kılavuzumuzu izleyin. ### [Aspose.Cells .NET'te Birden Fazla Satır Ekleme](./insert-multiple-rows-aspose-cells/) Aspose.Cells for .NET kullanarak Excel'de birden fazla satır eklemeyi öğrenin. Sorunsuz veri işleme için ayrıntılı eğitimimizi izleyin. +### [C# ile Excel Dosyası Yükleme – Satırları Silme ve Belirli Satırları Kaldırma](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Aspose.Cells for .NET kullanarak C# ile Excel dosyasında satırları silmeyi ve belirli satırları kaldırmayı öğrenin. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/turkish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..0ec55a5270 --- /dev/null +++ b/cells/turkish/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-21 +description: C# ile Excel dosyasını yükleyin ve Aspose.Cells kullanarak veri satırlarını + kaldırın. Satırları nasıl sileceğinizi, belirli satırları nasıl kaldıracağınızı + öğrenin ve dakikalar içinde C# Excel satır silme konusunda uzmanlaşın. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: tr +og_description: Excel dosyasını C# ile yükleyin ve satırları hızlıca silin, belirli + satırları kaldırın ve Aspose.Cells kullanarak C# Excel satır silmeyi yönetin. Tam + adım adım rehber. +og_title: Excel Dosyasını C# ile Yükle – Satırları Sil ve Belirli Satırları Kaldır +tags: +- C# +- Excel +- Aspose.Cells +title: Excel Dosyasını C# ile Yükleme – Satırları Silme ve Belirli Satırları Kaldırma +url: /tr/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel Dosyasını C# ile Yükleme – Satırları Silme ve Belirli Satırları Kaldırma + +Hiç **load Excel file C#** yapıp ihtiyacınız olmayan satırları temizlemek zorunda kaldınız mı? Belki bir veri dökümünü temizliyorsunuzdur ya da bir şablonunuz var ve belirli satırların, çalışma kitabını müşteriye göndermeden önce kaybolması gerekiyor. Hangi durumda olursanız olun, sorun aynı: diskte bir `.xlsx` dosyanız var, bunu .NET içinde açmak istiyorsunuz ve **delete rows** yaparken gizli tabloları veya liste nesnelerini bozmamanız gerekiyor. + +İşte mesele—Aspose.Cells bunu çocuk oyuncağı haline getiriyor. Bu öğreticide, **how to delete rows**'ı tam olarak gösteren, **remove specific rows** nasıl yapılır ve **c# excel row deletion**'ın neden önemli olabileceğini gösteren eksiksiz, çalıştırmaya hazır bir örnek göreceksiniz. Sonunda sadece istediğiniz satırları içeren temiz bir `output.xlsx` elde edeceksiniz. + +## Bu Kılavuzda Neler Kapsanıyor + +- Aspose.Cells kullanarak diskteki bir Excel çalışma kitabını yükleme. +- Herhangi bir ListObject başlığını koruyarak bir satır aralığını (ör. satır 5‑10) silme. +- Değiştirilmiş çalışma kitabını dosya sistemine kaydetme. +- Bir tabloda istemeden satır silme gibi yaygın tuzaklar ve bunlarla başa çıkma ipuçları. +- Bugün bir console uygulamasına ekleyebileceğiniz tam, çalıştırılabilir kod örneği. + +> **Önkoşullar** +> • .NET 6+ (veya .NET Framework 4.6+). +> • NuGet üzerinden (`Install-Package Aspose.Cells`) yüklü Aspose.Cells for .NET. +> • C# ve Excel kavramlarına (çalışma sayfaları, hücreler, tablolar) temel aşinalık. + +Eğer **why you should use Aspose.Cells**'i, örneğin `Microsoft.Office.Interop.Excel` yerine neden kullanmanız gerektiğini merak ediyorsanız, cevap hız, COM gerektirmemesi ve Office yüklü olmayan sunucularda çalışabilme yeteneğidir. Ayrıca API, satır silme görevleri için oldukça basittir. + +--- + +## Adım 1: Excel Çalışma Kitabını C#'ta Yükleme + +Herhangi bir şeyi silebilmek için önce çalışma kitabını belleğe almanız gerekir. `Workbook` sınıfı tüm Excel dosyasını temsil eder. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Neden Önemlidir:** +Dosyayı yüklemek, Excel yapısını—çalışma sayfaları, hücreler, tablolar vb.—yansıtan bir nesne grafiği oluşturur. `ws`'ye bir referans tutarak, dosya kilitleri veya COM interop tuhaflıklarıyla uğraşmadan satırları doğrudan manipüle edebilirsiniz. + +--- + +## Adım 2: Yalnızca Veri İçeren Satırları Silme + +Artık çalışma kitabı bellekte olduğuna göre, satırları silebilirsiniz. `Cells.DeleteRows(startRow, totalRows)` yöntemi ardışık bir blok kaldırır. Örneğimizde satır 5‑10'u çıkaracağız. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Nasıl Çalışır:** +- `startRow` sıfır‑tabanlıdır, bu yüzden `5` aslında Excel'in 6. satırına karşılık gelir. Buna göre ayarlayın. +- Eğer çalışma sayfası, başlığı satır 4'te bulunan bir **ListObject** (Excel tablosu) içeriyorsa, Aspose.Cells başlığı korur ve yalnızca altındaki veri satırlarını siler. Bu yerleşik güvenlik, yapılandırılmış tabloları bozulmaktan korur—**removing data rows** yaparken yaygın bir kenar durumudur. + +> **Pro ipucu:** Eğer ardışık olmayan satırları (ör. satır 3, 7, 12) silmeniz gerekiyorsa, satır indekslerinin ters bir koleksiyonunu döngüye alıp her biri için `DeleteRows(rowIndex, 1)` çağırın. Alt taraftan yukarı doğru silmek, kalan satırların orijinal indekslerini korur. + +--- + +## Adım 3: Değiştirilmiş Çalışma Kitabını Kaydetme + +İstenmeyen satırlar kaldırıldıktan sonra, çalışma kitabını diske geri yazmanız yeterlidir. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +`Save` yöntemi, uzantıdan (`.xlsx` bu durumda) dosya formatını otomatik olarak belirler. Farklı bir formata (CSV, PDF vb.) ihtiyacınız varsa, sadece uzantıyı değiştirin veya bir `SaveFormat` enum'u geçirin. + +### Beklenen Sonuç + +`output.xlsx` dosyasını Excel'de açtığınızda, satır 5‑14'ün (orijinal satır 5‑10) kaybolduğunu göreceksiniz. Diğer tüm veriler buna göre yukarı kayar ve silinen satırları referans alan formüller Aspose.Cells tarafından otomatik olarak ayarlanır. + +--- + +## Sıkça Sorulan Sorular (SSS) + +### Koşula göre satırları nasıl silerim (ör. sütun A'sı boş olan tüm satırlar)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +Döngü, indeks kaymasını önlemek için geriye doğru çalışır. Bu desen, koşullu mantık gerektiğinde daha geniş **c# excel row deletion** sorusuna yanıt verir. + +### Çalışma sayfam birden fazla ListObject içeriyorsa ne olur? + +Aspose.Cells her ListObject'i bağımsız olarak ele alır. Silme aralığı herhangi bir tablonun başlığını etkilerse, API bir `InvalidOperationException` fırlatır. Bununla başa çıkmak için ya aralığı ayarlayın ya da geçici olarak ListObject'in `ShowTableStyleFirstColumn` özelliğini temizleyin, silmeyi yapın ve ardından eski haline getirin. + +### Tüm çalışma kitabını belleğe yüklemeden satırları silebilir miyim? + +Evet—Aspose.Cells, verileri parçalar halinde okuyan bir **streaming API** (`Workbook.LoadOptions`) sunar. Ancak, satır silme doğası gereği çalışma sayfasının yapısını gerektirir, bu yüzden hedef sayfayı hâlâ belleğe yüklemeniz gerekir. Çok büyük dosyalar (>500 MB) için işlemleri partiler halinde yapmayı veya **cell‑by‑cell** API'sini kullanmayı düşünün. + +--- + +## Tam, Çalıştırılabilir Örnek + +Aşağıda, bir console uygulaması olarak derleyip çalıştırabileceğiniz tam program yer alıyor. `YOUR_DIRECTORY` ifadesini makinenizdeki gerçek bir klasör yolu ile değiştirin. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Kodu Çalıştırma:** +1. Bir terminal veya Visual Studio açın. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. `Program.cs` dosyasını yukarıdaki kod parçacığıyla değiştirin. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Silmenin onaylandığını ve kaydedilen dosyanın konumunu gösteren bir konsol çıktısı görmelisiniz. + +--- + +## Yaygın Tuzaklar ve Nasıl Önlenir + +| Tuzak | Neden Olur | Çözüm | +|---------|----------------|-----| +| **Liste Nesnesi (ListObject) başlığını yanlışlıkla silmek** | `DeleteRows`, aralık bu başlıklarla çakıştığında gizli tablo başlıklarını kontrol etmez. | Başlangıç satırınızın herhangi bir tablo başlığından **sonra** olduğundan emin olun veya tablo içindeki satırları silmek için `ListObject` API'sini kullanın (`ListObject.DeleteRows`). | +| **Satır indeksleri bir eksik** | Aspose.Cells sıfır‑tabanlı indeksleme kullanırken, Excel kullanıcıları 1‑tabanlı düşünür. | Kod yazarken Excel satır numarasından 1 çıkarmayı unutmayın. | +| **Silme sonrası formüller bozulur** | Satırların silinmesi, formüller kaldırılan satırları referans alıyorsa `#REF!` hatalarına yol açabilir. | Aspose.Cells çoğu formülü otomatik olarak günceller, ancak dış referansları veya adlandırılmış aralıkları iki kez kontrol edin. | +| **Büyük dosyalarda performans yavaşlaması** | Birçok satırın silinmesi içsel yeniden indekslemeyi tetikler. | Birçok tek satır silmek yerine toplu silme (büyük bir aralığı bir kez silme) yapın. Mümkün olduğunca `DeleteRows(start, count)` kullanın. | + +--- + +## Sonraki Adımlar ve İlgili Konular + +- **Hücre değerlerine göre belirli satırları kaldırma:** SSS'de gösterilen koşullu döngüyü `DeleteRows` ile birleştirin. +- **Toplu satır ekleme:** Verileri doldurmadan önce yer tutucu satırlar eklemek için `InsertRows` kullanın. +- **Tablolarla (ListObjects) çalışmak:** Yapılandırılmış tablolarda satır‑seviyesinde işlemler için `ListObject` yöntemlerini keşfedin. +- **Satır silme sonrası CSV'ye dışa aktarma:** Kaldırılan satırların olmadığı temiz bir CSV üretmek için `workbook.Save("output.csv", SaveFormat.Csv)` çağırın. + +Bunların her biri, az önce öğrendiğiniz temel **load excel file c#** iş akışına dayanır ve Excel dosyalarını programlı olarak ince ayar yapmanızı sağlar. + +--- + +## Sonuç + +Pratik bir **load excel file c#** senaryosunu ele aldık, **how to delete rows** gösterdik ve Aspose.Cells kullanarak **remove specific rows** ve **remove data rows** inceliklerini kapsadık. Çalışma kitabını yükleyip `DeleteRows` çağırıp sonucu kaydederek, COM interop yükü olmadan güvenilir **c# excel row deletion** elde edersiniz. + +Gerçek bir veri seti üzerinde deneyin—belki bir satış raporunu temizleyin ya da bir şablondan test satırlarını çıkarın. Rahat olduğunuzda, koşullu silmeler ve tablo‑bilinçli işlemlerle deneyler yapın. API, hem basit betikler hem de kurumsal‑düzey toplu işlemciler için yeterince sağlamdır. + +Kodlamanın tadını çıkarın, ve herhangi bir sorunla karşılaşırsanız yorum bırakmaktan çekinmeyin! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/worksheet-operations/_index.md b/cells/turkish/net/worksheet-operations/_index.md index 43e7d7d6db..7f2037d2f1 100644 --- a/cells/turkish/net/worksheet-operations/_index.md +++ b/cells/turkish/net/worksheet-operations/_index.md @@ -36,6 +36,8 @@ Bu kılavuzda, Excel verilerinizin HTML'ye dönüştürüldüğünde görsel çe Aspose.Cells for .NET ile Excel dosyalarından köprü metinlerini kolayca çıkarın ve yönetin. Adım adım kılavuz ve kod örnekleri dahildir. ### [.NET'te HTML için Görüntü Tercihlerini Ayarlama](./setting-image-preferences-for-html/) Aspose.Cells for .NET'in gücünü açığa çıkarın. Excel verilerinizi web'de güzel bir şekilde sunmak için HTML dönüşümü için görüntü tercihlerini nasıl ayarlayacağınızı öğrenin. +### [Çalışma Sayfaları Nasıl Oluşturulur – Dinamik Excel Oluşturma İçin Adım Adım Kılavuz](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Aspose.Cells for .NET kullanarak dinamik Excel dosyalarında çalışma sayfalarını adım adım oluşturun. ### [Çalışma Sayfasına Konulu Yorumlar Ekle](./add-threaded-comments/) Bu adım adım eğitimle Aspose.Cells for .NET kullanarak Excel çalışma sayfalarına dizili yorumlar eklemeyi öğrenin. İş birliğini zahmetsizce geliştirin. ### [Çalışma Sayfasındaki Hücre Sayısını Say](./count-cells/) diff --git a/cells/turkish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/turkish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..a27209bb6c --- /dev/null +++ b/cells/turkish/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,276 @@ +--- +category: general +date: 2026-03-21 +description: Aspose.Cells'i C#'ta kullanarak çalışma sayfaları oluşturmayı, dinamik + çalışma sayfası adlarıyla Excel sayfaları üretmeyi ve çalışma kitabını XLSX olarak + kaydetmeyi öğrenin. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: tr +og_description: Aspose.Cells kullanarak Excel'de çalışma sayfaları nasıl oluşturulur, + dinamik çalışma sayfası adlarıyla Excel sayfaları nasıl üretilir ve çalışma kitabı + XLSX olarak nasıl kaydedilir. +og_title: Çalışma Sayfaları Nasıl Oluşturulur – Tam C# Öğreticisi +tags: +- Aspose.Cells +- C# +- Excel automation +title: Çalışma Sayfalarını Nasıl Oluşturursunuz – Dinamik Excel Oluşturma İçin Adım + Adım Rehber +url: /tr/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Çalışma Sayfaları Nasıl Oluşturulur – Tam C# Öğreticisi + +Her seferinde Excel'i manuel olarak açmadan anında **çalışma sayfaları nasıl oluşturulur** diye merak ettiniz mi? Yalnız değilsiniz. Birçok geliştirici, veri kaynaklarından **Excel sayfaları oluşturmak** gerektiğinde ve her sayfanın anlamlı, dinamik bir adı olmasını istediğinde bir engelle karşılaşıyor. İyi haber? Aspose.Cells ile tüm süreci otomatikleştirebilir, **ana sayfayı işleyebilir** ve sonunda **çalışma kitabını XLSX olarak kaydedebilirsiniz** sadece birkaç satır kodla. + +> **Önkoşullar** +> • .NET 6+ (veya .NET Framework 4.6+). +> • Aspose.Cells for .NET (ücretsiz deneme sürümü bu demo için çalışır). +> • Temel C# bilgisi—derin Excel interop hilelerine gerek yok. + +--- + +## Oluşturacağımız Şeyin Genel Görünümü + +- **Ana sayfa** akıllı‑işaretçi yer tutucusu (`«DetailSheetNewName:Dept»`) içerir. +- **SmartMarkerProcessor** bir veri kaynağını (ör. bir `DataTable`) okur ve her departman için yeni bir çalışma sayfası oluşturur. +- **Dinamik çalışma sayfası adları** `Dept_{0}` desenini izler; `{0}` departman adıyla değiştirilir. +- **Son XLSX dosyası** belirttiğiniz bir klasöre kaydedilir. + +Hepsi bu. Basit, ama faturalar, raporlar veya çoklu sekmeli Excel çıktısı için yeterince güçlü. + +![Aspose.Cells kullanarak dinamik çalışma sayfası adlarıyla çalışma sayfalarının nasıl oluşturulacağını gösteren illüstrasyon](/images/how-to-create-worksheets-diagram.png "Çalışma sayfaları oluşturma diyagramı") + +*Alt metin: Aspose.Cells kullanarak dinamik çalışma sayfası adlarıyla çalışma sayfalarının nasıl oluşturulacağını gösteren illüstrasyon.* + +--- + +## Adım 1: Projeyi Kurun ve Aspose.Cells'i Ekleyin + +### Bunun Önemi +Herhangi bir kod çalıştırılmadan önce, derleyicinin `Workbook`, `Worksheet` ve `SmartMarkerProcessor` sınıflarının nerede olduğunu bilmesi gerekir. NuGet paketini eklemek, en yeni ve tam özellikli API'ye sahip olmanızı sağlar. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro ipucu:** Visual Studio kullanıyorsanız, projeye sağ‑tıklayın → *Manage NuGet Packages* → *Aspose.Cells* aratın ve en son kararlı sürümü yükleyin. + +--- + +## Adım 2: Yeni Bir Çalışma Kitabı Oluşturun ve Ana Sayfayı Ekleyin + +### Ne Yapıyoruz +Temiz bir çalışma kitabıyla başlarız, ardından ilk çalışma sayfasını (indeks 0) alırız. Bu sayfa, akıllı‑işaretçi token'ını tutan **ana sayfa** görevi görür. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +`Workbook` sınıfı tüm çalışma sayfalarının konteyneridir. Varsayılan olarak *Sheet1* adlı bir sayfa oluşturur; adını “Master” olarak değiştirmek, son dosyanın gezinmesini kolaylaştırır. + +--- + +## Adım 3: Detay Sayfa Adları İçin Akıllı‑İşaretçi Token'ı Ekleyin + +### Neden akıllı‑işaretçi kullanmalı? +Akıllı işaretçiler, Aspose.Cells'in yer tutucuları çalışma zamanında veriyle değiştirmesini sağlar. `«DetailSheetNewName:Dept»` token'ı işlemciye şunu söyler: *“Bunu gördüğünde, `Dept` sütunundaki her satır için yeni bir detay sayfası oluştur.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Token'ı istediğiniz yere koyabilirsiniz; açıklık olması için **A1** hücresini seçtik. İşlemci çalıştığında, token'ı gerçek departman adıyla değiştirir ve ilgili bir çalışma sayfası oluşturur. + +--- + +## Adım 4: Veri Kaynağını Hazırlayın + +### Verinin Sayfa Oluşturmayı Nasıl Yönlendirdiği +Aspose.Cells herhangi bir `IEnumerable` veri kaynağıyla çalışır. Bu demo için tek bir `Dept` adlı sütunu olan bir `DataTable` kullanacağız. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Daha fazla sütununuz olsaydı ne olur?** +> İşlemci, ek akıllı işaretçilerle referans verilmedikçe ekstra sütunları görmezden gelir. Bu, sayfa oluşturmayı hafif tutar. + +--- + +## Adım 5: SmartMarkerProcessor'ı ve Adlandırma Desenini Yapılandırın + +### Dinamik çalışma sayfası adları devrede +Her yeni sayfanın `Dept_Finance`, `Dept_HR` vb. şekilde adlandırılmasını istiyoruz. `DetailSheetNewName` seçeneği, `{0}` gerçek departman adıyla değiştirilen bir desen tanımlamamıza izin verir. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Bir departman iki kez görünürse, Aspose otomatik olarak sayısal bir ek (ör. `Dept_Finance_1`) ekler ve yinelenen sayfa adlarından kaçınır. + +--- + +## Adım 6: Ana Sayfayı İşleyerek Detay Sayfaları Oluşturun + +### **process master sheet**'in özü +`Process` metodunu çağırmak işi halleder: ana sayfada akıllı işaretçileri tarar, yeni çalışma sayfaları oluşturur, ana düzeni kopyalar ve her birini satır verileriyle doldurur. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Bu çağrıdan sonra, çalışma kitabı bir ana sayfa ve dört detay sayfası içerir—her biri desenimize göre adlandırılmış ve A1 hücresinde departman adıyla doldurulmuştur. + +--- + +## Adım 7: Çalışma Kitabını XLSX Olarak Kaydedin + +### Son adım—**çalışma kitabını XLSX olarak kaydet** +Artık çalışma sayfaları mevcut, dosyayı diske yazıyoruz. Herhangi bir yolu seçebilirsiniz; sadece dizinin var olduğundan emin olun. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +`DetailSheets.xlsx` dosyasını açtığınızda şu tabloyu göreceksiniz: + +| Sayfa Adı | Hücre A1 (İçerik) | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (değişmemiş) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Köşe durumu:** Çıktı klasörü mevcut değilse, `Save` bir `DirectoryNotFoundException` fırlatır. Çağrıyı bir try‑catch bloğuna sarın veya klasörü önceden oluşturun. + +--- + +## Tam Çalışan Örnek + +Hepsini bir araya getirerek, bir konsol uygulamasına kopyalayıp‑yapıştırabileceğiniz tam program burada: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Programı çalıştırın, ortaya çıkan dosyayı açın ve daha önce açıklanan düzeni tam olarak göreceksiniz. Manuel kopyala‑yapıştırma, COM interop yok—sadece **dinamik çalışma sayfası adları**yla **Excel sayfaları üreten** temiz C# kodu. + +--- + +## Yaygın Sorular & Dikkat Edilmesi Gerekenler + +| Soru | Cevap | +|----------|--------| +| *Bir DataSet içinde birden fazla tablo kullanabilir miyim?* | Evet. Uygun tabloyu `Process` metoduna geçirin veya bir tablo sözlüğü kullanın. | +| *Ana sayfada birden fazla akıllı‑işaretçi gerektiğinde ne yapmalıyım?* | `«DetailSheetNewName:Region»` gibi ek token'lar ekleyin ve gerekirse ayrı bir adlandırma deseni yapılandırın. | +| *Ana sayfa son dosyada tutuluyor mu?* | Varsayılan olarak evet. Eğer ihtiyacınız yoksa, işlemden sonra `workbook.Worksheets.RemoveAt(0)` çağırın. | +| *Aspose çok büyük veri setlerini nasıl yönetir?* | Veriyi verimli bir şekilde akış olarak işler, ancak bellek sınırına ulaşırsanız `MemorySetting` değerini artırmak isteyebilirsiniz. | +| *XLSX yerine CSV olarak dışa aktarabilir miyim?* | Kesinlikle—`workbook.Save("file.csv", SaveFormat.Csv)` kullanın. Aynı sayfa‑oluşturma mantığı geçerlidir. | + +--- + +## Sonraki Adımlar + +Artık **çalışma sayfalarını** dinamik olarak nasıl oluşturacağınızı bildiğinize göre, şunları keşfedebilirsiniz: + +- **Çalışma kitabını XLSX olarak kaydetme** şifre koruması ile (`workbook.Protect("pwd")`). +- **JSON veya XML kaynaklarından** `JsonDataSource` veya `XmlDataSource` kullanarak **Excel sayfaları oluşturma**. +- `Style` nesneleriyle her oluşturulan sayfaya **stil uygulama** (yazı tipleri, renkler). +- **Hücre birleştirme** veya özet raporlar için otomatik formül ekleme. + +Bu uzantıların her biri aynı **process master sheet** kavramı üzerine inşa edildiği için geçiş sorunsuz olacaktır. + +--- + +## Sonuç + +Tüm süreci ele aldık: bir çalışma kitabını başlatmaktan, akıllı‑işaretçi eklemeye, **dinamik çalışma sayfası adlarını** yapılandırmaya, ana sayfayı **Excel sayfaları oluşturmak** için işlemeye ve sonunda **çalışma kitabını XLSX olarak kaydetmeye**. Örnek eksiksiz, çalıştırılabilir ve performans ile sürdürülebilirlik açısından en iyi uygulamaları gösteriyor. + +Deneyin, adlandırma desenini ayarlayın, gerçek iş verileriyle besleyin ve Excel otomasyonunuzun nasıl yükseldiğini izleyin. Herhangi bir sorunla karşılaşırsanız, aşağıya 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/vietnamese/net/calculation-engine/_index.md b/cells/vietnamese/net/calculation-engine/_index.md index 6b846840d2..11dc62703f 100644 --- a/cells/vietnamese/net/calculation-engine/_index.md +++ b/cells/vietnamese/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ Tìm hiểu cách tạo và tích hợp các công cụ tính toán tùy chỉnh ### [Tối ưu hóa thời gian tính toán Excel với các tùy chọn đệ quy trong Aspose.Cells cho .NET](./optimize-calculation-time-recursive-aspose-cells-net) Tìm hiểu cách tối ưu hóa thời gian tính toán Excel bằng các tùy chọn đệ quy trong Aspose.Cells cho .NET. Hướng dẫn này bao gồm thiết lập, mẹo về hiệu suất và ứng dụng thực tế. +### [Cách tính Workbook trong C# – Hướng dẫn sắp xếp và công thức](./how-to-calculate-workbook-in-c-sort-formula-guide/) +Hướng dẫn chi tiết cách tính toán workbook trong C# sử dụng Aspose.Cells, bao gồm sắp xếp dữ liệu và áp dụng công thức. ## Những lợi ích diff --git a/cells/vietnamese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md b/cells/vietnamese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md new file mode 100644 index 0000000000..5ce6b47f33 --- /dev/null +++ b/cells/vietnamese/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-21 +description: Cách tính workbook trong C# với Aspose.Cells – học cách tạo workbook + Excel, điền dữ liệu vào các ô Excel, tính công thức Excel và sử dụng chức năng sắp + xếp. +draft: false +keywords: +- how to calculate workbook +- create excel workbook +- populate excel cells +- calculate excel formulas +- use sort function +language: vi +og_description: Cách tính workbook trong C# nhanh chóng. Hướng dẫn này cho thấy cách + tạo workbook Excel, điền dữ liệu vào các ô Excel, tính các công thức Excel và sử + dụng chức năng sắp xếp. +og_title: Cách tính Workbook trong C# – Hướng dẫn sắp xếp đầy đủ +tags: +- C# +- Aspose.Cells +- Excel Automation +title: Cách Tính Toán Workbook trong C# – Hướng Dẫn Sắp Xếp & Công Thức +url: /vi/net/calculation-engine/how-to-calculate-workbook-in-c-sort-formula-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Tính Toán Workbook trong C# – Hướng Dẫn Sắp Xếp & Công Thức + +Bạn đã bao giờ tự hỏi **cách tính toán workbook** trên fly mà không cần mở Excel chưa? Bạn không phải là người duy nhất. Trong nhiều kịch bản tự động hoá, bạn cần tạo một file Excel, chèn một vài số, sắp xếp chúng, và lấy kết quả trở lại ứng dụng .NET của mình — tất cả đều được thực hiện bằng mã. + +Trong hướng dẫn này, chúng ta sẽ đi qua từng bước: **tạo workbook Excel**, **điền dữ liệu vào các ô Excel**, đính kèm công thức **SORT**, và cuối cùng **tính toán các công thức Excel** để bạn có thể đọc mảng đã sắp xếp trực tiếp từ C#. Khi hoàn thành, bạn sẽ có một đoạn mã có thể chạy ngay và chèn vào bất kỳ dự án nào đã tham chiếu Aspose.Cells (hoặc thư viện tương tự). + +## Yêu cầu trước + +- .NET 6+ (mã cũng chạy trên .NET Framework 4.7.2) +- Aspose.Cells for .NET (gói NuGet dùng thử miễn phí `Aspose.Cells`) +- Kiến thức cơ bản về cú pháp C# +- Không cần cài đặt Microsoft Excel; thư viện sẽ thực hiện mọi công việc nặng cho bạn + +Nếu bạn đã sẵn sàng, hãy bắt đầu. + +## Cách Tính Toán Workbook – Khởi Tạo Workbook + +Điều đầu tiên bạn phải làm là khởi tạo một đối tượng workbook mới. Hãy tưởng tượng như đang mở một file Excel hoàn toàn trống mới. + +```csharp +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); // <-- creates an in‑memory .xlsx + Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (and only) sheet +``` + +> **Tại sao điều này quan trọng:** Lớp `Workbook` là điểm vào cho mọi thao tác — nếu không có nó, bạn không thể thêm sheet, ô, hay công thức. Khởi tạo đúng cách đảm bảo bạn đang làm việc trên một “bảng trắng”. + +## Tạo Excel Workbook và Truy Cập Worksheet + +Bây giờ workbook đã tồn tại, chúng ta cần chắc chắn đang trỏ tới worksheet đúng. Hầu hết các thư viện mặc định tạo một sheet duy nhất tên “Sheet1”, nhưng bạn có thể đổi tên hoặc thêm sheet mới nếu muốn. + +```csharp + // Optional: rename the default sheet for clarity + worksheet.Name = "Data"; +``` + +> **Mẹo chuyên nghiệp:** Đặt tên sheet ngay từ đầu sẽ giúp bạn khi tham chiếu chúng trong công thức (`'Data'!A1:A10`). Điều này cũng làm cho việc gỡ lỗi dễ dàng hơn. + +## Điền Dữ Liệu Vào Các Ô Excel + +Tiếp theo, chúng ta sẽ **điền dữ liệu vào các ô Excel** với các số cần sắp xếp. Ví dụ chỉ dùng hai ô, nhưng bạn có thể mở rộng phạm vi tới hàng chục. + +```csharp + // Step 2: Put raw values into A1 and A2 + worksheet.Cells["A1"].PutValue(5); // First unsorted value + worksheet.Cells["A2"].PutValue(2); // Second unsorted value + + // If you have more data, just keep writing: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); +``` + +> **Tại sao dùng `PutValue`** – Nó tự động phát hiện kiểu dữ liệu (int, double, string, …) và lưu lại một cách thích hợp, giúp bạn không phải tự ép kiểu. + +## Áp Dụng Hàm SORT qua Công Thức + +Hàm `SORT` của Excel làm đúng như tên gọi: trả về một mảng đã sắp xếp mà không thay đổi dữ liệu gốc. Chúng ta sẽ đặt công thức này vào ô `B1`. + +```csharp + // Step 3: Insert a SORT formula that references the A column range + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // If you have a dynamic range, you could use: + // worksheet.Cells["B1"].Formula = "=SORT(A1:A" & lastRow & ")"; +``` + +> **Lưu ý trường hợp đặc biệt:** `SORT` trả về một **mảng**. Trong các phiên bản Excel cũ (trước Office 365) điều này yêu cầu nhấn Ctrl+Shift+Enter. Với Aspose.Cells, mảng sẽ được trả về tự động khi bạn tính toán workbook. + +## Tính Toán Các Công Thức Excel Để Lấy Kết Quả + +Ở bước này, workbook chỉ biết *phải* tính gì, chưa biết *khi nào* thực hiện. Gọi `CalculateFormula` sẽ kích hoạt engine tính toán, đánh giá mọi công thức, bao gồm cả `SORT`. + +```csharp + // Step 4: Force calculation of all formulas + workbook.CalculateFormula(); + + // Retrieve the sorted result from B1 (it will be a 2‑element array) + var sortedResult = worksheet.Cells["B1"].Value; // returns object[] + + // Display the sorted numbers + Console.WriteLine("Sorted array: {" + string.Join(", ", (object[])sortedResult) + "}"); + } +} +``` + +**Kết quả dự kiến trên console** + +``` +Sorted array: {2, 5} +``` + +> **Chuyện gì vừa xảy ra?** +> 1. Workbook tạo ra một engine tính toán nội bộ. +> 2. Công thức `SORT` kiểm tra phạm vi `A1:A2`. +> 3. Engine tạo ra một mảng mới, chúng ta lấy nó từ `B1`. + +Nếu bạn thay đổi giá trị ở `A1` và `A2` (hoặc mở rộng phạm vi) và chạy lại `CalculateFormula`, kết quả sẽ tự động cập nhật — không cần thêm mã nào. + +## Sử Dụng Hàm Sort Cho Dữ Liệu Lớn Hơn (Tùy Chọn) + +Hầu hết các kịch bản thực tế có nhiều hơn hai hàng. Dưới đây là một chỉnh sửa nhanh hoạt động với bất kỳ số lượng mục nào: + +```csharp + // Suppose you have 10 numbers in column A + int lastRow = 10; + + // Populate A1:A10 with sample data + for (int i = 1; i <= lastRow; i++) + { + worksheet.Cells[$"A{i}"].PutValue(new Random().Next(0, 100)); + } + + // Apply SORT to the whole column + worksheet.Cells["B1"].Formula = $"=SORT(A1:A{lastRow})"; + + // Re‑calculate and fetch the array + workbook.CalculateFormula(); + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Full sorted list: " + string.Join(", ", sorted)); +``` + +> **Tại sao bạn có thể cần điều này:** Sắp xếp các phạm vi lớn cho phép bạn tạo bảng xếp hạng, sắp xếp dữ liệu tài chính, hoặc chỉ đơn giản là làm sạch các CSV đã nhập trước khi xử lý tiếp. + +## Những Sai Lầm Thường Gặp & Cách Tránh + +| Vấn đề | Nguyên nhân | Giải pháp | +|-------|-------------|-----------| +| **`#VALUE!` ở B1** | Công thức `SORT` tham chiếu một phạm vi rỗng hoặc không phải số. | Đảm bảo mọi ô trong phạm vi nguồn chứa số hoặc văn bản có thể sắp xếp. | +| **Cắt ngắn mảng** | Cố gắng đọc mảng từ một ô duy nhất mà không ép kiểu. | Ép `worksheet.Cells["B1"].Value` sang `object[]` (hoặc kiểu phù hợp). | +| **Giảm hiệu năng** | Tính lại workbook lớn sau mỗi thay đổi nhỏ. | Gọi `CalculateFormula` chỉ sau khi hoàn tất các thay đổi, hoặc dùng `CalculateFormulaOptions` để giới hạn phạm vi. | + +## Ví Dụ Hoàn Chỉnh (Sẵn Sàng Sao Chép) + +```csharp +using System; +using Aspose.Cells; + +public class WorkbookSorter +{ + public static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Name = "Data"; + + // 2️⃣ Populate excel cells with unsorted numbers + worksheet.Cells["A1"].PutValue(5); + worksheet.Cells["A2"].PutValue(2); + // Add more rows if you like: + // worksheet.Cells["A3"].PutValue(9); + // worksheet.Cells["A4"].PutValue(1); + + // 3️⃣ Set a SORT formula in B1 – this is the use sort function step + worksheet.Cells["B1"].Formula = "=SORT(A1:A2)"; + + // 4️⃣ Calculate excel formulas so the sorted array appears + workbook.CalculateFormula(); + + // 5️⃣ Retrieve and display the result + var sorted = (object[])worksheet.Cells["B1"].Value; + Console.WriteLine("Sorted array: {" + string.Join(", ", sorted) + "}"); + } +} +``` + +> **Ảnh chụp kết quả** +> ![how to calculate workbook result in Excel](https://example.com/images/sorted-result.png "how to calculate workbook result in Excel") + +Hình trên hiển thị workbook sau khi tính toán — ô **B1** chứa mảng đã sắp xếp `{2, 5}`. + +## Kết Luận + +Chúng ta vừa khám phá **cách tính toán workbook** một cách lập trình: tạo workbook Excel, điền dữ liệu vào các ô, nhúng công thức `SORT`, và cuối cùng **tính toán các công thức Excel** để trích xuất dữ liệu đã sắp xếp. Phương pháp này hoạt động cho các ví dụ đơn giản với hai ô và cũng mở rộng tốt cho các tập dữ liệu lớn hơn. + +Tiếp theo bạn có thể thử kết hợp với các hàm khác như `FILTER`, `UNIQUE`, hoặc thậm chí logic kiểu VBA thông qua `WorksheetFunction`. Bạn cũng có thể lưu workbook ra đĩa (`workbook.Save("Sorted.xlsx")`) và mở trong Excel để kiểm tra trực quan. + +Hãy thoải mái thử nghiệm — thay đổi các số, mở rộng phạm vi, hoặc nối nhiều công thức lại với nhau. Tự động hoá là việc lặp lại nhanh, và giờ bạn đã có nền tảng vững chắc để xây dựng tiếp. + +Chúc lập trình vui vẻ, và mong workbook của bạn luôn tính toán đúng như mong đợ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/conversion-and-rendering/_index.md b/cells/vietnamese/net/conversion-and-rendering/_index.md index adeb426c53..35c01270f5 100644 --- a/cells/vietnamese/net/conversion-and-rendering/_index.md +++ b/cells/vietnamese/net/conversion-and-rendering/_index.md @@ -38,6 +38,8 @@ Học cách chuyển đổi Excel sang PDF nâng cao một cách liền mạch v Tìm hiểu cách chuyển đổi bảng tính Excel sang SVG bằng Aspose.Cells cho .NET với hướng dẫn từng bước này. Hoàn hảo cho các nhà phát triển .NET muốn chuyển đổi Excel sang SVG. ### [Chuyển đổi Excel sang MHTML trong .NET](./converting-excel-to-mhtml/) Tìm hiểu cách chuyển đổi hiệu quả các tệp Excel sang định dạng MHTML trong .NET bằng Aspose.Cells, giúp tăng cường khả năng báo cáo và chia sẻ dữ liệu của bạn. +### [Tạo hình ảnh từ Excel – Xuất Pivot sang PNG trong C#](./create-image-from-excel-export-pivot-to-png-in-c/) +Hướng dẫn tạo hình ảnh PNG từ bảng Pivot trong Excel bằng Aspose.Cells cho C# một cách nhanh chóng và chi tiết. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md b/cells/vietnamese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md new file mode 100644 index 0000000000..2ee0f12dc1 --- /dev/null +++ b/cells/vietnamese/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-03-21 +description: Tạo hình ảnh từ Excel trong C# bằng Aspose.Cells. Tìm hiểu cách chuyển + đổi Excel sang hình ảnh, xuất pivot và lưu hình ảnh dưới dạng PNG với ví dụ đầy + đủ, có thể chạy được. +draft: false +keywords: +- create image from excel +- convert excel to image +- how to export pivot +- how to save image +- export excel to png +language: vi +og_description: Tạo hình ảnh từ Excel trong C# nhanh chóng. Hướng dẫn này chỉ cách + chuyển đổi Excel sang hình ảnh, xuất pivot và lưu hình ảnh dưới dạng PNG với mã + rõ ràng. +og_title: Tạo hình ảnh từ Excel – Xuất Pivot sang PNG trong C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Tạo hình ảnh từ Excel – Xuất Pivot sang PNG trong C# +url: /vi/net/conversion-and-rendering/create-image-from-excel-export-pivot-to-png-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo hình ảnh từ Excel – Xuất Pivot sang PNG trong C# + +Bạn đã bao giờ cần **create image from Excel** nhưng không chắc API nào nên dùng? Bạn không đơn độc—nhiều nhà phát triển gặp khó khăn khi họ cố gắng chuyển một bảng pivot đang hoạt động thành PNG có thể chia sẻ. + +Trong hướng dẫn này, chúng tôi sẽ hướng dẫn qua một giải pháp hoàn chỉnh, sẵn sàng chạy mà **converts Excel to image**, cho thấy **how to export pivot**, và giải thích **how to save image** dưới dạng tệp PNG. Khi kết thúc, bạn sẽ có một phương thức duy nhất thực hiện toàn bộ công việc, cùng với các mẹo cho các trường hợp đặc biệt mà bạn có thể gặp. + +## Những gì bạn cần + +- **Aspose.Cells for .NET** (gói NuGet `Aspose.Cells`). Đây là thư viện thương mại nhưng cung cấp chế độ đánh giá miễn phí—hoàn hảo để thử nghiệm. +- .NET 6+ (hoặc .NET Framework 4.6+). +- Một workbook Excel đơn giản (`Pivot.xlsx`) chứa ít nhất một bảng pivot. +- Bất kỳ IDE nào bạn thích—Visual Studio, Rider, hoặc thậm chí VS Code cũng hoạt động. + +Chỉ vậy thôi. Không cần DLL bổ sung, không cần COM interop, và không có các thủ thuật tự động Excel rắc rối. + +Bây giờ, chúng ta hãy đi sâu vào mã. + +## Bước 1: Tải Workbook – Tạo hình ảnh từ Excel + +Điều đầu tiên chúng ta làm là mở tệp Excel chứa bảng pivot. Bước này rất quan trọng vì trình render hoạt động trên một đối tượng `Workbook` trong bộ nhớ. + +```csharp +using Aspose.Cells; +using System.Drawing.Imaging; + +public class ExcelImageExporter +{ + /// + /// Loads the workbook and prepares it for rendering. + /// + /// Full path to the source .xlsx file. + /// The worksheet that contains the pivot. + private static Worksheet LoadPivotWorksheet(string excelPath) + { + // Step 1: Load the workbook that contains the pivot table + Workbook workbook = new Workbook(excelPath); + + // Assume the first sheet holds the pivot; adjust index if needed + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } +} +``` + +*Why this matters:* Tải workbook cho phép chúng ta truy cập vào **pivot** và bất kỳ định dạng nào sẽ được giữ khi chúng ta sau này **convert Excel to image**. Nếu bỏ qua bước này, trình render sẽ không có gì để làm việc. + +## Bước 2: Cấu hình tùy chọn xuất – Convert Excel to Image + +Tiếp theo chúng ta chỉ định cho Aspose cách chúng ta muốn hình ảnh cuối cùng trông như thế nào. Lớp `ImageOrPrintOptions` cho phép chúng ta chọn PNG, đặt DPI, và thậm chí kiểm soát màu nền. + +```csharp +private static ImageOrPrintOptions GetImageOptions() +{ + // Step 3: Configure image export options – we want a PNG image + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, // Export Excel to PNG + HorizontalResolution = 300, // High‑resolution output + VerticalResolution = 300, + OnePagePerSheet = true // Render the whole sheet as one page + }; + return imageOptions; +} +``` + +*Why this matters:* Bằng cách đặt DPI cao, chúng ta đảm bảo **export Excel to PNG** trông sắc nét, ngay cả khi pivot chứa nhiều hàng. Bạn có thể giảm DPI nếu lo ngại về kích thước tệp. + +## Bước 3: Render Worksheet – How to Export Pivot + +Bây giờ là phần cốt lõi của quy trình: chuyển worksheet (cùng pivot) thành hình ảnh. Lớp `WorksheetRender` thực hiện công việc nặng. + +```csharp +private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) +{ + // Step 4: Create a renderer for the worksheet using the options + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + + // Step 5: Render the first page (index 0) to an image file + renderer.ToImage(0, outputPath); +} +``` + +*Why this matters:* Đây là nơi chúng ta **how to export pivot** vào định dạng hình ảnh. Trình render tôn trọng tất cả định dạng pivot, slicer và kiểu điều kiện, vì vậy PNG trông chính xác như những gì bạn thấy trong Excel. + +## Bước 4: Kết hợp mọi thứ – How to Save Image + +Cuối cùng, chúng tôi công khai một phương thức công cộng duy nhất kết nối mọi phần lại với nhau. Đây là phương thức bạn sẽ gọi từ ứng dụng, dịch vụ hoặc công cụ console của mình. + +```csharp +/// +/// Converts an Excel file containing a pivot table into a PNG image. +/// +/// Path to the source .xlsx file. +/// Desired path for the output PNG. +public static void ExportPivotToPng(string excelFile, string imageFile) +{ + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); +} +``` + +### Ví dụ hoàn chỉnh + +Tạo một dự án console mới, thêm gói NuGet `Aspose.Cells`, sau đó đặt tệp `Program.cs` sau vào: + +```csharp +using System; +using Aspose.Cells; +using System.Drawing.Imaging; + +namespace ExcelPivotImageDemo +{ + class Program + { + static void Main(string[] args) + { + // Adjust these paths to your environment + string excelPath = @"C:\Temp\Pivot.xlsx"; + string pngPath = @"C:\Temp\PivotImage.png"; + + try + { + ExcelImageExporter.ExportPivotToPng(excelPath, pngPath); + Console.WriteLine($"✅ Image saved successfully: {pngPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed: {ex.Message}"); + } + } + } + + // ----- Helper class from earlier steps ----- + public class ExcelImageExporter + { + private static Worksheet LoadPivotWorksheet(string excelPath) + { + Workbook workbook = new Workbook(excelPath); + Worksheet pivotWorksheet = workbook.Worksheets[0]; + return pivotWorksheet; + } + + private static ImageOrPrintOptions GetImageOptions() + { + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + ImageFormat = ImageFormat.Png, + HorizontalResolution = 300, + VerticalResolution = 300, + OnePagePerSheet = true + }; + return imageOptions; + } + + private static void RenderWorksheetToImage(Worksheet sheet, string outputPath) + { + WorksheetRender renderer = new WorksheetRender(sheet, GetImageOptions()); + renderer.ToImage(0, outputPath); + } + + public static void ExportPivotToPng(string excelFile, string imageFile) + { + Worksheet pivotWorksheet = LoadPivotWorksheet(excelFile); + RenderWorksheetToImage(pivotWorksheet, imageFile); + } + } +} +``` + +**Expected result:** Sau khi chạy chương trình, `PivotImage.png` sẽ xuất hiện trong thư mục bạn chỉ định, hiển thị một ảnh chụp pixel‑perfect của bảng pivot. + +![Tạo hình ảnh từ Excel ví dụ](https://example.com/placeholder.png "Tạo hình ảnh từ Excel ví dụ") + +*Alt text:* ví dụ tạo hình ảnh từ excel hiển thị bảng pivot đã xuất dưới dạng PNG. + +## Câu hỏi thường gặp & Trường hợp đặc biệt + +### Nếu workbook của tôi có nhiều worksheet thì sao? + +Trợ giúp hiện tại lấy `Worksheets[0]`. Để chỉ định một sheet cụ thể, truyền tên sheet: + +```csharp +Worksheet pivotWorksheet = workbook.Worksheets["SalesPivot"]; +``` + +### PNG bị mờ—làm sao khắc phục? + +Tăng `HorizontalResolution` và `VerticalResolution` trong `GetImageOptions`. Giá trị 300–600 DPI thường cho kết quả sắc nét. Hãy nhớ, DPI cao hơn đồng nghĩa với kích thước tệp lớn hơn. + +### Pivot của tôi trải qua nhiều trang—có thể xuất tất cả các trang không? + +Có. Lặp qua `renderer.PageCount` và gọi `ToImage(pageIndex, ...)` cho mỗi trang, hoặc đặt `OnePagePerSheet = false` để nhận các hình ảnh riêng cho mỗi trang. + +### Tôi chỉ cần một phần của sheet (ví dụ, một vùng cụ thể)? + +Sử dụng `ImageOrPrintOptions` để đặt `PrintArea`: + +```csharp +imageOptions.PrintArea = "A1:D20"; +``` + +Bằng cách đó bạn **convert Excel to image** chỉ cho khu vực bạn quan tâm. + +### Điều này có hoạt động với tệp .xls (Excel 97‑2003) không? + +Chắc chắn. Aspose.Cells trừu tượng hoá định dạng tệp, vì vậy bạn có thể cung cấp `.xls`, `.xlsx`, `.xlsm`, hoặc thậm chí `.ods` và vẫn **export excel to png**. + +## Mẹo chuyên nghiệp & Lưu ý + +- **License matters**: Trong chế độ đánh giá, Aspose thêm watermark. Triển khai giấy phép hợp lệ cho môi trường production. +- **Memory usage**: Render các workbook lớn có thể tốn nhiều bộ nhớ. Hủy `Workbook` kịp thời hoặc bọc nó trong khối `using`. +- **Thread safety**: `Workbook` không an toàn với đa luồng. Tạo một thể hiện mới cho mỗi yêu cầu nếu bạn đang trong một dịch vụ web. +- **Image format flexibility**: Nếu bạn cần JPEG hoặc BMP, chỉ cần thay đổi `ImageFormat` trong `GetImageOptions`. + +## Kết luận + +Bây giờ bạn đã có một công thức toàn diện, đầu‑cuối để **create image from Excel**, cụ thể là **export pivot** dữ liệu dưới dạng PNG chất lượng cao. Đoạn mã trên hiển thị toàn bộ code có thể chạy, giải thích **how to save image**, và bao gồm các biến thể như nhiều sheet hoặc khu vực in tùy chỉnh. + +Bước tiếp theo? Hãy thử kết hợp exporter này với dịch vụ email để tự động gửi PNG, hoặc thử nghiệm với `ImageOrPrintOptions` để tạo PDF thay vì PNG. Mẫu tương tự hoạt động cho các nhiệm vụ **convert excel to image** trên nhiều định dạng. + +Có thêm câu hỏi? Để lại bình luận, 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/converting-excel-files-to-other-formats/_index.md b/cells/vietnamese/net/converting-excel-files-to-other-formats/_index.md index 4a064cfa75..b12cbfc6f1 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 @@ -46,6 +46,8 @@ Aspose.Cells for .NET đơn giản hóa việc chuyển đổi tài liệu, cho Tìm hiểu cách chuyển đổi CSV sang JSON trong .NET bằng Aspose.Cells. Hướng dẫn từng bước để chuyển đổi dữ liệu với các ví dụ mã dễ làm theo. ### [Chuyển đổi tệp Excel sang DOCX theo chương trình trong .NET](./converting-excel-file-to-docx/) Tìm hiểu cách chuyển đổi tệp Excel sang DOCX theo chương trình bằng Aspose.Cells cho .NET trong hướng dẫn từng bước này. Hoàn hảo để tạo báo cáo và chia sẻ dữ liệu. +### [Lưu Excel dưới dạng Docx với C# – Hướng dẫn chi tiết từng bước](./save-excel-as-docx-with-c-complete-step-by-step-guide/) +Hướng dẫn chi tiết cách lưu tệp Excel thành định dạng Docx bằng C# sử dụng Aspose.Cells cho .NET. ### [Chuyển đổi tệp Excel sang HTML bằng Tooltip trong .NET](./converting-excel-file-to-html-with-tooltip/) Chuyển đổi Excel sang HTML với chú giải công cụ bằng Aspose.Cells cho .NET trong vài bước đơn giản. Nâng cao ứng dụng web của bạn với dữ liệu Excel tương tác một cách dễ dàng. ### [Chuyển đổi tệp Excel sang Markdown theo chương trình trong .NET](./converting-excel-file-to-markdown/) diff --git a/cells/vietnamese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md b/cells/vietnamese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md new file mode 100644 index 0000000000..aae7ae4e8b --- /dev/null +++ b/cells/vietnamese/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-21 +description: Lưu Excel dưới dạng Docx trong C# — học cách chuyển đổi Excel sang Word, + nhúng biểu đồ và tải workbook Excel trong C# bằng Aspose.Cells. +draft: false +keywords: +- save excel as docx +- convert excel to word +- convert excel to docx +- embed excel charts +- load excel workbook c# +language: vi +og_description: Lưu Excel dưới dạng Docx trong C# được giải thích trong câu đầu tiên. + Hãy làm theo hướng dẫn này để chuyển đổi Excel sang Word, nhúng biểu đồ và tải workbook + Excel bằng C#. +og_title: Lưu Excel thành Docx bằng C# – Hướng dẫn đầy đủ +tags: +- C# +- Aspose.Cells +- Document Conversion +title: Lưu Excel thành Docx bằng C# – Hướng dẫn chi tiết từng bước +url: /vi/net/converting-excel-files-to-other-formats/save-excel-as-docx-with-c-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Lưu Excel dưới dạng Docx bằng C# – Hướng dẫn chi tiết từng bước + +Bạn đã bao giờ cần **save Excel as Docx** nhưng không biết bắt đầu từ đâu chưa? Bạn không đơn độc—nhiều nhà phát triển gặp cùng một khó khăn khi muốn *convert Excel to Word* trong khi vẫn giữ nguyên biểu đồ. Trong hướng dẫn này, chúng tôi sẽ đi qua đoạn mã chính xác bạn cần, giải thích lý do mỗi dòng quan trọng, và chỉ cho bạn cách nhúng biểu đồ Excel mà không mất chất lượng. + +Chúng tôi cũng sẽ thêm một vài mẹo bổ sung về các kịch bản **load Excel workbook C#**, để cuối cùng bạn sẽ cảm thấy thoải mái khi chuyển đổi Excel sang Docx trong bất kỳ dự án .NET nào. Không có những tham chiếu mơ hồ, chỉ có một ví dụ cụ thể, có thể chạy được mà bạn có thể sao chép‑dán ngay lập tức. + +--- + +## Những gì hướng dẫn này bao gồm + +- Tải tệp `.xlsx` hiện có bằng Aspose.Cells (hoặc bất kỳ thư viện tương thích nào). +- Thao tác tùy chọn trên các worksheet hoặc biểu đồ trước khi chuyển đổi. +- Lưu workbook dưới dạng tệp `.docx` trong khi giữ nguyên các biểu đồ được nhúng. +- Xác minh đầu ra và xử lý các trường hợp góc phổ biến như workbook lớn hoặc các loại biểu đồ không được hỗ trợ. + +Nếu bạn tự hỏi **tại sao bạn muốn convert Excel to Docx**, hãy nghĩ đến các báo cáo bạn cần gửi cho những người không chuyên môn—tài liệu Word được chấp nhận rộng rãi, và chúng giữ nguyên độ trung thực hình ảnh của biểu đồ. Hãy cùng khám phá. + +--- + +## Yêu cầu trước – Load Excel Workbook C# + +Trước khi viết bất kỳ mã nào, hãy chắc chắn bạn có những thứ sau: + +| Yêu cầu | Lý do | +|---------|-------| +| **.NET 6.0 hoặc mới hơn** | Môi trường chạy hiện đại, hiệu năng tốt hơn, và hỗ trợ đầy đủ cho Aspose.Cells. | +| **Aspose.Cells for .NET** (gói NuGet `Aspose.Cells`) | Cung cấp lớp `Workbook` dùng để đọc Excel và xuất ra DOCX. | +| **Visual Studio 2022** (hoặc bất kỳ IDE nào bạn thích) | Tiện lợi cho việc gỡ lỗi và IntelliSense. | +| **Một tệp Excel có biểu đồ** (`AdvancedCharts.xlsx`) | Để thấy tính năng *embed excel charts* hoạt động. | + +Bạn có thể cài đặt thư viện qua Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +> **Pro tip:** Nếu bạn đang trên pipeline CI/CD, hãy thêm gói vào `*.csproj` để việc khôi phục diễn ra tự động. + +--- + +## Bước 1 – Tải Workbook Excel (Bắt đầu Save Excel as Docx) + +Điều đầu tiên chúng ta làm là tải workbook nguồn. Đây là nơi cụm từ **load excel workbook c#** được áp dụng. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Step 1: Load the Excel workbook that contains the advanced charts + string sourcePath = @"YOUR_DIRECTORY\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded successfully."); +``` + +> **Why this matters:** Việc tải tệp cho phép bạn truy cập vào mọi worksheet, biểu đồ và kiểu dáng. Nếu bỏ qua bước này, sẽ không có gì để chuyển đổi và API không thể giữ lại các đồ họa được nhúng của bạn. + +--- + +## Bước 2 – (Tùy chọn) Điều chỉnh Workbook trước khi chuyển đổi + +Bạn có thể muốn đổi tên sheet, ẩn cột, hoặc thậm chí thay đổi tiêu đề của biểu đồ. Bước này là tùy chọn nhưng cho thấy khả năng linh hoạt của quá trình chuyển đổi. + +```csharp + // Optional: Rename the first worksheet for clarity + workbook.Worksheets[0].Name = "Summary"; + + // Optional: Update a chart title if needed + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + Console.WriteLine("Optional modifications applied."); +``` + +> **Edge case:** Một số loại biểu đồ cũ (ví dụ, Radar) có thể không hiển thị hoàn hảo trong Word. Hãy kiểm tra các biểu đồ cụ thể của bạn sau khi chuyển đổi. + +--- + +## Bước 3 – Lưu Workbook dưới dạng tài liệu Word (Hành động cốt lõi “Save Excel as Docx”) + +Bây giờ là thời điểm quyết định: chúng ta thực sự **save Excel as Docx**. + +```csharp + // Step 3: Save the workbook as a Word document, preserving the charts in the .docx file + string outputPath = @"YOUR_DIRECTORY\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Workbook saved as DOCX at: {outputPath}"); + } +} +``` + +Khi chạy, Aspose.Cells sẽ ghi mỗi worksheet dưới dạng bảng trong tệp Word và nhúng mỗi biểu đồ dưới dạng hình ảnh độ phân giải cao. Kết quả là một tệp `.docx` có thể chỉnh sửa hoàn toàn, trông giống hệt như giao diện Excel gốc. + +> **Why choose DOCX over PDF?** DOCX cho phép người nhận chỉnh sửa văn bản hoặc thay thế biểu đồ sau này, trong khi PDF là một ảnh chụp tĩnh. + +--- + +## Bước 4 – Xác minh đầu ra và khắc phục các vấn đề thường gặp + +Sau khi quá trình chuyển đổi hoàn tất, mở `ChartsInWord.docx` trong Microsoft Word: + +1. **Kiểm tra rằng mỗi worksheet xuất hiện như một phần riêng** – bạn nên thấy các bảng phản ánh dữ liệu Excel của mình. +2. **Xác nhận rằng các biểu đồ được nhúng** – chúng phải là các hình ảnh có thể chọn được, không phải các placeholder bị hỏng. +3. **Nếu một biểu đồ bị thiếu**, hãy chắc chắn loại biểu đồ đó được Aspose.Cells hỗ trợ (xem [official compatibility list](https://docs.aspose.com/cells/net/supported-chart-types/)). + +> **Pro tip:** Đối với workbook lớn, hãy cân nhắc tăng `MemorySetting` của Aspose.Cells để tránh `OutOfMemoryException`: + +```csharp +WorkbookSettings settings = new WorkbookSettings +{ + MemorySetting = MemorySetting.MemoryPreference +}; +Workbook largeWorkbook = new Workbook(sourcePath, settings); +``` + +--- + +## Ví dụ đầy đủ (Sẵn sàng sao chép‑dán) + +Dưới đây là chương trình hoàn chỉnh, sẵn sàng biên dịch. Thay thế `YOUR_DIRECTORY` bằng đường dẫn thư mục thực tế trên máy của bạn. + +```csharp +using Aspose.Cells; +using System; + +class ExcelToDocxConverter +{ + static void Main() + { + // Load the workbook containing charts + string sourcePath = @"C:\Docs\AdvancedCharts.xlsx"; + Workbook workbook = new Workbook(sourcePath); + Console.WriteLine("Workbook loaded."); + + // Optional: Rename sheet and update chart titles + workbook.Worksheets[0].Name = "Summary"; + foreach (Worksheet sheet in workbook.Worksheets) + { + foreach (Chart chart in sheet.Charts) + { + chart.Title.Text = "Quarterly Sales Overview"; + } + } + + // Save as DOCX – this is the core save excel as docx step + string outputPath = @"C:\Docs\ChartsInWord.docx"; + workbook.Save(outputPath, SaveFormat.Docx); + Console.WriteLine($"Saved as DOCX: {outputPath}"); + } +} +``` + +**Expected result:** Một tài liệu Word (`ChartsInWord.docx`) chứa tất cả các worksheet dưới dạng bảng và mọi biểu đồ dưới dạng hình ảnh nhúng, độ phân giải cao. Mở nó trong Word, và bạn sẽ thấy bố cục hình ảnh chính xác như trong Excel. + +--- + +## Câu hỏi thường gặp (FAQ) + +**Q: Tôi có thể chuyển đổi nhiều tệp Excel trong một vòng lặp không?** +A: Chắc chắn. Đặt logic chuyển đổi trong vòng lặp `foreach (var file in Directory.GetFiles(...))` và tái sử dụng cùng một mẫu instance `Workbook`. + +**Q: Điều này cũng hoạt động với các tệp `.xls` không?** +A: Có—Aspose.Cells hỗ trợ các định dạng legacy. Chỉ cần thay đổi phần mở rộng nguồn; lời gọi `SaveFormat.Docx` vẫn áp dụng. + +**Q: Nếu tôi cần giữ công thức khi chuyển đổi thì sao?** +A: Word không hỗ trợ công thức Excel một cách native. Quá trình chuyển đổi sẽ làm phẳng công thức thành giá trị đã tính toán. Nếu bạn cần tính toán trực tiếp, hãy xem xét nhúng workbook dưới dạng OLE object thay vì. + +**Q: Có cách nào để kiểm soát độ phân giải hình ảnh của biểu đồ không?** +A: Sử dụng `ImageOrPrintOptions` trước khi lưu: + +```csharp +ImageOrPrintOptions imgOptions = new ImageOrPrintOptions +{ + Resolution = 300 // DPI +}; +workbook.Settings.ImageOrPrintOptions = imgOptions; +``` + +--- + +## Bonus: Nhúng biểu đồ Excel trực tiếp vào Word (Ngoài Save Excel as Docx) + +Nếu bạn muốn biểu đồ vẫn có thể chỉnh sửa trong Word, bạn có thể nhúng toàn bộ sheet Excel dưới dạng OLE object: + +```csharp +// Using Aspose.Words to embed the workbook +using Aspose.Words; +using Aspose.Words.Drawing; + +Document wordDoc = new Document(); +DocumentBuilder builder = new DocumentBuilder(wordDoc); +builder.InsertOleObject(sourcePath, false, null, null); +wordDoc.Save(@"C:\Docs\EmbeddedWorkbook.docx"); +``` + +Kỹ thuật này *embed excel charts* dưới dạng đối tượng sống, cho phép người dùng cuối nhấp đúp để chỉnh sửa chúng trong Excel trực tiếp từ Word. Đây là một lựa chọn tiện lợi khi bạn cần tính tương tác. + +--- + +## Kết luận + +Bây giờ bạn đã có một giải pháp toàn diện, đầu‑cuối cho **save Excel as docx** bằng C#. Hướng dẫn đã bao gồm việc tải workbook, các điều chỉnh tùy chọn, thao tác lưu thực tế, các bước xác minh, và thậm chí một cái nhìn nhanh về việc nhúng biểu đồ cho các kịch bản có thể chỉnh sửa. Bằng cách theo dõi mã trên, bạn có thể **convert Excel to Word**, giữ nguyên mọi biểu đồ, và xử lý các tệp lớn một cách suôn sẻ. + +Sẵn sàng cho thử thách tiếp theo? Hãy thử tự động hoá chuyển đổi hàng loạt, tích hợp logic này vào một ASP.NET Core API, hoặc khám phá **convert Excel to docx** cho các bảng điều khiển đa sheet. Những kỹ năng bạn vừa học là nền tảng cho bất kỳ dự án tự động hoá tài liệu nào. + +Có câu hỏi hoặc một workbook khó chịu không chuyển đổi? Hãy để lại bình luận, và chúng tôi sẽ cùng bạn khắc phục. Chúc lập trình vui vẻ! + +![Diagram showing the flow from Excel workbook to Word DOCX file – save excel as docx process illustration](https://example.com/images/save-excel-as-docx.png "Save Excel as Docx workflow") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..2356fe0bfe 100644 --- a/cells/vietnamese/net/document-properties/_index.md +++ b/cells/vietnamese/net/document-properties/_index.md @@ -35,6 +35,8 @@ Tìm hiểu cách truy cập các thuộc tính tài liệu trong Excel bằng A 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/) 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 – Thêm thuộc tính tùy chỉnh trong C#](./how-to-save-xlsb-add-custom-property-in-c/) +Tìm hiểu cách lưu tệp XLSB và thêm thuộc tính tùy chỉnh trong C# bằng Aspose.Cells cho .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md b/cells/vietnamese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md new file mode 100644 index 0000000000..71785eb190 --- /dev/null +++ b/cells/vietnamese/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-03-21 +description: Tìm hiểu cách lưu tệp xlsb trong C# đồng thời thêm thuộc tính tùy chỉnh + như ProjectId. Hướng dẫn này cho thấy cách tạo một workbook Excel, thêm thuộc tính + tùy chỉnh và xác minh nó. +draft: false +keywords: +- how to save xlsb +- add custom property +- create excel workbook +- how to add custom property +- add project id +language: vi +og_description: Khám phá cách lưu tệp xlsb và thêm thuộc tính tùy chỉnh như ProjectId + bằng C#. Hướng dẫn chi tiết từng bước kèm mã nguồn đầy đủ. +og_title: Cách lưu XLSB – Thêm thuộc tính tùy chỉnh trong C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: Cách lưu XLSB – Thêm thuộc tính tùy chỉnh trong C# +url: /vi/net/document-properties/how-to-save-xlsb-add-custom-property-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Lưu XLSB – Thêm Thuộc Tính Tùy Chỉnh trong C# + +Bạn đã bao giờ tự hỏi **cách lưu xlsb** file đồng thời chèn một phần siêu dữ liệu bên trong chưa? Có thể bạn đang xây dựng một engine báo cáo cần một ProjectId ẩn, hoặc bạn chỉ muốn gắn thẻ các worksheet để xử lý sau. **Cách lưu xlsb** không phải là khoa học tên lửa, nhưng khi kết hợp với thuộc tính tùy chỉnh sẽ có một chút khúc mắc mà nhiều nhà phát triển bỏ qua. + +Trong tutorial này chúng ta sẽ đi qua các bước tạo một workbook Excel, thêm một custom property (đúng, *add custom property*), lưu file dưới dạng **XLSB** binary workbook, và cuối cùng tải lại để chứng minh thuộc tính vẫn còn. Trong quá trình này chúng ta cũng sẽ đề cập tới **cách thêm custom property** như ProjectId, để bạn có một mẫu có thể tái sử dụng cho các dự án tương lai. + +> **Mẹo chuyên nghiệp:** Nếu bạn đã sử dụng thư viện Aspose.Cells (mã dưới đây dùng), bạn sẽ nhận được hỗ trợ native cho custom properties mà không gặp rắc rối COM interop. + +--- + +## Yêu cầu trước + +- .NET 6+ (hoặc .NET Framework 4.6+). +- Aspose.Cells for .NET – cài đặt qua NuGet: `Install-Package Aspose.Cells`. +- Kiến thức cơ bản về C# – không cần gì phức tạp, chỉ vài câu lệnh `using`. + +Đó là tất cả. Không cần cài Office, không cần interop, chỉ thuần mã quản lý. + +--- + +## Bước 1: Cách Lưu XLSB – Tạo Excel Workbook + +Điều đầu tiên bạn cần làm là tạo một đối tượng workbook mới. Hãy tưởng tượng nó như việc mở một file Excel trống chỉ tồn tại trong bộ nhớ cho đến khi bạn quyết định ghi ra đĩa. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // Step 1: Create a new workbook instance + Workbook workbook = new Workbook(); + + // (Optional) Give the first worksheet a friendly name + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // From here we can start adding data or properties… +``` + +Tại sao bắt đầu bằng workbook? Bởi vì **create excel workbook** là nền tảng cho mọi thao tác tiếp theo—dù bạn sau này chèn công thức, biểu đồ, hay custom properties. Lớp `Workbook` đại diện cho toàn bộ file, trong khi `Worksheets` cho phép bạn truy cập từng tab riêng lẻ. + +--- + +## Bước 2: Thêm Custom Property vào Worksheet + +Bây giờ đến phần thú vị—**add custom property**. Trong Aspose.Cells bạn có thể gắn một thuộc tính trực tiếp vào worksheet (hoặc vào toàn bộ workbook). Ở đây chúng ta sẽ lưu một ProjectId dạng số mà các dịch vụ downstream có thể đọc mà không cần chạm vào các ô hiển thị. + +```csharp + // Step 2: Add a custom property called "ProjectId" + // The value 12345 could come from your database, config, etc. + sheet.CustomProperties.Add("ProjectId", 12345); + + // You can also add string or date properties: + // sheet.CustomProperties.Add("Author", "Jane Doe"); + // sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); +``` + +**Cách thêm custom property**? Chỉ cần gọi `CustomProperties.Add(name, value)`. API sẽ tự động xử lý XML bên dưới, vì vậy bạn không phải lo lắng về các chi tiết mức thấp. Đây là cách an toàn nhất để nhúng metadata không hiển thị với người dùng cuối. + +--- + +## Bước 3: Lưu Workbook dưới dạng XLSB + +Với workbook đã sẵn sàng và custom property đã được gắn, đã đến lúc **how to save xlsb**. Định dạng XLSB lưu dữ liệu dưới dạng nhị phân, thường nhỏ hơn và mở nhanh hơn so với XLSX truyền thống. + +```csharp + // Step 3: Define the output path – adjust as needed + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + + // Save the workbook in XLSB format + workbook.Save(outputPath, SaveFormat.Xlsb); + + Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Lưu dưới dạng XLSB đơn giản chỉ cần truyền `SaveFormat.Xlsb` vào phương thức `Save`. Nếu bạn lo lắng rằng việc này sẽ xóa bỏ custom property—đừng lo, Aspose.Cells sẽ giữ nguyên cả thuộc tính ở mức workbook và worksheet trong file nhị phân. + +--- + +## Bước 4: Xác Nhận Custom Property + +Một thói quen tốt là tải lại file và kiểm tra xem thuộc tính có còn tồn tại sau vòng quay không. Điều này cũng minh họa **cách thêm custom property** sau này nếu bạn cần cập nhật. + +```csharp + // Step 4: Load the saved XLSB to verify the property + Workbook loaded = new Workbook(outputPath); + + // Retrieve the first worksheet again + Worksheet loadedSheet = loaded.Worksheets[0]; + + // Access the "ProjectId" custom property + var projectId = loadedSheet.CustomProperties["ProjectId"].Value; + + Console.WriteLine($"Loaded ProjectId: {projectId}"); // Should print 12345 + } +} +``` + +Nếu console in ra `12345`, bạn đã thành công **how to save xlsb** *và* **add project id** trong một lần. Thuộc tính nằm trong metadata nội bộ của file, không hiển thị trên UI nhưng có thể đọc được bằng code. + +--- + +## Mẹo Bổ Sung: Thêm Nhiều Thuộc Tính & Các Trường Hợp Đặc Biệt + +### Thêm Nhiều Thuộc Tính + +Bạn có thể xếp bao nhiêu thuộc tính tùy thích: + +```csharp +sheet.CustomProperties.Add("Department", "Finance"); +sheet.CustomProperties.Add("IsConfidential", true); +``` + +### Cập Nhật Thuộc Tính Đã Tồn Tại + +Nếu một thuộc tính đã tồn tại, chỉ cần gán giá trị mới: + +```csharp +sheet.CustomProperties["ProjectId"].Value = 67890; // Overwrites the old ID +``` + +### Xử Lý Thuộc Tính Thiếu + +Cố gắng đọc một thuộc tính không tồn tại sẽ ném `KeyNotFoundException`. Hãy bảo vệ lại: + +```csharp +if (sheet.CustomProperties.ContainsKey("ClientCode")) +{ + var clientCode = sheet.CustomProperties["ClientCode"].Value; + // Use clientCode... +} +else +{ + Console.WriteLine("ClientCode property not found."); +} +``` + +### Tương Thích Đa Phiên Bản + +XLSB hoạt động trên Excel 2007 + và trên phiên bản web của Excel. Tuy nhiên, các phiên bản Office cũ hơn (< 2007) không thể mở file XLSB. Nếu bạn cần khả năng tương thích rộng hơn, hãy cân nhắc lưu một bản sao thứ hai dưới dạng XLSX. + +### Cân Nhắc Hiệu Suất + +File XLSB nhị phân thường nhỏ hơn 30‑50 % so với XLSX và tải nhanh hơn. Đối với các bộ dữ liệu lớn (hàng trăm ngàn dòng), lợi thế về tốc độ sẽ đáng chú ý. + +--- + +## Ví Dụ Hoàn Chỉnh + +Dưới đây là toàn bộ chương trình bạn có thể sao chép‑dán vào một dự án console. Nó bao gồm tất cả các bước, xử lý lỗi, và chú thích cần thiết để bạn có thể chạy ngay lập tức. + +```csharp +using Aspose.Cells; +using System; + +class SaveXlsbWithCustomProperty +{ + static void Main() + { + try + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + sheet.Name = "DataSheet"; + + // 2️⃣ Add a custom property (ProjectId) – this is how to add custom property + sheet.CustomProperties.Add("ProjectId", 12345); + sheet.CustomProperties.Add("CreatedBy", Environment.UserName); + sheet.CustomProperties.Add("GeneratedOn", DateTime.UtcNow); + + // 3️⃣ Save as XLSB – this shows how to save xlsb + string path = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(path, SaveFormat.Xlsb); + Console.WriteLine($"✅ Workbook saved as XLSB to {path}"); + + // 4️⃣ Load the file back and verify the property + Workbook loaded = new Workbook(path); + Worksheet loadedSheet = loaded.Worksheets[0]; + + if (loadedSheet.CustomProperties.ContainsKey("ProjectId")) + { + var projId = loadedSheet.CustomProperties["ProjectId"].Value; + Console.WriteLine($"🔎 Loaded ProjectId: {projId}"); // Expected: 12345 + } + else + { + Console.WriteLine("❗ ProjectId not found after loading."); + } + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } +} +``` + +**Kết quả mong đợi** + +``` +✅ Workbook saved as XLSB to C:\Temp\WithCustomProp.xlsb +🔎 Loaded ProjectId: 12345 +``` + +Nếu bạn thấy đầu ra như trên, bạn đã thành thạo **how to save xlsb**, **add custom property**, và **add project id**—tất cả trong một đoạn mã gọn gàng, có thể tái sử dụng. + +--- + +## Câu Hỏi Thường Gặp + +**Hỏi: Điều này có hoạt động với .NET Core không?** +Đáp: Hoàn toàn có. Aspose.Cells tương thích với .NET Standard, vì vậy cùng một đoạn code chạy trên .NET 5/6/7 và .NET Framework. + +**Hỏi: Tôi có thể thêm custom property cho toàn bộ workbook thay vì một sheet riêng lẻ không?** +Đáp: Có. Dùng `workbook.CustomProperties.Add("Key", value);` để gắn ở mức workbook. + +**Hỏi: Nếu tôi cần lưu một chuỗi lớn (ví dụ JSON) làm property thì sao?** +Đáp: API chấp nhận chuỗi bất kỳ độ dài nào, nhưng lưu ý rằng blob quá lớn có thể làm tăng kích thước file. Đối với dữ liệu khổng lồ, hãy cân nhắc dùng một sheet ẩn thay vì property. + +**Hỏi: Custom property có hiển thị trong UI của Excel không?** +Đáp: Không trực tiếp. Người dùng có thể xem qua **File → Info → Properties → Advanced Properties → Custom**, nhưng nó sẽ không xuất hiện trong lưới ô. + +--- + +## Kết Luận + +Chúng ta đã khám phá **cách lưu xlsb** trong C# đồng thời **thêm custom property** như ProjectId. Bằng cách tuân theo quy trình từng bước—**create excel workbook**, **add custom property**, **save as XLSB**, và **verify**—bạn đã có một tài liệu tham khảo vững chắc, hữu ích cho cả công cụ tìm kiếm và trợ lý AI. + +Tiếp theo, bạn có thể khám phá: + +- **Cách thêm custom property** cho nhiều worksheet trong một vòng lặp. +- Xuất dữ liệu từ DataTable vào workbook trước khi lưu. +- Mã hoá file XLSB để tăng bảo mật. + +Hãy thoải mái thử nghiệm, thay đổi tên thuộc tính, hoặc chuyển sang định dạng nhị phân khác như XLSX nếu cần tính tương thích rộng hơn. Gặp tình huống khó? Để lại bình luận, chúng tôi sẽ cùng bạn giải quyết. Chúc lập trình vui vẻ! + +![how to save xlsb example]( + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-autofilter-validation/_index.md b/cells/vietnamese/net/excel-autofilter-validation/_index.md index c671dd1d30..36d6a65b46 100644 --- a/cells/vietnamese/net/excel-autofilter-validation/_index.md +++ b/cells/vietnamese/net/excel-autofilter-validation/_index.md @@ -36,6 +36,8 @@ Hướng dẫn của chúng tôi về [Xác thực dữ liệu thập phân tron Tìm hiểu cách tự động lọc các hàng Excel bằng Aspose.Cells trong .NET một cách dễ dàng với hướng dẫn từng bước toàn diện này. ### [Xác thực dữ liệu thập phân trong Excel](./decimal-data-validation-in-excel/) Khám phá cách triển khai xác thực dữ liệu thập phân trong Excel bằng Aspose.Cells cho .NET với hướng dẫn dễ làm theo của chúng tôi. Nâng cao tính toàn vẹn của dữ liệu một cách dễ dàng. +### [Xóa AutoFilter trong Excel – Hướng dẫn đầy đủ C#](./remove-autofilter-from-excel-complete-c-guide/) +Hướng dẫn chi tiết cách loại bỏ AutoFilter trong Excel bằng C# sử dụng Aspose.Cells cho .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md b/cells/vietnamese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..178667adb0 --- /dev/null +++ b/cells/vietnamese/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-21 +description: Tìm hiểu cách loại bỏ AutoFilter khỏi Excel bằng C#. Hướng dẫn chi tiết + này cũng chỉ cách xóa AutoFilter, tắt AutoFilter trong Excel và xóa bộ lọc của bảng + Excel. +draft: false +keywords: +- remove autofilter from excel +- how to delete autofilter +- remove excel table filter +- turn off autofilter excel +- clear excel table filter +language: vi +og_description: Xóa AutoFilter khỏi Excel bằng C#. Hướng dẫn này chỉ cho bạn cách + xóa AutoFilter, tắt AutoFilter trong Excel và xóa bộ lọc bảng Excel chỉ trong vài + dòng mã. +og_title: Xóa AutoFilter khỏi Excel – Hướng dẫn C# đầy đủ +tags: +- C# +- Aspose.Cells +- Excel automation +title: Xóa AutoFilter khỏi Excel – Hướng dẫn C# toàn diện +url: /vi/net/excel-autofilter-validation/remove-autofilter-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Xóa AutoFilter khỏi Excel – Hướng dẫn C# đầy đủ + +Bạn đã bao giờ cần **remove AutoFilter from Excel** nhưng không chắc gọi API nào thực sự tắt nó không? Bạn không phải là người duy nhất. Trong nhiều quy trình báo cáo, giao diện bộ lọc gây cản trở cho việc xử lý downstream, vì vậy việc xóa sạch nó là một yêu cầu phổ biến. Trong hướng dẫn này, chúng tôi sẽ trình bày một giải pháp ngắn gọn, sẵn sàng cho sản xuất, không chỉ cho thấy **how to delete AutoFilter**, mà còn giải thích **turn off AutoFilter Excel** kiểu bộ lọc, và cách **clear Excel table filter** hoàn toàn. + +> **Bạn sẽ có được:** một chương trình C# sẵn sàng chạy, tải một workbook hiện có, xóa bộ lọc khỏi bảng đầu tiên, và lưu một bản sao mới mà không có bất kỳ thành phần UI nào còn lại. + +## Yêu cầu trước + +- .NET 6+ (hoặc .NET Framework 4.7.2+) +- Gói NuGet **Aspose.Cells** (API chúng tôi sử dụng trong mã) +- Một workbook mẫu (`TableWithFilter.xlsx`) đã chứa một bảng với AutoFilter được áp dụng +- Kiến thức cơ bản về cú pháp C# (không cần hiểu sâu về nội bộ Excel) + +Nếu bạn đã có những thứ trên, hãy bắt đầu. + +--- + +## Bước 1 – Cài đặt Aspose.Cells và Thiết lập Dự án + +Trước khi bất kỳ mã nào chạy, bạn cần thư viện cung cấp các lớp `Workbook`, `Worksheet`, và `ListObject`. + +```bash +dotnet add package Aspose.Cells +``` + +> **Mẹo chuyên nghiệp:** Sử dụng phiên bản đánh giá miễn phí để thử nghiệm; chỉ cần nhớ thiết lập khóa giấy phép trước khi đưa vào sản xuất. + +### Tại sao điều này quan trọng +Aspose.Cells trừu tượng hóa việc xử lý OOXML mức thấp, vì vậy chúng ta có thể thao tác các bảng, bộ lọc và kiểu dáng mà không cần tự phân tích XML. Đó là lý do tại sao các nhiệm vụ **remove autofilter from excel** trở thành một dòng lệnh thay vì phải xử lý nhiều XML. + +--- + +## Bước 2 – Tải Workbook chứa Bảng + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Path to the source workbook (replace with your actual folder) + string sourcePath = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + + // Load the workbook into memory + Workbook workbook = new Workbook(sourcePath); +``` + +Đối tượng `Workbook` đại diện cho toàn bộ tệp Excel. Việc tải nó trước đảm bảo chúng ta có một bản sao sạch trong bộ nhớ để làm việc, điều này quan trọng khi bạn sau này **clear excel table filter** mà không ảnh hưởng đến các sheet khác. + +--- + +## Bước 3 – Lấy Worksheet và Bảng Mục tiêu + +```csharp + // Step 3: Get the first worksheet where the table lives + Worksheet worksheet = workbook.Worksheets[0]; + + // Access the first ListObject (Excel table) on that sheet + ListObject table = worksheet.ListObjects[0]; +``` + +Một **ListObject** là thuật ngữ của Aspose cho một bảng Excel. Ngay cả khi sheet của bạn có nhiều bảng, bạn có thể lặp qua `worksheet.ListObjects` và áp dụng cùng một logic cho mỗi bảng. Sự linh hoạt này trả lời câu hỏi “nếu tôi có nhiều bảng thì sao?” mà nhiều nhà phát triển đặt ra. + +--- + +## Bước 4 – Xóa AutoFilter khỏi Bảng + +```csharp + // Step 4: Remove the entire AutoFilter from the table + table.AutoFilter = null; // Explicitly nullify the filter + // Alternative: table.ShowAutoFilter = false; // hides the filter dropdown +``` + +Đặt `AutoFilter` thành `null` **loại bỏ hoàn toàn đối tượng bộ lọc**, đây là cách đáng tin cậy nhất để **how to delete autofilter**. Thuộc tính thay thế `ShowAutoFilter` chỉ ẩn giao diện UI nhưng để lại bộ lọc hoạt động—hữu ích nếu bạn chỉ muốn **turn off autofilter excel** về mặt hình ảnh trong khi vẫn giữ các tiêu chí nền. + +> **Trường hợp đặc biệt:** Nếu bảng không có AutoFilter được áp dụng, `table.AutoFilter` sẽ đã là `null`. Dòng trên an toàn; nó chỉ không thực hiện gì. + +--- + +## Bước 5 – Lưu Workbook đã sửa đổi + +```csharp + // Step 5: Persist the changes to a new file + string outputPath = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + workbook.Save(outputPath); + + System.Console.WriteLine($"AutoFilter removed successfully. Saved to {outputPath}"); + } +} +``` + +Lưu vào một tệp mới giữ nguyên bản gốc—đây là thực hành tốt khi tự động hóa chuyển đổi Excel. Sau khi chạy chương trình, mở `NoAutoFilter.xlsx`; bạn sẽ thấy bảng không còn bất kỳ menu thả xuống bộ lọc nào, xác nhận rằng thao tác **remove excel table filter** đã thành công. + +--- + +## Xác minh Kết quả – Điều mong đợi + +1. **Mở `NoAutoFilter.xlsx`** trong Excel. +2. **Chọn bảng** – các biểu tượng phễu nhỏ bên cạnh tiêu đề cột sẽ biến mất. +3. **Kiểm tra các sheet khác** – chúng vẫn không bị thay đổi, chứng minh rằng chúng ta chỉ **clear excel table filter** trên sheet mong muốn. + +Nếu các biểu tượng vẫn còn, hãy kiểm tra lại rằng bạn đã nhắm đúng chỉ mục `ListObject`. Nhớ rằng, các bảng Excel trong Aspose được đánh số bắt đầu từ 0, vì vậy `ListObjects[0]` là bảng đầu tiên trên sheet. + +--- + +## Xử lý Nhiều Bảng hoặc Worksheet + +Đôi khi bạn cần **remove autofilter from excel** các workbook chứa nhiều bảng trên các sheet khác nhau. Dưới đây là một phần mở rộng nhanh: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + foreach (ListObject tbl in ws.ListObjects) + { + tbl.AutoFilter = null; // removes filter from every table + } +} +``` + +Vòng lặp này đảm bảo **turn off autofilter excel** ở mọi nơi, loại bỏ bất kỳ bộ lọc ẩn nào có thể gây rắc rối cho việc nhập dữ liệu downstream. + +--- + +## Những Cạm Bẫy Thường Gặp & Cách Tránh + +| Vấn đề | Nguyên nhân | Cách khắc phục | +|--------|-------------|----------------| +| **Bộ lọc vẫn còn sau khi lưu** | Sử dụng `ShowAutoFilter = false` chỉ ẩn UI. | Sử dụng `table.AutoFilter = null` để thực sự xóa nó. | +| **Chỉ mục bảng sai** | Giả sử bảng đầu tiên là bảng cần thiết. | Kiểm tra `worksheet.ListObjects.Count` và sử dụng tên có ý nghĩa (`tbl.Name`). | +| **Thiếu giấy phép** | Phiên bản đánh giá có thể chèn watermark. | Đăng ký giấy phép sớm: `License license = new License(); license.SetLicense("Aspose.Cells.lic");` | +| **Tệp bị khóa** | Excel vẫn mở tệp nguồn. | Đảm bảo workbook đã được đóng trong Excel trước khi chạy script. | + +--- + +## Thêm Bonus: Thêm AutoFilter lại (Nếu Bạn Thay Đổi Ý Định) + +```csharp +// Re‑enable AutoFilter on a specific column (e.g., column A) +table.AutoFilter = table.AutoFilterRange; // recreates the filter object +table.AutoFilter.Range.FirstRow = table.Range.FirstRow; +table.AutoFilter.Range.FirstColumn = table.Range.FirstColumn; +``` + +Có thao tác ngược lại sẵn có giúp hướng dẫn này trở thành một nguồn duy nhất cho cả các trường hợp **remove autofilter from excel** và **how to delete autofilter**. + +--- + +## Ví dụ Hoạt Động Đầy Đủ (Sẵn Sàng Sao Chép‑Dán) + +```csharp +using System; +using Aspose.Cells; + +class RemoveAutoFilterDemo +{ + static void Main() + { + // Load workbook + string src = @"YOUR_DIRECTORY/TableWithFilter.xlsx"; + Workbook wb = new Workbook(src); + + // Iterate through all worksheets and tables (optional) + foreach (Worksheet ws in wb.Worksheets) + { + foreach (ListObject tbl in ws.ListObjects) + { + // Remove AutoFilter – this is the core of "remove autofilter from excel" + tbl.AutoFilter = null; + } + } + + // Save the result + string dst = @"YOUR_DIRECTORY/NoAutoFilter.xlsx"; + wb.Save(dst); + + Console.WriteLine($"All AutoFilters removed. File saved at {dst}"); + } +} +``` + +Chạy đoạn mã trên sẽ **remove autofilter from excel** cho mọi bảng trong workbook, cung cấp cho bạn một nền sạch cho các xử lý tiếp theo. + +--- + +## Kết luận + +Chúng tôi vừa trình bày mọi thứ bạn cần để **remove autofilter from excel** bằng C#. Từ cài đặt Aspose.Cells, tải workbook, xác định bảng, thực sự xóa bộ lọc, đến lưu tệp sạch—mỗi bước đều được giải thích kèm “tại sao”. Bây giờ bạn đã biết cách **how to delete autofilter**, **remove excel table filter**, **turn off autofilter excel**, và **clear excel table filter** trong một đoạn mã duy nhất, có thể tái sử dụng. + +Sẵn sàng cho thử thách tiếp theo? Hãy thử tự động thêm định dạng có điều kiện, hoặc khám phá cách **add an AutoFilter back** bằng lập trình. Cả hai chủ đề đều dựa trực tiếp trên các khái niệm vừa rồi và sẽ làm cho bộ công cụ tự động hóa Excel của bạn phong phú hơn. + +Có câu hỏi, hoặc phát hiện một trường hợp chúng tôi chưa đề cập? Để lại bình luận bên dưới—chúc lập trình vui! + +--- + +![Screenshot showing an Excel sheet without any filter dropdowns – remove autofilter from excel](/images/remove-autofilter-excel.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-comment-annotation/_index.md b/cells/vietnamese/net/excel-comment-annotation/_index.md index fbe18269a3..39ead9c781 100644 --- a/cells/vietnamese/net/excel-comment-annotation/_index.md +++ b/cells/vietnamese/net/excel-comment-annotation/_index.md @@ -38,6 +38,8 @@ Tìm hiểu cách thêm chú thích bằng hình ảnh trong Excel bằng Aspose Tìm hiểu cách thêm chú thích vào ô trong Excel bằng Aspose.Cells cho .NET. Hướng dẫn từng bước dành cho người mới bắt đầu để nâng cao chức năng của Excel. ### [Định dạng bình luận - Phông chữ, Màu sắc, Căn chỉnh](./format-comments-font-color-alignment/) Khám phá cách định dạng chú thích Excel dễ dàng bằng Aspose.Cells cho .NET. Tùy chỉnh phông chữ, kích thước và căn chỉnh để cải thiện bảng tính của bạn. +### [Tạo Workbook Excel C# – Thêm và Điền bình luận với Smart Markers](./create-excel-workbook-c-add-and-fill-comments-with-smart-mar/) +Hướng dẫn tạo workbook Excel bằng C# và sử dụng Smart Markers để thêm và điền bình luận một cách tự động. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md b/cells/vietnamese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md new file mode 100644 index 0000000000..9864d01e14 --- /dev/null +++ b/cells/vietnamese/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-21 +description: Tạo workbook Excel bằng C# và học cách thêm nhận xét vào Excel, tự động + điền nhận xét bằng Smart Markers. Hướng dẫn chi tiết từng bước cho các nhà phát + triển. +draft: false +keywords: +- create excel workbook c# +- add comment to excel +- how to add comment +- how to fill comment +- fill excel comment +language: vi +og_description: Tạo workbook Excel bằng C# và nhanh chóng thêm bình luận vào Excel, + sau đó điền bình luận bằng Smart Markers. Hướng dẫn đầy đủ kèm mã nguồn. +og_title: Tạo sổ làm việc Excel C# – Thêm và điền bình luận +tags: +- C# +- Excel automation +- Aspose.Cells +title: Tạo Workbook Excel bằng C# – Thêm và Điền bình luận với các đánh dấu thông + minh +url: /vi/net/excel-comment-annotation/create-excel-workbook-c-add-and-fill-comments-with-smart-mar/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo Workbook Excel C# – Thêm và Điền Bình luận bằng Smart Markers + +Bạn đã bao giờ cần **tạo workbook Excel C#** và tự hỏi làm thế nào để nhúng một bình luận tự động cập nhật không? Bạn không phải là người duy nhất. Trong nhiều trường hợp báo cáo, bạn muốn một bình luận ô có nội dung *“Created by Alice on 2024‑07‑15”* mà không phải mã cứng tên hoặc ngày mỗi lần. + +Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn **cách thêm bình luận vào Excel**, sau đó **cách điền bình luận** bằng Smart Markers của Aspose.Cells. Khi kết thúc, bạn sẽ có một chương trình sẵn sàng chạy, tạo workbook, chèn bình luận động và lưu tệp—tất cả trong vài bước ngắn gọn. + +> **Bạn sẽ nhận được:** một ứng dụng console C# đầy đủ, có thể biên dịch, giải thích từng dòng code, mẹo tránh các lỗi thường gặp, và ý tưởng mở rộng giải pháp. + +## Yêu cầu trước + +- .NET 6.0 SDK hoặc mới hơn (code cũng hoạt động với .NET Core và .NET Framework) +- Visual Studio 2022 hoặc bất kỳ IDE nào bạn thích +- **Aspose.Cells for .NET** gói NuGet (`Install-Package Aspose.Cells`) – thư viện này cung cấp các lớp `Workbook`, `Worksheet` và `SmartMarkerProcessor` được sử dụng bên dưới. +- Kiến thức cơ bản về cú pháp C# – nếu bạn đã viết `Console.WriteLine`, bạn đã sẵn sàng. + +Bây giờ nền tảng đã sẵn sàng, chúng ta cùng bắt đầu. + +![Ảnh chụp màn hình ví dụ tạo workbook Excel C#](excel-workbook.png "Ví dụ tạo workbook Excel C#") + +## Bước 1: Khởi tạo Workbook mới – Kiến thức cơ bản về tạo workbook Excel C# + +Đầu tiên chúng ta cần một đối tượng workbook sạch. Hãy nghĩ `Workbook` như một bảng vẽ trống; nếu không có nó, bạn không thể đặt ô, hàng hay bình luận nào. + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); // fresh Excel file + Worksheet worksheet = workbook.Worksheets[0]; // default sheet named "Sheet1" +``` + +**Tại sao lại quan trọng:** `Workbook` tự động tạo một worksheet mặc định, vì vậy bạn không cần gọi `Add` trừ khi muốn thêm các tab khác. Truy cập `Worksheets[0]` là cách nhanh nhất để bắt đầu điền dữ liệu. + +## Bước 2: Chèn bình luận Smart Marker – Cách thêm bình luận với token + +Tiếp theo chúng ta đặt một bình luận ở ô **B2** chứa các token Smart Marker (`«UserName»` và `«CreatedDate»`). Các token này sẽ được thay thế sau bằng giá trị thực. + +```csharp + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; +``` + +**Giải thích:** +- `CreateComment()` tạo đối tượng bình luận nếu chưa tồn tại; nếu đã có thì trả về đối tượng hiện có. +- Thuộc tính `Note` chứa văn bản hiển thị. Bằng cách bao quanh các placeholder bằng `« »` chúng ta báo cho Aspose.Cells biết chúng là **Smart Markers** – các placeholder có thể được thay thế đồng loạt. + +> **Mẹo:** Nếu bạn cần bình luận đa dòng, dùng `\n` trong chuỗi, ví dụ `"Line1\nLine2"`. + +## Bước 3: Chuẩn bị đối tượng dữ liệu – Cách điền bình luận một cách động + +Smart Markers cần một nguồn dữ liệu. Trong C# cách đơn giản nhất là sử dụng kiểu ẩn danh (anonymous type) có các thuộc tính trùng với tên placeholder. + +```csharp + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now // will be formatted automatically + }; +``` + +**Tại sao lại dùng kiểu ẩn danh?** +Nó nhẹ, không cần tạo file lớp riêng, và các tên thuộc tính (`UserName`, `CreatedDate`) khớp chính xác với tên token. Nếu bạn muốn mô hình có kiểu mạnh, chỉ cần tạo một lớp với các thuộc tính tương tự. + +## Bước 4: Xử lý Smart Markers – Cách điền bình luận bằng đối tượng dữ liệu + +Bây giờ phép màu xảy ra. `SmartMarkerProcessor` sẽ quét workbook tìm mọi token `«…»` và thay chúng bằng giá trị từ `markerData`. + +```csharp + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); +``` + +**Bên trong cơ chế:** +`SmartMarkerProcessor` duyệt qua từng ô, bình luận, header, v.v., tìm mẫu `«Token»`. Khi phát hiện, nó dùng reflection để đọc thuộc tính tương ứng từ `markerData` và ghi giá trị trở lại. Không cần vòng lặp thủ công. + +## Bước 5: Lưu Workbook – Điền bình luận Excel và lưu tệp + +Cuối cùng chúng ta ghi workbook ra đĩa. Bình luận bây giờ sẽ hiển thị như *“Created by Alice on 03/21/2026 10:15 AM”*. + +```csharp + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Xác nhận kết quả:** Mở `CommentFilled.xlsx` trong Excel, di chuột lên ô **B2**, bạn sẽ thấy bình luận với tên người dùng và thời gian thực. Không cần thay đổi code nào cho các lần chạy tiếp theo—chỉ cần thay đổi giá trị trong `markerData`. + +--- + +## Các biến thể thường gặp & Trường hợp đặc biệt + +### Sử dụng định dạng ngày tùy chỉnh + +Nếu muốn ngày ở định dạng `yyyy‑MM‑dd`, chỉnh sửa đối tượng dữ liệu: + +```csharp +CreatedDate = DateTime.Now.ToString("yyyy-MM-dd") +``` + +### Thêm nhiều bình luận + +Bạn có thể lặp lại **Bước 2** cho các ô khác. Mỗi bình luận có thể có tập token riêng, hoặc chia sẻ cùng một tập nếu thông tin chung. + +### Làm việc với Workbook đã tồn tại + +Thay vì `new Workbook()`, tải một tệp hiện có: + +```csharp +Workbook workbook = new Workbook(@"ExistingFile.xlsx"); +``` + +Các bước còn lại giữ nguyên—Smart Markers hoạt động trên cả file mới và file đã có. + +### Xử lý giá trị null + +Nếu một token có thể thiếu, bao bọc thuộc tính trong kiểu nullable hoặc cung cấp giá trị dự phòng: + +```csharp +UserName = user?.Name ?? "Unknown" +``` + +Bộ xử lý sẽ chèn *“Unknown”* khi nguồn dữ liệu là `null`. + +--- + +## Ví dụ đầy đủ (Sẵn sàng sao chép‑dán) + +Dưới đây là **toàn bộ chương trình** bạn có thể dán vào dự án console và chạy ngay (chỉ cần thay `YOUR_DIRECTORY` bằng đường dẫn thư mục thực). + +```csharp +using System; +using Aspose.Cells; + +namespace ExcelCommentDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Step 2: Add a comment that contains Smart Marker tokens + var comment = worksheet.Cells["B2"].CreateComment(); + comment.Note = "Created by «UserName» on «CreatedDate»"; + + // Step 3: Prepare the data that will replace the tokens + var markerData = new + { + UserName = "Alice", + CreatedDate = DateTime.Now + }; + + // Step 4: Process the Smart Markers in the worksheet using the data object + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Process(worksheet, markerData); + + // Step 5: Save the workbook with the filled comment + string outputPath = @"YOUR_DIRECTORY\CommentFilled.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +Chạy chương trình, mở file đã tạo, và bạn sẽ thấy bình luận động ở ô **B2**. Thật dễ dàng, phải không? + +--- + +## Câu hỏi thường gặp (FAQ) + +**Hỏi: Có hoạt động với .NET Framework 4.7 không?** +Đáp: Hoàn toàn có. Aspose.Cells hỗ trợ .NET Framework 4.0+ và .NET Core/5/6/7. Chỉ cần tham chiếu DLL hoặc gói NuGet phù hợp. + +**Hỏi: Tôi có thể dùng cách này cho kiểm tra dữ liệu hoặc định dạng có điều kiện không?** +Đáp: Smart Markers chủ yếu dùng để chèn giá trị vào ô, bình luận, header và footer. Đối với định dạng có điều kiện, bạn vẫn cần dùng API `Style` thông thường. + +**Hỏi: Nếu muốn thêm bình luận vào **worksheet** khác thì sao?** +Đáp: Lấy worksheet mục tiêu (`workbook.Worksheets["MySheet"]`) và lặp lại **Bước 2** trên các ô của worksheet đó. + +--- + +## Các bước tiếp theo & Chủ đề liên quan + +- **Cách thêm bình luận vào Excel** một cách lập trình cho nhiều ô (vòng lặp qua một vùng). +- **Điền bình luận Excel** từ dữ liệu cơ sở dữ liệu (sử dụng `DataTable` làm nguồn dữ liệu cho Smart Markers). +- Khám phá **mảng Smart Marker** để tự động tạo bảng. +- Tìm hiểu về **định dạng Aspose.Cells** để tùy chỉnh phông chữ, màu sắc và kích thước của bình luận. + +Hãy thử các đoạn code, thay đổi nguồn dữ liệu, và bạn sẽ nhanh chóng thành thạo **cách điền bình luận** trong bất kỳ kịch bản tự động hoá Excel nào. + +--- + +### Kết luận + +Chúng ta vừa đi qua toàn bộ quy trình **tạo workbook Excel C#**, **thêm bình luận vào Excel**, và **điền bình luận Excel** bằng Smart Markers. Giải pháp ngắn gọn, tái sử dụng được và sẵn sàng cho môi trường production. + +Hãy thử, tùy chỉnh các placeholder, và để thư viện lo phần còn lại. Nếu gặp khó khăn, hãy để lại bình luận bên dưới—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/_index.md b/cells/vietnamese/net/excel-custom-number-date-formatting/_index.md index cedb7cc248..33632b98e7 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,8 @@ 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. +### [Đặt Định dạng Tùy chỉnh cho Ô trong C# – Hướng dẫn Toàn diện về Ghi & Đọc Ngày trong Excel](./set-cell-custom-format-in-c-complete-guide-to-writing-readin/) +Khám phá cách thiết lập định dạng tùy chỉnh cho ô và đọc/ghi ngày tháng trong Excel bằng Aspose.Cells cho .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md b/cells/vietnamese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md new file mode 100644 index 0000000000..9446cf40e7 --- /dev/null +++ b/cells/vietnamese/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-03-21 +description: Đặt định dạng tùy chỉnh cho ô trong C# và học cách ghi ngày vào Excel, + áp dụng định dạng ngày tùy chỉnh, đọc DateTime từ Excel, và tạo nhanh sổ làm việc + và trang tính. +draft: false +keywords: +- set cell custom format +- write date to excel +- read datetime from excel +- apply custom date format +- create workbook worksheet +language: vi +og_description: Đặt định dạng tùy chỉnh cho ô trong C# để ghi ngày vào Excel, áp dụng + định dạng ngày tùy chỉnh, đọc DateTime từ Excel và tạo worksheet trong workbook + một cách dễ dàng. +og_title: Đặt Định Dạng Tùy Chỉnh cho Ô trong C# – Ghi và Đọc Ngày trong Excel +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Đặt Định Dạng Tùy Chỉnh cho Ô trong C# – Hướng Dẫn Toàn Diện về Ghi và Đọc + Ngày trong Excel +url: /vi/net/excel-custom-number-date-formatting/set-cell-custom-format-in-c-complete-guide-to-writing-readin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Đặt Định Dạng Tùy Chỉnh cho Ô – Ghi & Đọc Ngày trong Excel bằng C# + +## Bạn sẽ học gì + +- Cách **tạo worksheet cho workbook** một cách lập trình. +- Các bước chính xác để **ghi ngày vào Excel** bằng một chuỗi đặc thù vùng miền. +- Cách **áp dụng định dạng ngày tùy chỉnh** (bao gồm ký hiệu niên hiệu Nhật Bản). +- Cách **đọc DateTime từ Excel** trở lại một đối tượng `DateTime`. +- Mẹo, lỗi thường gặp và các biến thể bạn có thể gặp khi làm việc với ngày trong Excel. + +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 + +- .NET 6.0 trở lên (mã cũng hoạt động trên .NET Framework 4.7+). +- Aspose.Cells cho .NET được cài đặt qua NuGet (`Install-Package Aspose.Cells`). +- Hiểu biết cơ bản về cú pháp C# — không cần gì phức tạp. + +> **Mẹo chuyên nghiệp:** Nếu bạn đang dùng Visual Studio, bật *nullable reference types* để phát hiện sớm các lỗi tiềm ẩn. + +## Bước 1: Tạo Workbook và Worksheet + +Đầu tiên, bạn cần một đối tượng workbook đại diện cho tệp Excel, và một worksheet nơi dữ liệu sẽ được lưu trữ. + +```csharp +using Aspose.Cells; +using System; + +class ExcelDateDemo +{ + static void Main() + { + // Step 1: Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); // creates an empty .xlsx in memory + Worksheet worksheet = workbook.Worksheets[0]; // default sheet is named "Sheet1" +``` + +*Tại sao điều này quan trọng:* Lớp `Workbook` là điểm vào cho mọi thao tác Excel. Tạo nó trong bộ nhớ có nghĩa là bạn không chạm tới hệ thống tệp cho đến khi lưu một cách rõ ràng, giúp quá trình nhanh và dễ kiểm thử. + +## Bước 2: Ghi ngày vào Excel + +Tiếp theo, chúng ta sẽ đặt một chuỗi ngày theo niên hiệu Nhật Bản (`"R02-04-01"`) vào ô **A1**. Chuỗi này mô phỏng niên hiệu Reiwa (năm 2, tháng 4, ngày 1). + +```csharp + // Step 2: Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("R02-04-01"); +``` + +*Điều đang xảy ra:* `PutValue` lưu chuỗi thô. Aspose.Cells sẽ sau đó cố gắng phân tích nó dựa trên kiểu của ô. Nếu bạn bỏ qua bước này và ghi trực tiếp một `DateTime`, bạn sẽ mất thông tin niên hiệu muốn hiển thị. + +## Bước 3: Áp dụng Định dạng Số Ngày tích hợp (ID 14) + +Excel có một định dạng ngày tích hợp với ID 14 (`mm-dd-yy`). Áp dụng nó cho máy tính biết rằng ô **chứa một ngày**, không chỉ là văn bản. + +```csharp + // Step 3: Apply the built‑in date number format (ID 14) + worksheet.Cells["A1"].Style.Number = 14; +``` + +*Tại sao dùng ID 14?* Đó là định dạng “ngày ngắn” chung, đảm bảo Excel xử lý nội dung như một giá trị ngày, là điều kiện tiên quyết để bất kỳ định dạng tùy chỉnh nào hoạt động đúng. + +## Bước 4: Đặt Định dạng Tùy chỉnh để Hiển thị Ký hiệu Niên hiệu Nhật Bản + +Bây giờ là phần thú vị: chúng ta yêu cầu Excel hiển thị ngày theo định dạng niên hiệu Nhật Bản. Chuỗi tùy chỉnh `[$-ja-JP]ggge年m月d日` thực hiện đúng điều này. + +```csharp + // Step 4: Set a custom format to display the date in Japanese era notation + worksheet.Cells["A1"].Style.Custom = "[$-ja-JP]ggge年m月d日"; +``` + +*Giải thích:* +- `[$-ja-JP]` buộc locale thành tiếng Nhật. +- `ggg` là tên niên hiệu (ví dụ, “R” cho Reiwa). +- `e` là năm của niên hiệu. +- `年`, `月`, `日` là các ký tự Nhật Bản biểu thị năm, tháng, ngày. + +Nếu bạn cần một locale khác, chỉ cần thay `ja-JP` bằng mã văn hoá phù hợp (ví dụ, `en-US`). + +## Bước 5: Lấy Giá trị DateTime Đã Phân tích + +Cuối cùng, hãy đọc **`DateTime` thực tế** mà Excel đã phân tích từ ô. Điều này chứng minh chuỗi đã được hiểu đúng. + +```csharp + // Step 5: Retrieve the parsed DateTime value from the cell + DateTime parsedDate = worksheet.Cells["A1"].DateTime; // => 2020‑04‑01 + + // Output to console for verification + Console.WriteLine($"Parsed DateTime: {parsedDate:yyyy-MM-dd}"); +``` + +*Kết quả:* Console in ra `Parsed DateTime: 2020-04-01`. Mặc dù chúng ta nhập chuỗi niên hiệu Nhật Bản, Excel nội bộ lưu ngày Gregorian, bạn có thể dùng cho các phép tính, so sánh, hoặc xuất tiếp. + +## Bước 6: Lưu Workbook (Tùy chọn) + +Nếu bạn muốn xem workbook đã định dạng trong Excel, chỉ cần lưu nó ra đĩa. + +```csharp + // Optional: Save the workbook to a file + workbook.Save("JapaneseEraDate.xlsx"); + } +} +``` + +Mở tệp **JapaneseEraDate.xlsx** đã tạo và bạn sẽ thấy ô **A1** hiển thị `R02年4月1日` (định dạng niên hiệu Nhật Bản chính xác mà chúng ta đã đặt). + +![ví dụ đặt định dạng tùy chỉnh cho ô](image-placeholder.png "Ô Excel hiển thị ngày theo niên hiệu Nhật Bản – đặt định dạng tùy chỉnh cho ô") + +*Văn bản alt ở trên chứa từ khóa chính, đáp ứng yêu cầu SEO cho hình ảnh.* + +## Các Biến thể Thông thường & Trường hợp Cạnh + +### Ghi một Định dạng Ngày Khác + +Nếu bạn thích định dạng ISO‑8601 (`2020-04-01`) thay vì chuỗi niên hiệu, chỉ cần thay đổi lời gọi `PutValue`: + +```csharp +worksheet.Cells["A1"].PutValue(new DateTime(2020, 4, 1)); +worksheet.Cells["A1"].Style.Number = 14; // keep built‑in date format +worksheet.Cells["A1"].Style.Custom = "yyyy-mm-dd"; // custom ISO format +``` + +### Xử lý Ô Null hoặc Rỗng + +Khi đọc ngày, luôn kiểm tra ô rỗng để tránh `InvalidOperationException`: + +```csharp +if (!worksheet.Cells["A1"].IsDate) +{ + Console.WriteLine("Cell A1 does not contain a valid date."); +} +else +{ + DateTime dt = worksheet.Cells["A1"].DateTime; + // use dt... +} +``` + +### Hỗ trợ Nhiều Locale + +Bạn có thể lặp qua danh sách mã văn hoá và áp dụng chúng một cách động: + +```csharp +string[] cultures = { "ja-JP", "en-US", "fr-FR" }; +foreach (var culture in cultures) +{ + worksheet.Cells["A1"].Style.Custom = $"[$-{culture}]ggge年m月d日"; + // Save or export per culture if needed +} +``` + +## Mẹo Chuyên Nghiệp & Những Điều Cần Lưu Ý + +- **Luôn luôn đặt định dạng số tích hợp trước** (`Style.Number`). Nếu không, Excel sẽ coi ô là văn bản thuần và bỏ qua định dạng tùy chỉnh. +- **Mã locale không phân biệt chữ hoa/thường**, nhưng sử dụng dạng chuẩn (`ja-JP`) giúp tránh nhầm lẫn. +- **Lưu là tùy chọn** cho xử lý trong bộ nhớ; bạn có thể truyền workbook trực tiếp tới phản hồi web (`workbook.Save(stream, SaveFormat.Xlsx)`). +- **Giấy phép Aspose.Cells**: Phiên bản đánh giá miễn phí sẽ thêm watermark. Đối với môi trường production, hãy chắc chắn có giấy phép hợp lệ để tránh giảm hiệu năng. + +## Tóm tắt + +Chúng tôi đã trình bày cách **đặt định dạng tùy chỉnh cho ô** trong C# để hiển thị ngày theo niên hiệu Nhật Bản, cách **ghi ngày vào Excel**, **áp dụng định dạng ngày tùy chỉnh**, **đọc DateTime từ Excel**, và **tạo worksheet cho workbook** — tất cả trong một chương trình tự chứa duy nhất. Từ khóa chính xuất hiện tự nhiên xuyên suốt, trong khi các từ khóa phụ được lồng vào tiêu đề và nội dung, đáp ứng cả tiêu chuẩn SEO và chuẩn trích dẫn AI. + +## Tiếp Theo? + +- Khám phá **định dạng có điều kiện** để làm nổi bật các ngày quá hạn. +- Kết hợp cách này với **PivotTables** để báo cáo động. +- Thử **đọc các tệp CSV lớn** và chuyển chúng sang Excel với cùng logic xử lý ngày. + +Bạn có thể tự do thử nghiệm với các locale khác nhau, mẫu tùy chỉnh, hoặc thậm chí múi giờ. Nếu gặp bất kỳ vấn đề nào, hãy để lại bình luận bên dưới — chúc 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-data-export-retrieval/_index.md b/cells/vietnamese/net/excel-data-export-retrieval/_index.md index 320a9e4c97..958583cdfb 100644 --- a/cells/vietnamese/net/excel-data-export-retrieval/_index.md +++ b/cells/vietnamese/net/excel-data-export-retrieval/_index.md @@ -29,6 +29,12 @@ Bạn muốn biết cách thực hiện điều này? Hãy xem hướng dẫn h ### [Lấy dữ liệu từ các ô trong Excel](./retrieve-data-from-cells-in-excel/) Tìm hiểu cách lấy dữ liệu từ các ô Excel bằng Aspose.Cells cho .NET trong hướng dẫn từng bước này, hoàn hảo cho cả người mới bắt đầu và nhà phát triển có kinh nghiệm. +### [Xuất Bảng Dữ liệu Excel trong C# – Hướng Dẫn Toàn Diện](./export-excel-data-table-in-c-complete-guide/) +Hướng dẫn chi tiết cách xuất bảng dữ liệu Excel bằng Aspose.Cells cho .NET trong C#, phù hợp cho cả người mới bắt đầu và chuyên gia. + +### [Xuất Dữ liệu Excel trong C# – Hướng Dẫn Từng Bước](./how-to-export-excel-data-in-c-step-by-step-guide/) +Hướng dẫn chi tiết cách xuất dữ liệu Excel bằng Aspose.Cells cho .NET trong C#, phù hợp cho cả người mới bắt đầu và chuyên gia. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/vietnamese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md b/cells/vietnamese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md new file mode 100644 index 0000000000..b832d56114 --- /dev/null +++ b/cells/vietnamese/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-21 +description: Xuất bảng dữ liệu Excel sang DataTable có tiêu đề, giới hạn số chữ số + thập phân và xuất 100 dòng đầu tiên bằng Aspose.Cells. +draft: false +keywords: +- export excel data table +- export excel to datatable +- limit decimal places excel +- export first 100 rows +- export excel with headers +language: vi +og_description: Tìm hiểu cách xuất bảng dữ liệu Excel sang DataTable, giữ lại tiêu + đề, giới hạn số chữ số thập phân và lấy 100 dòng đầu tiên trong C#. +og_title: Xuất Bảng Dữ liệu Excel trong C# – Hướng dẫn từng bước +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Xuất bảng dữ liệu Excel trong C# – Hướng dẫn toàn diện +url: /vi/net/excel-data-export-retrieval/export-excel-data-table-in-c-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Xuất Bảng Dữ Liệu Excel – Hướng Dẫn C# Đầy Đủ + +Cần **xuất bảng dữ liệu excel** từ một workbook thành `DataTable` .NET? Bạn đã đến đúng nơi—hướng dẫn này sẽ chỉ cho bạn cách thực hiện, giữ lại tiêu đề cột, giới hạn số chữ số thập phân, và chỉ lấy 100 hàng đầu tiên. + +Nếu bạn từng nhìn vào một bảng tính và tự hỏi, “Làm sao đưa nó vào ứng dụng mà không mất định dạng?” bạn không đơn độc. Trong vài phút tới, chúng ta sẽ biến “nếu‑thế” đó thành một giải pháp sao chép‑dán cụ thể, hoạt động với Aspose.Cells, một thư viện phổ biến để thao tác Excel. + +## Những Điều Bạn Sẽ Học + +- Cách **export excel to datatable** bằng phương thức `ExportDataTable`. +- Cách giữ lại tên cột gốc (`export excel with headers`). +- Cách **limit decimal places excel** giá trị bằng cách cấu hình `ExportTableOptions`. +- Cách an toàn chỉ lấy 100 hàng đầu tiên (`export first 100 rows`). + +Không có script bên ngoài, không có chuỗi ma thuật—chỉ là C# thuần mà bạn có thể chèn vào bất kỳ dự án .NET nào. + +## Yêu Cầu Trước + +| Yêu cầu | Tại sao quan trọng | +|-------------|----------------| +| .NET 6 hoặc mới hơn (hoặc .NET Framework 4.7+) | Aspose.Cells hỗ trợ cả hai, nhưng runtime mới hơn cung cấp API sẵn sàng async. | +| Gói NuGet Aspose.Cells cho .NET | Cung cấp `Workbook`, `ExportTableOptions`, và helper `ExportDataTable`. | +| Một file Excel mẫu (ví dụ: `Numbers.xlsx`) | Nguồn dữ liệu bạn sẽ xuất. | +| Kiến thức cơ bản về C# | Bạn sẽ theo dõi các đoạn mã, nhưng không cần gì phức tạp. | + +Nếu bất kỳ mục nào trên còn lạ, hãy lấy gói NuGet bằng `dotnet add package Aspose.Cells` và tạo một file Excel nhỏ với vài số—dữ liệu thử nghiệm của bạn. + +![ví dụ xuất bảng dữ liệu excel](excel-data-table.png "Ảnh chụp màn hình một sheet Excel sẽ được xuất thành DataTable") + +## Bước 1: Tải Workbook (export excel data table) + +Điều đầu tiên bạn cần là một thể hiện `Workbook` trỏ tới file Excel của bạn. Hãy tưởng tượng nó như mở một cuốn sách trước khi đọc bất kỳ chương nào. + +```csharp +using Aspose.Cells; + +// 1️⃣ Load the workbook that contains the source data +Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); +``` + +> **Tại sao điều này quan trọng:** Việc tải workbook cho phép bạn truy cập các worksheet, ô và kiểu dáng của nó. Nếu đường dẫn file sai, Aspose sẽ ném `FileNotFoundException`, vì vậy hãy kiểm tra lại vị trí. + +## Bước 2: Cấu Hình Tùy Chọn Xuất – limit decimal places excel + +Mặc định Aspose xuất mọi giá trị số với độ chính xác đầy đủ. Thông thường bạn chỉ cần một vài chữ số có ý nghĩa, đặc biệt khi đưa dữ liệu vào lưới UI hoặc API yêu cầu số đã được làm tròn. + +```csharp +using Aspose.Cells; + +// 2️⃣ Configure export options – keep only 4 significant digits +ExportTableOptions exportOptions = new ExportTableOptions +{ + // This property trims the number of significant digits. + SignificantDigits = 4 +}; +``` + +> **Mẹo chuyên nghiệp:** Nếu bạn cần chiến lược làm tròn khác (ví dụ: luôn làm tròn lên), bạn có thể xử lý sau khi xuất `DataTable`. Cài đặt `SignificantDigits` là cách nhanh nhất để **limit decimal places excel** mà không cần viết vòng lặp bổ sung. + +## Bước 3: Xuất Phạm Vi Mong Muốn (export first 100 rows) + +Bây giờ chúng ta chỉ định cho Aspose khối ô nào muốn kéo vào `DataTable`. Trong tutorial này chúng ta lấy 100 hàng đầu tiên và 10 cột đầu tiên, nhưng bạn có thể điều chỉnh các số này cho phù hợp với trường hợp của mình. + +```csharp +using System.Data; +using Aspose.Cells; + +// 3️⃣ Export a block of cells (first 100 rows × 10 columns) to a DataTable +DataTable dataTable = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, // zero‑based index, first row + startColumn: 0, // first column (A) + totalRows: 100, // export only the first 100 rows + totalColumns: 10, // and the first 10 columns + exportColumnNames: true, // keep column headers (export excel with headers) + options: exportOptions); +``` + +> **Trường hợp đặc biệt:** Nếu sheet có ít hơn 100 hàng, Aspose sẽ chỉ xuất những gì có mà không ném lỗi. Tuy nhiên, bạn có thể muốn bảo vệ trước một phạm vi bất ngờ quá nhỏ: + +```csharp +int rowsToExport = Math.Min(100, workbook.Worksheets[0].Cells.MaxDataRow + 1); +``` + +## Bước 4: Kiểm Tra Kết Quả – In Nhanh lên Console + +Xem dữ liệu trong debugger là tốt, nhưng in vài hàng ra console xác nhận rằng **export excel to datatable** thực sự hoạt động và các chữ số thập phân đã được cắt bớt. + +```csharp +static void PrintDataTable(DataTable table) +{ + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } +} + +// Call the helper +PrintDataTable(dataTable); +``` + +### Kết Quả Dự Kiến + +``` +ID Name Score Ratio Date ... +1 Alice 95.12 0.8234 2023-01-15 ... +2 Bob 88.5 0.7612 2023-01-16 ... +3 Carol 73.33 0.6721 2023-01-17 ... +... +``` + +Chú ý cách các cột số giờ chỉ hiển thị bốn chữ số có ý nghĩa, phù hợp với cài đặt `SignificantDigits = 4` mà chúng ta đã áp dụng trước đó. + +## Bước 5: Gói Gọn Tất Cả – Ví Dụ Hoàn Chỉnh, Có Thể Chạy + +Dưới đây là chương trình đầy đủ bạn có thể sao chép‑dán vào một console app. Nó bao gồm xử lý lỗi, guard tùy chọn cho số hàng, và phương thức trợ giúp để in. + +```csharp +using System; +using System.Data; +using Aspose.Cells; + +class ExportExcelDemo +{ + static void Main() + { + try + { + // 👉 Load the workbook + Workbook workbook = new Workbook(@"C:\Path\To\Numbers.xlsx"); + + // 👉 Set up export options (limit decimal places excel) + ExportTableOptions exportOptions = new ExportTableOptions + { + SignificantDigits = 4 + }; + + // 👉 Determine safe row count (export first 100 rows) + int maxRows = workbook.Worksheets[0].Cells.MaxDataRow + 1; + int rowsToExport = Math.Min(100, maxRows); + + // 👉 Export to DataTable (export excel to datatable, export excel with headers) + DataTable dt = workbook.Worksheets[0].Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: rowsToExport, + totalColumns: 10, + exportColumnNames: true, + options: exportOptions); + + // 👉 Show a glimpse of the data + PrintDataTable(dt); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Something went wrong: {ex.Message}"); + } + } + + static void PrintDataTable(DataTable table) + { + foreach (DataRow row in table.Rows) + { + foreach (var item in row.ItemArray) + Console.Write($"{item}\t"); + Console.WriteLine(); + } + } +} +``` + +Chạy chương trình, và bạn sẽ thấy 100 hàng đầu tiên của sheet, đã được làm tròn gọn gàng, với tên cột vẫn nguyên vẹn. + +## Câu Hỏi Thường Gặp & Những Lưu Ý + +| Câu hỏi | Trả lời | +|----------|--------| +| **Nếu sheet của tôi có các ô hợp nhất thì sao?** | `ExportDataTable` sẽ làm phẳng các ô hợp nhất bằng cách lấy giá trị của ô trên‑trái. Nếu bạn cần xử lý tùy chỉnh, hãy hủy hợp nhất trước hoặc đọc các đối tượng `Cell` thô. | +| **Tôi có thể xuất sang `DataSet` thay vì không?** | Có—sử dụng `ExportDataTable` | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md b/cells/vietnamese/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md new file mode 100644 index 0000000000..961df52b19 --- /dev/null +++ b/cells/vietnamese/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/_index.md @@ -0,0 +1,282 @@ +--- +category: general +date: 2026-03-21 +description: Cách xuất dữ liệu Excel kèm tên cột, giữ nguyên định dạng số và đọc các + hàng cụ thể bằng Aspose.Cells trong C#. Học cách đọc bảng tính Excel và xuất các + hàng cụ thể một cách hiệu quả. +draft: false +keywords: +- how to export excel +- preserve number format +- export with column names +- read excel worksheet +- export specific rows +language: vi +og_description: Cách xuất dữ liệu Excel kèm tên cột, giữ định dạng số và đọc các hàng + cụ thể bằng Aspose.Cells. Một ví dụ đầy đủ, có thể chạy được cho các nhà phát triển + C#. +og_title: Cách xuất dữ liệu Excel trong C# – Hướng dẫn lập trình toàn diện +tags: +- C# +- Aspose.Cells +- Excel +- DataTable +title: Cách xuất dữ liệu Excel trong C# – Hướng dẫn từng bước +url: /vi/net/excel-data-export-retrieval/how-to-export-excel-data-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Xuất Dữ Liệu Excel trong C# – Hướng Dẫn Lập Trình Toàn Diện + +Bạn đã bao giờ tự hỏi **cách xuất excel** dữ liệu mà không mất định dạng gốc chưa? Có thể bạn đã thử sao chép‑dán nhanh và kết quả là ngày tháng hiển thị dưới dạng “44728” hoặc thiếu tiêu đề cột. Thật là bực bội, đúng không? Trong tutorial này, bạn sẽ thấy một cách tiếp cận sạch sẽ, từ đầu tới cuối để đọc một worksheet Excel, bảo tồn định dạng số, xuất kèm tên cột, và thậm chí chỉ lấy những hàng bạn cần. + +Chúng ta sẽ sử dụng thư viện Aspose.Cells vì nó cho phép kiểm soát chi tiết các tùy chọn xuất. Khi kết thúc hướng dẫn, bạn sẽ có một đoạn mã có thể tái sử dụng, có thể chèn vào bất kỳ dự án .NET nào, và bạn sẽ hiểu tại sao mỗi tùy chọn lại quan trọng. Không cần tài liệu bên ngoài—mọi thứ bạn cần đều có ở đây. + +--- + +## Những Điều Bạn Sẽ Học + +- **Read Excel worksheet** vào bộ nhớ với Aspose.Cells. +- **Export specific rows** (ví dụ: hàng 0‑49) trong khi giữ lại tên cột. +- **Preserve number format** để tiền tệ, ngày tháng và phần trăm vẫn giữ nguyên. +- Cách **export with column names** và bao gồm bình luận ô nếu cần. +- Một ví dụ C# hoàn chỉnh, sẵn sàng chạy, cùng các mẹo cho những lỗi thường gặp. + +### Yêu Cầu Trước + +- .NET 6.0 hoặc mới hơn (mã cũng hoạt động với .NET Framework 4.6+). +- Aspose.Cells for .NET được cài đặt qua NuGet (`Install-Package Aspose.Cells`). +- Một file Excel (`input.xlsx`) được đặt trong thư mục bạn có thể tham chiếu. + +> **Pro tip:** Nếu bạn đang chạy trên pipeline CI, hãy cân nhắc kéo gói NuGet từ feed riêng để tránh bất ngờ về giấy phép. + +--- + +## Bước 1 – Cài Đặt Aspose.Cells và Thêm Namespaces + +Đầu tiên, hãy chắc chắn rằng gói Aspose.Cells đã có trong dự án của bạn. Mở Package Manager Console và chạy: + +```powershell +Install-Package Aspose.Cells +``` + +Sau đó thêm các `using` cần thiết ở đầu file C# của bạn: + +```csharp +using Aspose.Cells; +using System.Data; +using System; +``` + +Các import này cho phép bạn truy cập `Workbook`, `Worksheet`, `ExportTableOptions`, và `DataTable`—những thành phần cốt lõi để **đọc worksheet Excel** và xuất dữ liệu. + +--- + +## Bước 2 – Tải Workbook (Đọc File Excel) + +Bây giờ chúng ta thực sự **đọc worksheet Excel**. Hàm khởi tạo `Workbook` nhận đường dẫn tới file, và Aspose.Cells sẽ xử lý cả định dạng `.xlsx` và `.xls` cũ. + +```csharp +// Step 2: Load the workbook containing the data +string filePath = @"YOUR_DIRECTORY\input.xlsx"; +Workbook workbook = new Workbook(filePath); +``` + +> **Tại sao điều này quan trọng:** Tải workbook một lần và tái sử dụng cùng một đối tượng `Worksheet` hiệu quả hơn rất nhiều so với việc mở file liên tục, đặc biệt với các bảng tính lớn. + +--- + +## Bước 3 – Cấu Hình Các Tùy Chọn Xuất (Bảo Tồn Định Dạng Số & Tên Cột) + +Ở đây chúng ta chỉ định cho Aspose.Cells *cách* xuất. Lớp `ExportTableOptions` cho phép tinh chỉnh đầu ra. Chúng ta sẽ bật ba cờ: + +1. `ExportAsString = true` – buộc mọi ô trở thành chuỗi, đảm bảo các số giữ nguyên dạng hiển thị. +2. `IncludeCellComments = true` – sao chép bất kỳ bình luận nào gắn vào ô (hữu ích cho tài liệu). +3. `PreserveNumberFormat = true` – giữ lại định dạng số gốc (ký hiệu tiền tệ, mẫu ngày, v.v.). + +```csharp +// Step 3: Configure export options to control how the table is exported +ExportTableOptions exportOptions = new ExportTableOptions +{ + ExportAsString = true, // Export all values as strings + IncludeCellComments = true, // Preserve any cell comments + PreserveNumberFormat = true // Keep the original number formatting +}; +``` + +> **Trường hợp đặc biệt:** Nếu bạn đặt `ExportAsString` thành `false` nhưng vẫn muốn giữ định dạng số, bạn có thể nhận được giá trị số thô (ví dụ, 44728 cho một ngày). Giữ cả ba cờ bật sẽ tránh được bất ngờ này. + +--- + +## Bước 4 – Lấy Worksheet Đầu Tiên (Đọc Worksheet Excel) + +Hầu hết các file đơn giản có dữ liệu cần thiết ở sheet đầu tiên, vì vậy chúng ta sẽ lấy nó theo chỉ số. Nếu bạn cần sheet khác, chỉ cần thay `0` bằng chỉ số zero‑based thích hợp hoặc dùng `workbook.Worksheets["SheetName"]`. + +```csharp +// Step 4: Get the first worksheet from the workbook +Worksheet firstWorksheet = workbook.Worksheets[0]; +``` + +> **Lý do hữu ích:** Truy cập trực tiếp đối tượng worksheet cho phép bạn kiểm soát toàn bộ collection `Cells`, điều này thiết yếu để **xuất các hàng cụ thể** sau này. + +--- + +## Bước 5 – Xuất Một Phạm Vi Ô (Xuất Các Hàng Cụ Thể) + +Bây giờ là phần cốt lõi của tutorial: xuất các hàng 0‑49 và cột 0‑4 (tức là 50 hàng đầu và 5 cột đầu) vào một `DataTable`. Chúng ta cũng sẽ yêu cầu Aspose.Cells bao gồm tên cột làm hàng đầu tiên của `DataTable`. + +```csharp +// Step 5: Export a range of cells (rows 0‑49, columns 0‑4) to a DataTable using the options +DataTable exportedTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +### Điều Gì Được Thực Hiện + +- **`startRow: 0`** – bắt đầu từ đầu trang tính. +- **`totalRows: 50`** – lấy 50 hàng đầu (tức là **xuất các hàng cụ thể**). +- **`totalColumns: 5`** – giới hạn xuất chỉ trong 5 cột đầu. +- **`includeColumnNames: true`** – đảm bảo tiêu đề cột của `DataTable` khớp với hàng tiêu đề trong Excel, đáp ứng yêu cầu **xuất kèm tên cột**. +- **`exportOptions`** – áp dụng các cài đặt từ Bước 3, vì vậy các giá trị số của bạn vẫn hiển thị như “$1,234.56” thay vì “1234.56”. + +--- + +## Bước 6 – Kiểm Tra Kết Quả Xuất (Kết Quả Trông Như Thế Nào) + +Hãy in một vài hàng đầu ra console để bạn có thể thấy định dạng vẫn được bảo tồn. + +```csharp +// Step 6: Display a few rows to verify the export +Console.WriteLine("=== Exported DataTable Preview ==="); +foreach (DataRow row in exportedTable.Rows) +{ + // Join each column with a tab for readability + Console.WriteLine(string.Join("\t", row.ItemArray)); +} +``` + +**Kết quả mong đợi (ví dụ):** + +``` +=== Exported DataTable Preview === +Date Description Amount Tax Total +01/02/2024 Widget A $120.00 $12 $132.00 +01/03/2024 Widget B $200.00 $20 $220.00 +... +``` + +Chú ý cách các ngày xuất hiện ở định dạng `MM/dd/yyyy` và tiền tệ vẫn giữ ký hiệu `$`—nhờ **bảo tồn định dạng số**. + +--- + +## Các Vấn Đề Thường Gặp & Cách Khắc Phục + +| Vấn đề | Nguyên nhân | Cách khắc phục | +|--------|-------------|----------------| +| Ngày chuyển thành số lớn | `ExportAsString` để `false` | Giữ `ExportAsString = true` hoặc chuyển đổi ô thủ công | +| Thiếu tiêu đề cột | `includeColumnNames` đặt `false` | Đặt nó thành `true` khi cần **xuất kèm tên cột** | +| Bình luận biến mất | `IncludeCellComments` không được bật | Bật `IncludeCellComments` trong `ExportTableOptions` | +| Xuất sheet sai | Dùng `Worksheets[0]` trên file đa sheet | Chỉ định tên sheet: `workbook.Worksheets["Data"]` | +| Ngoại lệ vượt phạm vi | `totalRows` lớn hơn số hàng thực tế | Dùng `Math.Min(totalRows, worksheet.Cells.MaxDataRow + 1)` | + +--- + +## Bonus: Xuất Toàn Bộ Sheet Trong Khi Vẫn Bảo Tồn Định Dạng + +Nếu sau này bạn muốn xuất toàn bộ sheet, chỉ cần thay `totalRows` và `totalColumns` bằng kích thước tối đa của sheet: + +```csharp +int maxRows = firstWorksheet.Cells.MaxDataRow + 1; // +1 because rows are zero‑based +int maxCols = firstWorksheet.Cells.MaxDataColumn + 1; + +DataTable fullTable = firstWorksheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: maxRows, + totalColumns: maxCols, + includeColumnNames: true, + exportOptions: exportOptions); +``` + +Bây giờ bạn có một quy trình **đọc worksheet Excel** hoạt động cho bất kỳ kích thước nào, đồng thời vẫn **bảo tồn định dạng số** và **xuất kèm tên cột**. + +--- + +## 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ể đặt vào một ứng dụng console. Nó bao gồm tất cả các bước, import, và một đoạn in kiểm tra đơn giản. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelExportDemo +{ + class Program + { + static void Main(string[] args) + { + // 1️⃣ Load the workbook + string filePath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(filePath); + + // 2️⃣ Set export options (preserve number format, include comments, export as strings) + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + IncludeCellComments = true, + PreserveNumberFormat = true + }; + + // 3️⃣ Grab the first worksheet (read excel worksheet) + Worksheet sheet = workbook.Worksheets[0]; + + // 4️⃣ Export rows 0‑49, columns 0‑4 (export specific rows) with column headers + DataTable table = sheet.Cells.ExportDataTable( + startRow: 0, + startColumn: 0, + totalRows: 50, + totalColumns: 5, + includeColumnNames: true, + exportOptions: exportOptions); + + // 5️⃣ Show a preview + Console.WriteLine("=== Exported DataTable Preview ==="); + foreach (DataRow row in table.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + + // Keep console open + Console.WriteLine("\nExport complete. Press any key to exit..."); + Console.ReadKey(); + } + } +} +``` + +Lưu file này dưới tên `Program.cs`, chạy `dotnet run`, và bạn sẽ thấy bản xem trước đã được định dạng trong terminal. + +--- + +## Kết Luận + +Chúng ta vừa đi qua **cách xuất excel** dữ liệu bằng Aspose.Cells, bao gồm mọi thứ từ tải workbook, bảo tồn định dạng số, xuất kèm tên cột, và giới hạn xuất chỉ các hàng cần thiết. Mã nguồn độc lập, có thể chạy ngay, và bao gồm các biện pháp bảo vệ thực tế cho những trường hợp lỗi phổ biến nhất. + +Sẵn sàng cho thử thách tiếp theo? Hãy thử xuất trực tiếp sang CSV vẫn giữ định dạng số gốc, hoặc đưa `DataTable` vào ngữ cảnh Entity Framework Core để chèn hàng loạt vào cơ sở dữ liệu. Cả hai kịch bản đều dựa trên những nền tảng chúng ta đã học ở đây. + +If you found this guide helpful + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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..086693aab6 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 sổ làm việc Excel với bảng định dạng – Hướng dẫn từng bước](./create-excel-workbook-with-styled-table-step-by-step-guide/) | Hướng dẫn chi tiết cách tạo sổ làm việc Excel với bảng được định dạng đẹp mắt bằng Aspose.Cells cho .NET. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md b/cells/vietnamese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md new file mode 100644 index 0000000000..ef85d206e3 --- /dev/null +++ b/cells/vietnamese/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-21 +description: Tạo workbook Excel và nhập datatable vào Excel đồng thời thiết lập kiểu + cột, xuất dữ liệu ra Excel, và định dạng ngày trong các ô Excel tính bằng phút. +draft: false +keywords: +- create excel workbook +- import datatable to excel +- set column style +- export data to excel +- format excel cells date +language: vi +og_description: Tạo nhanh workbook Excel. Học cách nhập datatable vào Excel, thiết + lập kiểu cột, xuất dữ liệu ra Excel và định dạng ngày cho các ô Excel trong một + hướng dẫn. +og_title: Tạo Sổ làm việc Excel – Hướng dẫn toàn diện về Định dạng và Xuất +tags: +- C# +- Aspose.Cells +- Excel automation +title: Tạo Sổ làm việc Excel với Bảng Được Định dạng – Hướng dẫn Từng bước +url: /vi/net/excel-workbook/create-excel-workbook-with-styled-table-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo Workbook Excel – Hướng Dẫn Lập Trình Đầy Đủ + +Bạn đã bao giờ cần **create excel workbook** trông chuyên nghiệp ngay từ mã nguồn chưa? Có thể bạn đang lấy dữ liệu từ cơ sở dữ liệu, và muốn các ngày hiển thị đúng định dạng mà không phải chỉnh sửa trong Excel sau này. Đó là một vấn đề phổ biến—đặc biệt khi kết quả được gửi vào hộp thư của khách hàng và họ mong mọi thứ đã sẵn sàng để sử dụng. + +Trong hướng dẫn này, chúng tôi sẽ trình bày một giải pháp duy nhất, tự chứa mà **imports datatable to excel**, áp dụng một **set column style**, và cuối cùng **export data to excel** dưới dạng tệp được định dạng đẹp mắt. Bạn sẽ thấy chính xác cách **format excel cells date** để bảng tính trông như một báo cáo chuyên nghiệp, và bạn sẽ nhận được một ví dụ đầy đủ, có thể chạy được ở cuối. Không có phần nào thiếu, không có các “xem tài liệu” rút gọn—chỉ có mã thuần túy mà bạn có thể đưa vào dự án ngay hôm nay. + +--- + +## Những Điều Bạn Sẽ Học + +- Cách **create excel workbook** bằng thư viện Aspose.Cells (hoặc bất kỳ API tương thích nào). +- Cách nhanh nhất để **import datatable to excel** mà không cần vòng lặp từng ô thủ công. +- Kỹ thuật **set column style**, bao gồm áp dụng định dạng ngày cho một cột cụ thể. +- Cách **export data to excel** chỉ với một lời gọi `Save`. +- Những khó khăn thường gặp khi bạn cố gắng **format excel cells date** và cách tránh chúng. + +### Yêu Cầu Trước + +- .NET 6+ (hoặc .NET Framework 4.6+). +- Aspose.Cells for .NET đã được cài đặt (`Install-Package Aspose.Cells`). +- `DataTable` đã sẵn sàng để xuất—nguồn dữ liệu của bạn có thể là SQL, CSV, hoặc bất kỳ gì có thể chuyển thành `DataTable`. + +Nếu bạn đã quen thuộc với C# và đã có những thành phần này, bạn đã sẵn sàng. Nếu không, phần “Prerequisites” ở trên sẽ cung cấp cho bạn một danh sách kiểm tra nhanh. + +--- + +## Bước 1 – Tạo Instance Workbook Excel + +Điều đầu tiên bạn làm khi muốn **create excel workbook** một cách lập trình là khởi tạo đối tượng workbook. Hãy nghĩ đây như mở một cuốn sổ trống, nơi bạn sẽ ghi dữ liệu sau này. + +```csharp +using Aspose.Cells; +using System.Data; + +// Step 1: Create a new workbook (or load an existing one) +Workbook workbook = new Workbook(); +``` + +> **Tại sao điều này quan trọng:** +> Lớp `Workbook` là điểm khởi đầu cho mọi thao tác trong Aspose.Cells. Tạo nó ngay từ đầu cung cấp cho bạn một canvas sạch, và bạn có thể tải một tệp hiện có nếu cần thêm dữ liệu thay vì bắt đầu từ đầu. + +--- + +## Bước 2 – Chuẩn Bị DataTable Để Nhập + +Trước khi chúng ta có thể **import datatable to excel**, chúng ta cần một `DataTable`. Trong các dự án thực tế, nó thường đến từ `SqlDataAdapter.Fill` hoặc `DataTable.Load`. Để minh bạch, chúng tôi sẽ tạo một phương thức giả trả về một bảng đã sẵn sàng. + +```csharp +// Step 2: Obtain the data to be written – a DataTable with three columns +DataTable dataTable = GetData(); // assume GetData() returns the required table + +// Example implementation (you can replace this with your own data source) +DataTable GetData() +{ + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; +} +``` + +> **Mẹo:** Nếu ngày của bạn được lưu dưới dạng chuỗi, hãy chuyển chúng sang `DateTime` trước—nếu không bước **format excel cells date** sẽ không hoạt động như mong đợi. + +--- + +## Bước 3 – Định Nghĩa Kiểu Dáng Cho Mỗi Cột (Set Column Style) + +Bây giờ là phần chúng ta **set column style**. Chúng ta sẽ tạo một mảng các đối tượng `Style`—một cho mỗi cột. Cột đầu tiên nhận định dạng ngày tích hợp sẵn (code 14), trong khi các cột còn lại giữ định dạng chung (code 0). + +```csharp +// Step 3: Define a style for each column; apply a date format to the first column +Style[] columnStyles = new Style[3]; +for (int i = 0; i < columnStyles.Length; i++) +{ + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date format, 0 = general +} +``` + +> **Tại sao dùng các đối tượng style?** +> Áp dụng một style một lần và tái sử dụng nó hiệu quả hơn nhiều so với việc đặt định dạng cho từng ô riêng lẻ. Nó cũng đảm bảo toàn bộ cột tuân theo cùng một quy tắc **format excel cells date**, điều này rất quan trọng để duy trì tính nhất quán khi tệp được mở ở các khu vực ngôn ngữ khác nhau. + +--- + +## Bước 4 – Nhập DataTable Kèm Style Vào Worksheet + +Với workbook đã sẵn sàng và các style đã được định nghĩa, chúng ta bây giờ **import datatable to excel**. Phương thức `ImportDataTable` thực hiện công việc nặng: nó ghi tiêu đề cột, các hàng, và áp dụng các style mà chúng ta truyền vào. + +```csharp +// Step 4: Access the first worksheet and import the DataTable using the styles +Worksheet worksheet = workbook.Worksheets[0]; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +> **Đi gì đang diễn ra bên trong?** +> - `true` báo cho Aspose.Cells bao gồm tên cột ở hàng đầu tiên. +> - `0, 0` là chỉ số hàng và cột bắt đầu (góc trên‑trái). +> - `columnStyles` gắn mỗi cột với style mà chúng ta chuẩn bị, đảm bảo quy tắc **format excel cells date** được áp dụng cho cột ngày. + +--- + +## Bước 5 – Lưu (Export) Workbook Thành Tệp Vật Lý + +Cuối cùng, chúng ta **export data to excel** bằng cách lưu workbook vào đĩa. Bạn có thể thay đổi đường dẫn thành bất kỳ thư mục nào, hoặc thậm chí stream tệp trực tiếp tới phản hồi HTTP cho một web API. + +```csharp +// Step 5: Save the workbook with the styled table +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +> **Mẹo chuyên nghiệp:** Sử dụng `workbook.Save(Stream, SaveFormat.Xlsx)` khi bạn cần gửi tệp qua mạng mà không ghi vào đĩa. + +--- + +## 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, sẵn sàng chạy. Sao chép‑dán vào một ứng dụng console, điều chỉnh đường xuất, và bạn sẽ có một tệp Excel được định dạng đẹp trong vài giây. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // 1️⃣ Create the workbook + Workbook workbook = new Workbook(); + + // 2️⃣ Get the data (replace GetData with your own source if needed) + DataTable dataTable = GetData(); + + // 3️⃣ Prepare column styles – date format for the first column + Style[] columnStyles = new Style[3]; + for (int i = 0; i < columnStyles.Length; i++) + { + columnStyles[i] = workbook.CreateStyle(); + columnStyles[i].Number = (i == 0) ? 14 : 0; // 14 = date, 0 = general + } + + // 4️⃣ Import the DataTable with the styles + Worksheet worksheet = workbook.Worksheets[0]; + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // 5️⃣ Save the file + workbook.Save("StyledTable.xlsx"); + + Console.WriteLine("Excel workbook created successfully!"); + } + + // Sample data generator – replace with real data source + static DataTable GetData() + { + DataTable dt = new DataTable(); + dt.Columns.Add("OrderDate", typeof(DateTime)); + dt.Columns.Add("Product", typeof(string)); + dt.Columns.Add("Quantity", typeof(int)); + + dt.Rows.Add(DateTime.Today.AddDays(-2), "Apples", 120); + dt.Rows.Add(DateTime.Today.AddDays(-1), "Bananas", 85); + dt.Rows.Add(DateTime.Today, "Cherries", 60); + return dt; + } +} +``` + +**Kết quả mong đợi:** +Khi bạn mở `StyledTable.xlsx`, cột A hiển thị ngày như `03/19/2026` (tùy vào khu vực của bạn), trong khi các cột B và C hiển thị tên sản phẩm và số lượng dưới dạng văn bản/ số thông thường. Không cần bước định dạng bổ sung—quá trình **create excel workbook** của bạn đã hoàn tất. + +--- + +## Câu Hỏi Thường Gặp & Trường Hợp Đặc Biệt + +### 1️⃣ Nếu DataTable của tôi có nhiều hơn ba cột thì sao? +Thêm nhiều đối tượng `Style` vào mảng `columnStyles`, và điều chỉnh thuộc tính `Number` cho bất kỳ cột nào cần định dạng đặc biệt (ví dụ: tiền tệ, phần trăm). Phương thức `ImportDataTable` sẽ khớp mỗi style theo vị trí. + +### 2️⃣ Tôi có thể áp dụng định dạng ngày tùy chỉnh thay vì 14 tích hợp sẵn không? +Chắc chắn. Thay `columnStyles[i].Number = 14;` bằng: + +```csharp +columnStyles[i].Number = 22; // built‑in custom format ID +columnStyles[i].Custom = "dd‑MMM‑yyyy"; // or any .NET date pattern you like +``` + +### 3️⃣ Làm thế nào để **export data to excel** trong một web API mà không ghi vào đĩa? +Sử dụng một `MemoryStream`: + +```csharp +using (var ms = new MemoryStream()) +{ + workbook.Save(ms, SaveFormat.Xlsx); + ms.Position = 0; + // return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); +} +``` + +### 4️⃣ Nếu khu vực của người dùng yêu cầu dấu phân cách ngày khác thì sao? +Định dạng ngày tích hợp sẵn (ID 14) tôn trọng cài đặt locale của workbook. Nếu bạn cần một định dạng cố định bất chấp locale, hãy sử dụng thuộc tính `Custom` như đã minh họa ở trên. + +### 5️⃣ Điều này có hoạt động với .NET Core không? +Có—Aspose.Cells hỗ trợ .NET Standard 2.0 và các phiên bản sau, vì vậy cùng một đoạn mã chạy trên .NET 6, .NET 7, hoặc bất kỳ runtime tương thích nào. + +--- + +## Mẹo Thực Hành Tốt Nhất (Pro Tips) + +- **Reuse styles**: Tạo một style cho mỗi cột là rẻ, nhưng tái sử dụng cùng một đối tượng style cho các cột giống nhau sẽ tiết kiệm bộ nhớ. +- **Avoid cell‑by‑cell loops**: `ImportDataTable` được tối ưu cao; các vòng lặp thủ công chậm hơn và dễ gây lỗi. +- **Set workbook culture early** nếu bạn cần dấu phân cách số/ngày nhất quán trên mọi môi trường: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("en-US"); +``` + +- **Validate DataTable** trước khi nhập—các ngày null sẽ gây ngoại lệ khi áp dụng style ngày. +- **Turn on calculation** nếu bạn thêm công thức sau khi nhập: + +```csharp +workbook.CalculateFormula(); +``` + +--- + +## Kết Luận + +Bạn giờ đã có một công thức hoàn chỉnh, từ đầu đến cuối để **create excel workbook**, **import datatable to excel**, **set column style**, **export data to excel**, và **format excel cells date**—tất cả trong chưa đầy một chục dòng code C#. Cách tiếp cận này nhanh, đáng tin cậy, và giữ mọi lo lắng về định dạng trong code, vì vậy bảng tính cuối cùng đã sẵn sàng cho người dùng kinh doanh ngay khi họ mở nó. + +Sẵn sàng cho thử thách tiếp theo? Hãy thử thêm định dạng có điều kiện, chèn biểu đồ, hoặc chuyển đổi the + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/row-and-column-management/_index.md b/cells/vietnamese/net/row-and-column-management/_index.md index 6984e03f22..01a4e6ea6d 100644 --- a/cells/vietnamese/net/row-and-column-management/_index.md +++ b/cells/vietnamese/net/row-and-column-management/_index.md @@ -66,6 +66,10 @@ Tìm hiểu cách bỏ ẩn hàng và cột trong Excel bằng Aspose.Cells cho Tìm hiểu cách xóa một cột trong tệp Excel bằng Aspose.Cells cho .NET. Làm theo hướng dẫn chi tiết từng bước của chúng tôi để sắp xếp hợp lý các sửa đổi tệp Excel của bạn. ### [Xóa một hàng trong Aspose.Cells .NET](./delete-row-aspose-cells/) Tìm hiểu cách xóa một hàng trong Excel bằng Aspose.Cells cho .NET. Hướng dẫn từng bước này bao gồm các điều kiện tiên quyết, nhập mã và hướng dẫn chi tiết để thao tác dữ liệu liền mạch. + +### [Tải tệp Excel C# – Cách xóa hàng và loại bỏ các hàng cụ thể](./load-excel-file-c-how-to-delete-rows-and-remove-specific-row/) +Hướng dẫn chi tiết cách tải tệp Excel bằng C# và xóa các hàng không mong muốn, bao gồm việc loại bỏ các hàng cụ thể. + ### [Xóa nhiều hàng trong Aspose.Cells .NET](./delete-multiple-rows-aspose-cells/) Học cách xóa nhiều hàng trong Excel bằng Aspose.Cells cho .NET. Hướng dẫn chi tiết từng bước này bao gồm các điều kiện tiên quyết, ví dụ mã hóa và câu hỏi thường gặp dành cho nhà phát triển. ### [Chèn một cột vào Aspose.Cells .NET](./insert-column-aspose-cells/) diff --git a/cells/vietnamese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md b/cells/vietnamese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md new file mode 100644 index 0000000000..e1d937ba85 --- /dev/null +++ b/cells/vietnamese/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-21 +description: Tải tệp Excel bằng C# và xóa các hàng dữ liệu bằng Aspose.Cells. Học + cách xóa hàng, loại bỏ các hàng cụ thể và thành thạo việc xóa hàng trong Excel bằng + C# chỉ trong vài phút. +draft: false +keywords: +- load excel file c# +- how to delete rows +- remove specific rows +- remove data rows +- c# excel row deletion +language: vi +og_description: Tải tệp Excel C# và nhanh chóng xóa các hàng, loại bỏ các hàng cụ + thể, và xử lý việc xóa hàng trong Excel bằng C# sử dụng Aspose.Cells. Hướng dẫn + chi tiết từng bước. +og_title: Tải tệp Excel C# – Xóa hàng & Loại bỏ các hàng cụ thể +tags: +- C# +- Excel +- Aspose.Cells +title: Tải tệp Excel C# – Cách xóa hàng và loại bỏ các hàng cụ thể +url: /vi/net/row-and-column-management/load-excel-file-c-how-to-delete-rows-and-remove-specific-row/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tải Tệp Excel C# – Cách Xóa Hàng và Loại Bỏ Các Hàng Cụ Thể + +Bạn đã bao giờ cần **load Excel file C#** và sau đó loại bỏ các hàng không cần thiết? Có thể bạn đang dọn dẹp một đống dữ liệu, hoặc bạn có một mẫu mà một số hàng phải biến mất trước khi gửi workbook cho khách hàng. Dù sao, vấn đề vẫn giống nhau: bạn có một tệp `.xlsx` nằm trên đĩa, bạn muốn mở nó trong .NET, và bạn cần **delete rows** mà không làm hỏng bất kỳ bảng ẩn hay đối tượng danh sách nào. + +Thực tế là—Aspose.Cells làm cho việc này trở nên dễ dàng. Trong hướng dẫn này, bạn sẽ thấy một ví dụ hoàn chỉnh, sẵn sàng chạy, cho thấy chính xác **how to delete rows**, cách **remove specific rows**, và lý do tại sao bạn có thể quan tâm đến **c# excel row deletion** ngay từ đầu. Khi kết thúc, bạn sẽ có một tệp `output.xlsx` sạch sẽ chỉ chứa những hàng bạn muốn. + +## Những Điều Hướng Dẫn Này Bao Quát + +- Tải một workbook Excel từ đĩa bằng cách sử dụng Aspose.Cells. +- Xóa một dải hàng (ví dụ, hàng 5‑10) trong khi tôn trọng bất kỳ tiêu đề ListObject nào. +- Lưu workbook đã chỉnh sửa trở lại hệ thống tệp. +- Các lỗi thường gặp, chẳng hạn như vô tình xóa hàng trong bảng, và các mẹo xử lý chúng. +- Một mẫu mã đầy đủ, có thể chạy được mà bạn có thể chèn vào một ứng dụng console ngay hôm nay. + +> **Yêu cầu trước** +> • .NET 6+ (or .NET Framework 4.6+). +> • Aspose.Cells cho .NET được cài đặt qua NuGet (`Install-Package Aspose.Cells`). +> • Hiểu biết cơ bản về C# và các khái niệm Excel (worksheet, cell, table). + +Nếu bạn tự hỏi **why you should use Aspose.Cells** thay vì, ví dụ, `Microsoft.Office.Interop.Excel`, câu trả lời là tốc độ, không cần COM, và khả năng chạy trên máy chủ mà không cần cài đặt Office. Thêm nữa, API rất đơn giản cho các tác vụ xóa hàng. + +--- + +## Bước 1: Tải Workbook Excel trong C# + +Trước khi bạn có thể xóa bất kỳ thứ gì, bạn cần đưa workbook vào bộ nhớ. Lớp `Workbook` đại diện cho toàn bộ tệp Excel. + +```csharp +using Aspose.Cells; + +// Step 1: Load the workbook and obtain the target worksheet +// Replace YOUR_DIRECTORY with the actual path on your machine. +string inputPath = Path.Combine("YOUR_DIRECTORY", "input.xlsx"); +Workbook workbook = new Workbook(inputPath); + +// Grab the first worksheet (index 0). Adjust the index if you need another sheet. +Worksheet ws = workbook.Worksheets[0]; +``` + +**Tại sao điều này quan trọng:** +Việc tải tệp tạo ra một đồ thị đối tượng phản ánh cấu trúc Excel—worksheet, cell, table, v.v. Khi giữ một tham chiếu tới `ws`, bạn có thể thao tác trực tiếp trên các hàng mà không lo về khóa tệp hay các vấn đề COM interop. + +--- + +## Bước 2: Xóa Các Hàng Chỉ Chứa Dữ Liệu + +Bây giờ workbook đã ở trong bộ nhớ, bạn có thể xóa các hàng. Phương thức `Cells.DeleteRows(startRow, totalRows)` loại bỏ một khối liên tiếp. Trong ví dụ của chúng tôi, chúng ta sẽ loại bỏ các hàng 5‑10. + +```csharp +// Step 2: Delete rows that contain only data (rows 5‑10) +// This operation will be blocked only if a ListObject header exists at row 4. +int startRow = 5; // Row numbers are zero‑based in Aspose.Cells +int numberOfRows = 10; // Delete 10 rows starting from row 5 +ws.Cells.DeleteRows(startRow, numberOfRows); +``` + +**Cách hoạt động:** +- `startRow` được tính từ 0, vì vậy `5` thực tế là hàng 6 trong Excel. Điều chỉnh cho phù hợp. +- Nếu worksheet chứa một **ListObject** (bảng Excel) có tiêu đề ở hàng 4, Aspose.Cells sẽ bảo vệ tiêu đề và chỉ xóa các hàng dữ liệu phía dưới. Tính năng bảo vệ này ngăn bạn làm hỏng các bảng có cấu trúc—một trường hợp thường gặp khi **removing data rows**. + +> **Mẹo chuyên nghiệp:** Nếu bạn cần xóa các hàng không liên tiếp (ví dụ, hàng 3, 7, 12), hãy lặp qua một tập hợp các chỉ số hàng theo thứ tự ngược lại và gọi `DeleteRows(rowIndex, 1)` cho mỗi hàng. Xóa từ dưới lên sẽ giữ nguyên chỉ số gốc cho các hàng còn lại. + +--- + +## Bước 3: Lưu Workbook Đã Sửa Đổi + +Khi các hàng không mong muốn đã bị xóa, bạn chỉ cần ghi workbook trở lại đĩa. + +```csharp +// Step 3: Save the workbook with the rows removed +string outputPath = Path.Combine("YOUR_DIRECTORY", "output.xlsx"); +workbook.Save(outputPath); +``` + +Phương thức `Save` tự động xác định định dạng tệp dựa trên phần mở rộng (`.xlsx` trong trường hợp này). Nếu bạn cần định dạng khác—CSV, PDF, v.v.—chỉ cần thay đổi phần mở rộng hoặc truyền một enum `SaveFormat`. + +### Kết Quả Dự Kiến + +Mở `output.xlsx` trong Excel và bạn sẽ thấy rằng các hàng 5‑14 (các hàng gốc 5‑10) đã biến mất. Tất cả dữ liệu còn lại sẽ dịch lên tương ứng, và bất kỳ công thức nào tham chiếu đến các hàng đã xóa sẽ được Aspose.Cells tự động điều chỉnh. + +--- + +## Câu Hỏi Thường Gặp (FAQ) + +### Làm thế nào để xóa các hàng dựa trên một điều kiện (ví dụ, tất cả các hàng mà cột A trống)? + +```csharp +for (int i = ws.Cells.MaxDataRow; i >= 0; i--) +{ + if (string.IsNullOrWhiteSpace(ws.Cells[i, 0].StringValue)) + { + ws.Cells.DeleteRows(i, 1); + } +} +``` + +Vòng lặp chạy ngược lại để tránh việc thay đổi chỉ số. Mẫu này trả lời câu hỏi rộng hơn về **c# excel row deletion** khi bạn cần logic có điều kiện. + +### Nếu worksheet của tôi chứa nhiều ListObject thì sao? + +Aspose.Cells xử lý mỗi ListObject một cách độc lập. Nếu tiêu đề của bất kỳ bảng nào sẽ bị ảnh hưởng bởi phạm vi xóa, API sẽ ném ra một `InvalidOperationException`. Để khắc phục, bạn có thể điều chỉnh phạm vi hoặc tạm thời xóa thuộc tính `ShowTableStyleFirstColumn` của ListObject, thực hiện việc xóa, sau đó khôi phục lại. + +### Tôi có thể xóa các hàng mà không tải toàn bộ workbook vào bộ nhớ không? + +Có—Aspose.Cells cung cấp một **streaming API** (`Workbook.LoadOptions`) cho phép đọc dữ liệu theo từng khối. Tuy nhiên, việc xóa hàng vốn yêu cầu cấu trúc của worksheet, vì vậy bạn vẫn cần tải sheet mục tiêu vào bộ nhớ. Đối với các tệp lớn (>500 MB), hãy cân nhắc xử lý theo lô hoặc sử dụng **cell‑by‑cell** API. + +--- + +## Ví Dụ Đầy Đủ, Có Thể Chạy + +Dưới đây là chương trình hoàn chỉnh mà bạn có thể biên dịch và chạy như một ứng dụng console. Thay `YOUR_DIRECTORY` bằng đường dẫn thư mục thực tế trên máy của bạn. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +namespace ExcelRowDeletionDemo +{ + class Program + { + static void Main(string[] args) + { + // ---------- Configuration ---------- + string baseDir = @"YOUR_DIRECTORY"; // e.g., "C:\Temp\ExcelDemo" + string inputFile = Path.Combine(baseDir, "input.xlsx"); + string outputFile = Path.Combine(baseDir, "output.xlsx"); + + // ---------- Step 1: Load workbook ---------- + Workbook workbook = new Workbook(inputFile); + Worksheet ws = workbook.Worksheets[0]; // first sheet + + // ---------- Step 2: Delete rows ---------- + // Delete rows 5‑10 (zero‑based index 5, delete 10 rows) + int startRow = 5; + int rowsToDelete = 10; + ws.Cells.DeleteRows(startRow, rowsToDelete); + Console.WriteLine($"Deleted {rowsToDelete} rows starting at index {startRow}."); + + // ---------- Step 3: Save the result ---------- + workbook.Save(outputFile); + Console.WriteLine($"Workbook saved to {outputFile}"); + } + } +} +``` + +**Chạy mã:** +1. Mở terminal hoặc Visual Studio. +2. `dotnet new console -n ExcelRowDeletionDemo` +3. Thay `Program.cs` bằng đoạn mã trên. +4. `dotnet add package Aspose.Cells` +5. `dotnet run` + +Bạn sẽ thấy đầu ra console xác nhận việc xóa và vị trí của tệp đã lưu. + +--- + +## Các Sai Lầm Thường Gặp & Cách Tránh Chúng + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Vô tình xóa tiêu đề ListObject** | `DeleteRows` không kiểm tra tiêu đề bảng ẩn khi phạm vi xóa chồng lên chúng. | Đảm bảo hàng bắt đầu của bạn là **sau** bất kỳ tiêu đề bảng nào, hoặc sử dụng API `ListObject` để xóa các hàng bên trong bảng (`ListObject.DeleteRows`). | +| **Chỉ số hàng lệch một** | Aspose.Cells sử dụng chỉ số bắt đầu từ 0, trong khi người dùng Excel nghĩ theo chỉ số bắt đầu từ 1. | Hãy nhớ trừ 1 từ số hàng Excel khi viết mã. | +| **Công thức bị lỗi sau khi xóa** | Xóa hàng có thể gây lỗi `#REF!` nếu công thức tham chiếu đến các hàng đã bị xóa. | Aspose.Cells tự động cập nhật hầu hết các công thức, nhưng hãy kiểm tra lại bất kỳ tham chiếu bên ngoài hoặc phạm vi đặt tên nào. | +| **Hiệu năng chậm lại trên tệp lớn** | Xóa nhiều hàng gây ra việc tái lập chỉ mục nội bộ. | Thực hiện xóa hàng theo lô (xóa một dải lớn một lần) thay vì xóa từng hàng một. Sử dụng `DeleteRows(start, count)` bất cứ khi nào có thể. | + +--- + +## Các Bước Tiếp Theo & Chủ Đề Liên Quan + +- **Loại bỏ các hàng cụ thể dựa trên giá trị ô:** Kết hợp vòng lặp có điều kiện được trình bày trong FAQ với `DeleteRows`. +- **Chèn hàng hàng loạt:** Sử dụng `InsertRows` để thêm các hàng placeholder trước khi điền dữ liệu. +- **Làm việc với bảng (ListObjects):** Khám phá các phương thức `ListObject` cho các thao tác ở mức hàng trong các bảng có cấu trúc. +- **Xuất ra CSV sau khi xóa hàng:** Gọi `workbook.Save("output.csv", SaveFormat.Csv)` để tạo một tệp CSV sạch sẽ mà không có các hàng đã xóa. + +Mỗi mục này dựa trên quy trình **load excel file c#** cốt lõi mà bạn vừa nắm vững, cho phép bạn tinh chỉnh các tệp Excel một cách lập trình. + +--- + +## Kết Luận + +Chúng tôi đã đi qua một kịch bản thực tế của **load excel file c#**, trình bày **how to delete rows**, và đề cập đến các chi tiết của **remove specific rows** và **remove data rows** bằng Aspose.Cells. Bằng cách tải workbook, gọi `DeleteRows`, và lưu kết quả, bạn đạt được **c# excel row deletion** đáng tin cậy mà không gặp chi phí của COM interop. + +Hãy thử trên một bộ dữ liệu thực tế—có thể dọn dẹp báo cáo bán hàng hoặc loại bỏ các hàng thử nghiệm khỏi mẫu. Khi bạn đã quen, hãy thử nghiệm các xóa có điều kiện và các thao tác nhận thức bảng. API đủ mạnh cho cả script đơn giản và các bộ xử lý hàng loạt cấp doanh nghiệp. + +Chúc lập trình vui vẻ, và đừng ngại để lại bình luận nếu bạn gặp bất kỳ khó khăn nà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/vietnamese/net/worksheet-operations/_index.md b/cells/vietnamese/net/worksheet-operations/_index.md index 04740ad920..e3e207090b 100644 --- a/cells/vietnamese/net/worksheet-operations/_index.md +++ b/cells/vietnamese/net/worksheet-operations/_index.md @@ -72,6 +72,8 @@ Tìm hiểu cách thiết lập nền đồ họa trong tệp ODS bằng Aspose. Học cách cập nhật lịch sử nhật ký sửa đổi trong sổ làm việc được chia sẻ bằng Aspose.Cells cho .NET. Đơn giản hóa việc cộng tác và duy trì hồ sơ tài liệu rõ ràng. ### [Sử dụng thuộc tính Sheet_SheetId của OpenXml trong Worksheet](./utilize-sheet-sheetid-property/) Mở khóa sức mạnh của Excel với Aspose.Cells cho .NET. Tìm hiểu cách thao tác hiệu quả với Sheet ID với hướng dẫn từng bước của chúng tôi. +### [Cách tạo Worksheet – Hướng dẫn từng bước cho việc tạo Excel động](./how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/) +Khám phá cách tạo các worksheet trong Excel một cách động bằng Aspose.Cells cho .NET với hướng dẫn chi tiết từng bước. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md b/cells/vietnamese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md new file mode 100644 index 0000000000..a37d921001 --- /dev/null +++ b/cells/vietnamese/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-21 +description: Học cách tạo các trang tính, tạo tệp Excel với tên trang tính động và + lưu sổ làm việc dưới dạng XLSX bằng Aspose.Cells trong C#. +draft: false +keywords: +- how to create worksheets +- save workbook as xlsx +- generate excel sheets +- dynamic worksheet names +- process master sheet +language: vi +og_description: Cách tạo các trang tính trong Excel bằng Aspose.Cells, tạo các sheet + Excel với tên trang tính động và lưu workbook dưới dạng XLSX. +og_title: Cách tạo bảng tính – Hướng dẫn C# đầy đủ +tags: +- Aspose.Cells +- C# +- Excel automation +title: Cách Tạo Bảng Tính – Hướng Dẫn Từng Bước cho Việc Tạo Excel Động +url: /vi/net/worksheet-operations/how-to-create-worksheets-step-by-step-guide-for-dynamic-exce/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Tạo Worksheet – Hướng Dẫn Toàn Diện C# + +Bạn đã bao giờ tự hỏi **cách tạo worksheets** một cách nhanh chóng mà không cần mở Excel thủ công mỗi lần? 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 **tạo ra các Excel sheet** từ nguồn dữ liệu và muốn mỗi sheet có một tên có ý nghĩa, động. Tin tốt là gì? Với Aspose.Cells bạn có thể tự động hoá toàn bộ quy trình, **process master sheet**, và cuối cùng **save workbook as XLSX** chỉ trong vài dòng code. + +> **Prerequisites** +> • .NET 6+ (hoặc .NET Framework 4.6+). +> • Aspose.Cells for .NET (bản dùng thử miễn phí hoạt động cho demo này). +> • Kiến thức cơ bản về C#—không cần các thủ thuật sâu về Excel interop. + +--- + +## Tổng Quan Về Những Gì Chúng Ta Sẽ Xây Dựng + +- **Master sheet** chứa một placeholder smart‑marker (`«DetailSheetNewName:Dept»`). +- **SmartMarkerProcessor** đọc một nguồn dữ liệu (ví dụ, một `DataTable`) và tạo một worksheet mới cho mỗi phòng ban. +- **Dynamic worksheet names** theo mẫu `Dept_{0}` trong đó `{0}` được thay thế bằng tên phòng ban. +- **Final XLSX file** được lưu vào thư mục bạn chỉ định. + +Đó là tất cả. Đơn giản, nhưng đủ mạnh cho hoá đơn, báo cáo, hoặc bất kỳ đầu ra Excel đa‑tab nào. + +![Sơ đồ cho thấy cách một master sheet được xử lý để tạo ra nhiều worksheet động](/images/how-to-create-worksheets-diagram.png "Sơ đồ tạo worksheets") + +*Alt text: minh họa cách tạo worksheets với tên worksheet động bằng Aspose.Cells.* + +## Bước 1: Thiết Lập Dự Án và Thêm Aspose.Cells + +### Tại sao điều này quan trọng +Trước khi bất kỳ đoạn code nào chạy, trình biên dịch cần biết các lớp `Workbook`, `Worksheet`, và `SmartMarkerProcessor` nằm ở đâu. Thêm gói NuGet đảm bảo bạn có API mới nhất, đầy đủ tính năng. + +```csharp +// Install via CLI +// dotnet add package Aspose.Cells + +using Aspose.Cells; +using System.Data; +``` + +> **Pro tip:** Nếu bạn đang dùng Visual Studio, nhấp chuột phải vào dự án → *Manage NuGet Packages* → tìm *Aspose.Cells* và cài đặt phiên bản ổn định mới nhất. + +--- + +## Bước 2: Tạo Một Workbook Mới và Master Sheet + +### Những gì chúng ta đang làm +Chúng ta bắt đầu với một workbook trống, sau đó lấy worksheet đầu tiên (chỉ số 0). Sheet này sẽ đóng vai trò là **master sheet** chứa token smart‑marker. + +```csharp +// Step 1: Create a new workbook and get the first worksheet (master sheet) +Workbook workbook = new Workbook(); +Worksheet masterSheet = workbook.Worksheets[0]; + +// Optional: give the master sheet a friendly name +masterSheet.Name = "Master"; +``` + +Lớp `Workbook` là container cho tất cả các worksheet. Mặc định nó tạo một sheet tên *Sheet1*; đổi tên nó thành “Master” giúp file cuối cùng dễ dàng điều hướng hơn. + +## Bước 3: Chèn Token Smart‑Marker cho Tên Sheet Chi Tiết + +### Tại sao lại dùng smart‑marker? +Smart markers cho phép Aspose.Cells thay thế các placeholder bằng dữ liệu tại thời gian chạy. Token `«DetailSheetNewName:Dept»` nói với bộ xử lý: *“Khi thấy token này, tạo một sheet chi tiết mới cho mỗi hàng trong cột `Dept`.”* + +```csharp +// Step 2: Place a smart‑marker token that will be replaced with detail sheet names +masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); +``` + +Bạn có thể đặt token ở bất kỳ vị trí nào; chúng tôi chọn **A1** để dễ nhìn. Khi bộ xử lý chạy, nó sẽ thay token bằng tên phòng ban thực tế và tạo một worksheet tương ứng. + +## Bước 4: Chuẩn Bị Nguồn Dữ Liệu + +### Cách dữ liệu điều khiển việc tạo sheet +Aspose.Cells làm việc với bất kỳ nguồn dữ liệu `IEnumerable` nào. Trong demo này chúng ta sẽ dùng một `DataTable` có một cột duy nhất tên `Dept`. + +```csharp +// Sample data source: list of departments +DataTable dataSource = new DataTable(); +dataSource.Columns.Add("Dept", typeof(string)); + +// Populate with example rows +dataSource.Rows.Add("Finance"); +dataSource.Rows.Add("HR"); +dataSource.Rows.Add("IT"); +dataSource.Rows.Add("Marketing"); +``` + +> **Nếu bạn có nhiều cột hơn?** +> Bộ xử lý sẽ bỏ qua các cột thừa trừ khi bạn tham chiếu chúng trong các smart marker bổ sung. Điều này giúp việc tạo sheet nhẹ nhàng hơn. + +## Bước 5: Cấu Hình SmartMarkerProcessor và Mẫu Đặt Tên + +### Tên worksheet động đang hoạt động +Chúng ta muốn mỗi sheet mới được đặt tên `Dept_Finance`, `Dept_HR`, v.v. Tùy chọn `DetailSheetNewName` cho phép định nghĩa mẫu trong đó `{0}` được thay thế bằng tên phòng ban thực tế. + +```csharp +// Step 3: Initialise the SmartMarker processor and set the naming pattern for generated sheets +SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); +processor.Options.DetailSheetNewName = "Dept_{0}"; // Aspose adds an index if needed +``` + +Nếu một phòng ban xuất hiện hai lần, Aspose sẽ tự động thêm hậu tố số (ví dụ, `Dept_Finance_1`) để tránh trùng tên sheet. + +## Bước 6: Xử Lý Master Sheet Để Tạo Các Sheet Chi Tiết + +### Trọng tâm của **process master sheet** +Gọi `Process` thực hiện công việc nặng: nó quét master sheet để tìm smart markers, tạo các worksheet mới, sao chép bố cục master, và điền dữ liệu của mỗi hàng vào. + +```csharp +// Step 4: Process the master sheet using the data source to create detail sheets +processor.Process(masterSheet, dataSource); +``` + +Sau lệnh này, workbook sẽ chứa một master sheet cộng với bốn sheet chi tiết—mỗi sheet được đặt tên theo mẫu và có tên phòng ban ở ô A1. + +## Bước 7: Lưu Workbook Dưới Dạng XLSX + +### Bước cuối cùng—**save workbook as XLSX** +Bây giờ các worksheet đã tồn tại, chúng ta ghi file ra đĩa. Bạn có thể chọn bất kỳ đường dẫn nào; chỉ cần đảm bảo thư mục tồn tại. + +```csharp +// Step 5: Save the resulting workbook to a file +string outputPath = @"C:\Temp\DetailSheets.xlsx"; +workbook.Save(outputPath, SaveFormat.Xlsx); +Console.WriteLine($"Workbook saved to {outputPath}"); +``` + +Mở `DetailSheets.xlsx` sẽ hiển thị: + +| Tên Sheet | Ô A1 (Nội dung) | +|------------|-------------------| +| Master | «DetailSheetNewName:Dept» (không thay đổi) | +| Dept_Finance | Finance | +| Dept_HR | HR | +| Dept_IT | IT | +| Dept_Marketing | Marketing | + +> **Trường hợp đặc biệt:** Nếu thư mục đầu ra không tồn tại, `Save` sẽ ném `DirectoryNotFoundException`. Hãy bọc lệnh trong khối try‑catch hoặc tạo thư mục trước. + +## Ví Dụ Hoàn Chỉnh + +Kết hợp tất cả lại, đây là chương trình đầy đủ bạn có thể sao chép‑dán vào một console app: + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace ExcelDynamicSheetsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create workbook and master sheet + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert smart‑marker token + masterSheet.Cells["A1"].PutValue("«DetailSheetNewName:Dept»"); + + // 3️⃣ Build data source (departments) + DataTable dataSource = new DataTable(); + dataSource.Columns.Add("Dept", typeof(string)); + dataSource.Rows.Add("Finance"); + dataSource.Rows.Add("HR"); + dataSource.Rows.Add("IT"); + dataSource.Rows.Add("Marketing"); + + // 4️⃣ Configure processor with dynamic naming + SmartMarkerProcessor processor = new SmartMarkerProcessor(workbook); + processor.Options.DetailSheetNewName = "Dept_{0}"; + + // 5️⃣ Process master sheet → generate detail sheets + processor.Process(masterSheet, dataSource); + + // 6️⃣ Save as XLSX + string outputPath = @"C:\Temp\DetailSheets.xlsx"; + try + { + workbook.Save(outputPath, SaveFormat.Xlsx); + Console.WriteLine($"✅ Workbook saved to {outputPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"❌ Failed to save workbook: {ex.Message}"); + } + } + } +} +``` + +Chạy chương trình, mở file kết quả, và bạn sẽ thấy đúng bố cục đã mô tả ở trên. Không cần sao chép‑dán thủ công, không cần COM interop—chỉ cần code C# sạch sẽ **tạo ra Excel sheets** với **dynamic worksheet names**. + +## Câu Hỏi Thường Gặp & Những Lưu Ý + +| Câu hỏi | Trả lời | +|----------|--------| +| *Tôi có thể sử dụng DataSet với nhiều bảng không?* | Có. Chỉ cần truyền bảng phù hợp vào `Process` hoặc dùng một dictionary các bảng. | +| *Nếu tôi cần hơn một smart‑marker trên master sheet thì sao?* | Đặt thêm token như `«DetailSheetNewName:Region»` và cấu hình mẫu đặt tên riêng nếu cần. | +| *Master sheet có được giữ lại trong file cuối cùng không?* | Mặc định, có. Nếu không cần, gọi `workbook.Worksheets.RemoveAt(0)` sau khi xử lý. | +| *Aspose xử lý các bộ dữ liệu rất lớn như thế nào?* | Nó stream dữ liệu hiệu quả, nhưng bạn có thể tăng `MemorySetting` nếu gặp giới hạn bộ nhớ. | +| *Tôi có thể xuất ra CSV thay vì XLSX không?* | Chắc chắn—sử dụng `workbook.Save("file.csv", SaveFormat.Csv)`. Logic tạo sheet vẫn giống nhau. | + +## Các Bước Tiếp Theo + +Bây giờ bạn đã biết **cách tạo worksheets** một cách động, bạn có thể khám phá: + +- **Saving workbook as XLSX** với bảo mật mật khẩu (`workbook.Protect("pwd")`). +- **Generating Excel sheets** từ nguồn JSON hoặc XML bằng `JsonDataSource` hoặc `XmlDataSource`. +- **Applying styles** cho mỗi sheet được tạo (phông chữ, màu) qua các đối tượng `Style`. +- **Merging cells** hoặc chèn công thức tự động cho báo cáo tổng hợp. + +Mỗi mở rộng này dựa trên cùng một khái niệm **process master sheet**, vì vậy bạn sẽ chuyển đổi một cách dễ dàng. + +## Kết Luận + +Chúng ta đã đi qua toàn bộ quy trình: từ khởi tạo workbook, chèn smart‑marker, cấu hình **dynamic worksheet names**, xử lý master sheet để **tạo Excel sheets**, và cuối cùng **lưu workbook dưới dạng XLSX**. Ví dụ đầy đủ, có thể chạy ngay, và thể hiện các thực hành tốt nhất về hiệu suất và khả năng bảo trì. + +Hãy thử, tùy chỉnh mẫu đặt tên, cung cấp dữ liệu thực tế của doanh nghiệp, và xem tự động hoá Excel của bạn bay cao. Nếu gặp khó khăn, để lại bình luận bên dưới—chúc lập trình vui! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file