في هذه المقالة ، ستتعلم كيفية نسخ الأوراق من مصنفات Excel متعددة إلى مصنف واحد باستخدام C #. ستتعلم أيضًا كيفية نسخ البيانات من عدة أوراق عمل في ورقة واحدة. لنبدأ.

C # API لدمج ملفات Excel متعددة

Aspose.Cells for .NET هي واجهة برمجة تطبيقات معروفة لمعالجة جداول البيانات تتيح لك إنشاء ملفات Excel ومعالجتها من داخل تطبيقات .NET. يمكنك إما تنزيل ثنائيات API أو تثبيتها باستخدام NuGet.

PM> Install-Package Aspose.Cells

ادمج عدة ملفات Excel في ملف واحد باستخدام C

في بعض الأحيان ، تحتاج إلى دمج ملفات Excel متعددة في ملف واحد. تريد نسخ أوراق العمل من المصنفات المصدر إلى المصنف الوجهة كما هو موضح أدناه. يمكن أن تكون مستندات Excel من أي إصدار مثل Excel 97 أو Excel 2010 أو Excel 2016.

ادمج عدة ملفات Excel في ملف واحد باستخدام C #

الشكل 1: دمج ملفات Excel

يوضح نموذج التعليمات البرمجية التالي كيفية دمج ملفات Excel متعددة في ملف واحد باستخدام C #.

// افتح ملف Excel الأول.
Workbook SourceBook1 = new Workbook("Excel A.xlsx");

// افتح ملف Excel الثاني.
Workbook SourceBook2 = new Workbook("Excel B.xlsx");

// افتح ملف Excel الثالث.
Workbook SourceBook3 = new Workbook("Excel C.xlsx");

// انسخ أوراق عمل ملف Excel الثاني إلى المصنف الأول.
SourceBook1.Combine(SourceBook2);

// نسخ أوراق عمل ملف Excel الثالث إلى المصنف الأول.
SourceBook1.Combine(SourceBook3);

// احفظ ملف Excel الأول المحدث كملف جديد.
SourceBook1.Save("CombinedFile.xlsx");

اجمع أوراق عمل معينة من ملفات Excel باستخدام C

يقوم الكود أعلاه بنسخ جميع أوراق العمل الموجودة في الملفات المصدر إلى ملف الوجهة. ومع ذلك ، قد ترغب في نسخ أوراق عمل محددة من الملفات المصدر إلى الملف الوجهة. على سبيل المثال ، لديك ملفان من ملفات Excel ولكل منهما ثلاث أوراق عمل تسمى المبيعات والموظفين والمصروفات. أنت تريد فقط نسخ ورقة عمل المبيعات من كلا الملفين إلى الملف الوجهة كما هو موضح في الشكل التالي.

اجمع أوراق عمل معينة من ملفات Excel باستخدام C #

الشكل 2: ادمج أوراق عمل معينة من ملفات Excel

يوضح نموذج التعليمات البرمجية التالي كيفية دمج أوراق عمل معينة من الملفات المصدر في ملف الوجهة باستخدام C #.

// افتح ملف Excel A.
Workbook excelA = new Workbook("Excel A.xlsx");

// افتح ملف Excel B.
Workbook excelB = new Workbook("Excel B.xlsx");

// إنشاء مصنف الوجهة.
Workbook destWorkbook = new Workbook();
// تتم إضافة ورقة العمل الأولى بشكل افتراضي إلى المصنف. أضف ورقة العمل الثانية.
destWorkbook.Worksheets.Add();

// انسخ ورقة عمل المبيعات من Excel ملفًا إلى ملف الوجهة.
destWorkbook.Worksheets[0].Copy(excelA.Worksheets["Sales"]);

// انسخ ورقة عمل المبيعات من ملف Excel B إلى ملف الوجهة.
destWorkbook.Worksheets[1].Copy(excelB.Worksheets["Sales"]);

// بشكل افتراضي ، تكون أسماء أوراق العمل "Sheet1" و "Sheet2" على التوالي.
// دعونا نعطيهم أسماء ذات مغزى.
destWorkbook.Worksheets[0].Name = excelA.FileName + " - Sales";
destWorkbook.Worksheets[1].Name = excelB.FileName + " - Sales";

// احفظ ملف الوجهة.
destWorkbook.Save("CombinedFile.xlsx");

دمج أوراق عمل متعددة في واحد باستخدام C

في بعض الأحيان ، تحتاج إلى نسخ البيانات من عدة أوراق عمل في ورقة عمل واحدة. على سبيل المثال ، لديك بضع أوراق عمل في ملف Excel تحتوي على معلومات حول منتجات مختلفة ، وتريد دمج هذه الأوراق في ورقة عمل موجزة واحدة ، مثل هذا:

دمج أوراق عمل متعددة في واحد باستخدام C #

الشكل 3: دمج أوراق عمل متعددة في واحدة

يوضح مقتطف الكود التالي كيفية نسخ البيانات من عدة أوراق عمل في ورقة عمل واحدة باستخدام C #.

// افتح ملف Excel يحتوي على أوراق العمل:
// المنتجات 1 والمنتجات 2 والمنتجات 3
Workbook workbook = new Workbook("Products.xlsx");

// أضف ورقة عمل باسم Summary_sheet
Worksheet summarySheet = workbook.Worksheets.Add("Summary_sheet");

// كرر أوراق عمل المصدر التي تريد نسخ بياناتها إلى ملف
// ورقة عمل موجزة
string[] nameOfSourceWorksheets = { "Products1", "Products2", "Products3" };
int totalRowCount = 0;

foreach (string sheetName in nameOfSourceWorksheets)
{
    Worksheet sourceSheet = workbook.Worksheets[sheetName];

    Range sourceRange;
    Range destRange;
    // في حالة ورقة عمل Products1 ، قم بتضمين جميع الصفوف والأعمدة.
    if (sheetName.Equals("Products1"))
    {
        sourceRange = sourceSheet.Cells.MaxDisplayRange;
        
        destRange = summarySheet.Cells.CreateRange(
                sourceRange.FirstRow + totalRowCount,
                sourceRange.FirstColumn,
                sourceRange.RowCount,
                sourceRange.ColumnCount);
    }
    // في حالة أوراق عمل Products2 و Products 3 ،
    // استبعاد الصف الأول (الذي يحتوي على عناوين).
    else
    {
        int mdatarow = sourceSheet.Cells.MaxDataRow; // Zero-based
        int mdatacol = sourceSheet.Cells.MaxDataColumn; // Zero-based
        sourceRange = sourceSheet.Cells.CreateRange(0 + 1, 0, mdatarow, mdatacol + 1);

        destRange = summarySheet.Cells.CreateRange(
                sourceRange.FirstRow + totalRowCount -1,
                sourceRange.FirstColumn,
                sourceRange.RowCount,
                sourceRange.ColumnCount);
    }

    // ينسخ البيانات والتنسيق ورسم الأشياء وما إلى ذلك من ملف
    // نطاق المصدر إلى نطاق الوجهة.
    destRange.Copy(sourceRange);
    totalRowCount = sourceRange.RowCount + totalRowCount;
}

// احفظ المصنف 
workbook.Save("Summarized.xlsx");

استنتاج

في هذه المقالة ، تعلمت كيفية دمج ملفات Excel متعددة برمجيًا في ملف واحد. يمكنك إما نسخ جميع أوراق العمل الخاصة بملف مصدر أو أوراق عمل محددة إلى الملف الوجهة. لقد تعلمت أيضًا كيفية دمج بيانات أوراق عمل متعددة في ورقة عمل واحدة. يرجى مراجعة توثيق Aspose.Cells for .NET لمزيد من المعلومات. إذا كان لديك أي أسئلة ، فلا تتردد في طرحها على منتدى الدعم. سنرد عليهم في غضون ساعات قليلة.

أنظر أيضا