در این مقاله، من توضیح می‌دهم که چگونه می‌توان ردیف‌ها و ستون‌های خالی را در یک فایل اکسل با استفاده از C# حذف کرد. من همچنین توضیح می‌دهم که چگونه می‌توان مراجع را به‌طور خودکار (استفاده‌شده در فرمول‌ها، نمودارها و جدول‌ها) هنگام حذف ردیف‌ها و ستون‌های خالی به‌روز کرد.

C# API برای حذف ردیف‌ها و ستون‌های خالی

Aspose.Cells for .NET یک API معروف برای دستکاری صفحات گسترده است که به شما اجازه می‌دهد تا فایل‌های Excel را از داخل برنامه‌های .NET خود ایجاد و پردازش کنید. این API به شما این امکان را می‌دهد که در چند خط کد، سطرها و ستون‌های خالی را در فایل‌های Excel حذف کنید. می‌توانید یا دانلود باینری‌های API را انجام دهید یا با استفاده از NuGet آن را نصب کنید.

PM> Install-Package Aspose.Cells

حذف سطرهای خالی در اکسل با استفاده از C#

مراحل زیر برای حذف تمام ردیف‌های خالی در Excel با استفاده از C# است.

  • یک فایل اکسل را با استفاده از شیء Workbook باز کنید.
  • به کاربرگ دسترسی پیدا کنید که دارای ردیف‌های خالی است. کاربرگ را می‌توان با استفاده از ایندکس (بر اساس صفر) یا نام دسترسی پیدا کرد.
  • Call Cells.DeleteBlankRows() method to delete all blank rows that do not contain any data.

کد نمونه زیر نشان می‌دهد که چگونه می‌توان ردیف‌های خالی را در اکسل با استفاده از C# حذف کرد.

using Aspose.Cells;

// یک فایل اکسل موجود را باز کنید.
Workbook wb = new Workbook("SampleInput.xlsx");

// مجموعه برگه‌های کار را در صفحه‌گسترده دریافت کنید.
WorksheetCollection sheets = wb.Worksheets;

// WorksheetCollection را بر اساس اندیس اولین Worksheet بگیرید.
Worksheet sheet = sheets[0];
// یا بر اساس نام.
// Worksheet sheet = sheets["Sheet1"];

// ر Rows خالی را از worksheet حذف کنید.
sheet.Cells.DeleteBlankRows();

// فایل اکسل را ذخیره کنید.
wb.Save("SampleOutput.xlsx");
حذف سطرهای خالی

شکل 1: حذف سطرهای خالی

لطفاً توجه داشته باشید که Cells.DeleteBlankRows روش ردیف‌های خالی را حتی اگر نوعی فرمت‌بندی به آنها اعمال شده باشد حذف می‌کند. همچنین ردیف‌های خالی فرمت‌شده زیر داده‌های شما را نیز حذف می‌کند.

حذف ردیف‌های خالی قالب بندی شده

شکل 2: حذف ردیف‌های خالی فرمت‌شده

اگر می‌خواهید ردیف‌های خالی را از همه‌ی ورق‌های کاری در یک سند اکسل حذف کنید، به سادگی بر روی WorksheetCollection تکرار کنید و متد DeleteBlankRows را بر روی هر ورق کاری طبق کد زیر فراخوانی کنید:

// یک فایل اکسل موجود را باز کنید.
Workbook workbook = new Workbook("SampleInput.xlsx");

// بر روی برگه‌ها تکرار کنید.
foreach (Worksheet sheet in workbook.Worksheets)
{
    // ر rows خالی را ازWorksheet حذف کنید.
    sheet.Cells.DeleteBlankRows();
}

// فایل اکسل را ذخیره کنید.
workbook.Save("SampleOutput.xlsx");

مراجع را به طور خودکار به روز کنید در حالی که ردیف‌های خالی را حذف می‌کنید

حذف ردیف‌های خالی می‌تواند ارجاعات در فرمول‌ها، نمودارها و جداول را خراب کند. به عنوان مثال، سلول B2 در صفحه‌گسترده دوم دارای یک فرمول =Sheet1!C3 است که به سلول C3 در صفحه‌گسترده اول اشاره دارد، همان‌طور که در شکل زیر نشان داده شده است.

یک سلول در Sheet2 به یک مقدار در Sheet1 اشاره می‌کند.

شکل ۳: یک سلول در Sheet2 به یک مقدار در Sheet1 ارجاع می‌دهد.

اگر ما سطرهای خالی را در Sheet1 حذف کنیم، مقدار lima@gmail.com به سلول C1 منتقل می‌شود. اما فرمول (=Sheet1!C3) به روزرسانی نخواهد شد و سلول B2 مقدار نامعتبری را که در زیر نشان داده شده است، خواهد داشت.

پس از حذف ردیف‌های خالی، فرمول در سلول B2 به‌روزرسانی نشده است.

Fig 4: پس از حذف سطرهای خالی، فرمول در سلول B2 به‌روز نشده است.

ما می‌توانیم با استفاده از DeleteOptions.UpdateReference ویژگی و تنظیم آن به true این مشکل را برطرف کنیم. این اطمینان را می‌دهد که مراجع هنگام حذف سطرهای خالی به‌روز می‌شوند. کد نمونه زیر نشان می‌دهد که چگونه می‌توان از ویژگی DeleteOptions.UpdateReference استفاده کرد.

// یک فایل اکسل موجود را باز کنید.
Workbook wb = new Workbook("SampleInput.xlsx");

// مجموعه ورق‌های کاری را در صفحه‌گسترده دریافت کنید.
WorksheetCollection sheets = wb.Worksheets;

// WorksheetCollection را بر اساس شاخص، اولین Worksheet را بگیرید.
Worksheet sheet = sheets[0];

// این گزینه اطمینان حاصل می‌کند که ارجاعات (در فرمول‌ها، نمودارها)
// are updated while deleting blank rows.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// سطرهای خالی را از صفحه کار حذف کنید.
sheet.Cells.DeleteBlankRows(options);

// Save the excel file.
wb.Save("SampleOutput.xlsx");

همانطور که در تصویر زیر نشان داده شده است، فرمول به‌روزرسانی شده و سلول B2 دارای یک مقدار معتبر است.

فرمول به‌روزرسانی شده و سلول حاوی یک مقدار معتبر است.

شکل ۵: فرمول به‌روزرسانی شده و سلول حاوی یک مقدار معتبر است.

سطرهای خالی را در اکسل با استفاده از C# حذف کنید

مراحل حذف ستون‌های خالی مشابه مراحل حذف ردیف‌های خالی است. ما از Cells.DeleteBlankColumns متد برای حذف همه ستون‌های خالی که هیچ داده‌ای ندارند استفاده می‌کنیم. کد نمونه زیر نحوه حذف ردیف‌ها و ستون‌های خالی را در C# نشان می‌دهد.

// یک فایل اکسل موجود را باز کنید.
Workbook wb = new Workbook("SampleInput.xlsx");

// مجموعه worksheet ها را در صفحه گسترش بگیرید.
WorksheetCollection sheets = wb.Worksheets;

// اولین Worksheet را از WorksheetCollection بر اساس ایندکس دریافت کنید.
Worksheet sheet = sheets[0];

// این گزینه اطمینان حاصل می‌کند که مراجع (در فرمول‌ها، نمودارها)
// are updated while deleting blank rows and columns.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// سطرها و ستون‌های خالی را حذف کنید.
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);

// محاسبه فرمول‌های کاربرگ
wb.CalculateFormula();

// Save the excel file.
wb.Save("SampleOutput.xlsx");
حذف ردیف‌ها و ستون‌های خالی

شکل 6: حذف ردیف‌ها و ستون‌های خالی

نتیجه گیری

در این مقاله، یاد گرفته‌اید که چگونه ردیف‌ها و ستون‌های خالی را در فایل Excel با استفاده از C# حذف کنید. علاوه بر این، یاد گرفته‌اید که چگونه مراجع (استفاده شده در فرمول‌ها، نمودارها و جداول) را به‌طور خودکار در حین حذف ردیف‌ها و ستون‌های خالی به‌روزرسانی کنید. لطفاً documentation Aspose.Cells برای .NET را برای اطلاعات بیشتر بررسی کنید. اگر سوالی دارید، لطفاً در Support Forum ما آنها را مطرح کنید. ما در عرض چند ساعت به آن‌ها پاسخ خواهیم داد.

به همچنین نگاه کنید