حماية الصفوف في ورقة العمل باستخدام Aspose.Cells

مقدمة

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

المتطلبات الأساسية

قبل أن تتمكن من بدء حماية الصفوف في ورقة العمل، هناك بعض الأشياء التي ستحتاج إلى وضعها في مكانها:

  1. Aspose.Cells for .NET: تأكد من تثبيت Aspose.Cells for .NET على جهاز التطوير الخاص بك. إذا لم تقم بذلك بالفعل، فيمكنك تنزيله بسهولة منصفحة تحميل Aspose Cells.
  2. Visual Studio أو أي بيئة تطوير متكاملة متوافقة مع .NET: لتنفيذ الحل، تحتاج إلى إعداد بيئة تطوير. يعد Visual Studio خيارًا رائعًا، ولكن أي بيئة تطوير متكاملة متوافقة مع .NET ستعمل.
  3. المعرفة الأساسية بلغة C#: إن فهم أساسيات برمجة C# سيساعدك على متابعة البرنامج التعليمي وتعديل كود المثال ليناسب احتياجاتك.
  4. توثيق واجهة برمجة التطبيقات Aspose.Cells: تعرف علىتوثيق Aspose.Cells لـ .NET للحصول على نظرة عامة على بنية الفصل والأساليب المستخدمة في المكتبة. إذا كنت قد قمت بإعداد كل المتطلبات الأساسية، فيمكننا البدء مباشرة في التنفيذ.

استيراد الحزم

للبدء، تحتاج إلى استيراد الحزم المطلوبة. هذه المكتبات ضرورية للتفاعل مع ملفات Excel في مشروع C# الخاص بك.

using System.IO;
using Aspose.Cells;

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

الخطوة 1: إنشاء مصنف وورقة عمل جديدة

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

// المسار إلى دليل المستندات.
string dataDir = "Your Document Directory";
// إنشاء الدليل إذا لم يكن موجودًا بالفعل.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
	System.IO.Directory.CreateDirectory(dataDir);
// إنشاء مصنف جديد.
Workbook wb = new Workbook();
// إنشاء كائن ورقة عمل والحصول على الورقة الأولى.
Worksheet sheet = wb.Worksheets[0];

في هذا المثال، نقوم بإنشاء مصنف جديد باستخدام ورقة عمل واحدة (وهو الإعداد الافتراضي عند إنشاء مصنف جديد باستخدام Aspose.Cells). ثم نأخذ ورقة العمل الأولى في المصنف، والتي ستكون الهدف لحماية الصف.

الخطوة 2: تحديد كائنات Style وStyleFlag

الخطوة التالية هي تحديد كائنات النمط وعلم النمط. تتيح لك هذه الكائنات تعديل خصائص الخلية، مثل ما إذا كانت مقفلة أم غير مقفلة.

// تعريف كائن النمط.
Style style;
// تعريف كائن styleflag.
StyleFlag flag;

سوف تستخدم هذه الكائنات في الخطوات اللاحقة لتخصيص خصائص الخلية وتطبيقها على ورقة العمل الخاصة بك.

الخطوة 3: إلغاء قفل جميع الأعمدة في ورقة العمل

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

// قم بالمرور على جميع الأعمدة في ورقة العمل وإلغاء قفلها.
for (int i = 0; i <= 255; i++)
{
    style = sheet.Cells.Columns[(byte)i].Style;
    style.IsLocked = false;
    flag = new StyleFlag();
    flag.Locked = true;
    sheet.Cells.Columns[(byte)i].ApplyStyle(style, flag);
}

في هذا الكود، نقوم بالمرور على جميع الأعمدة البالغ عددها 256 في ورقة العمل (تحتوي أوراق عمل Excel على حد أقصى يبلغ 256 عمودًا، مفهرسة من 0 إلى 255) ونضبطهاIsLocked الممتلكات لfalseيضمن هذا الإجراء إلغاء قفل جميع الأعمدة، ولكننا سنستمر في قفل صفوف محددة لاحقًا.

الخطوة 4: قفل الصف الأول

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

//احصل على نمط الصف الأول.
style = sheet.Cells.Rows[0].Style;
// قفله.
style.IsLocked = true;
//إنشاء العلم.
flag = new StyleFlag();
// ضبط إعداد القفل.
flag.Locked = true;
// قم بتطبيق النمط على الصف الأول.
sheet.Cells.ApplyRowStyle(0, style, flag);

هنا نصل إلى نمط الصف الأول ونضبطهIsLocked الممتلكات لtrue . بعد ذلك، نستخدمApplyRowStyle() طريقة لتطبيق نمط القفل على الصف بأكمله. يمكنك تكرار هذه الخطوة لقفل أي صفوف أخرى تريد حمايتها.

الخطوة 5: حماية الورقة

الآن بعد أن قمنا بإلغاء قفل الصفوف الضرورية وتأمينها، حان الوقت لحماية ورقة العمل. تضمن الحماية عدم تمكن أي شخص من تعديل الصفوف أو الخلايا المقفلة إلا إذا قام بإزالة كلمة مرور الحماية (إذا كانت متوفرة).

// حماية الورقة.
sheet.Protect(ProtectionType.All);

في هذه الخطوة، نقوم بتطبيق الحماية على الورقة بأكملها باستخدامProtectionType.Allيعني هذا النوع من الحماية حماية كافة جوانب الورقة، بما في ذلك الصفوف والخلايا المقفلة. ويمكنك أيضًا تخصيص هذه الحماية من خلال تحديد أنواع مختلفة من الحماية إذا لزم الأمر.

الخطوة 6: احفظ المصنف

أخيرًا، نحتاج إلى حفظ المصنف بعد تطبيق الأنماط والحماية اللازمة. يمكن حفظ المصنف بتنسيقات مختلفة، مثل Excel 97-2003، وExcel 2010، وما إلى ذلك.

// احفظ ملف Excel.
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);

يحفظ هذا السطر من التعليمات البرمجية المصنف بتنسيق Excel 97-2003 مع التغييرات المطبقة. يمكنك تغيير تنسيق الملف حسب احتياجاتك من خلال الاختيار من بين مجموعة متنوعة منSaveFormat خيارات.

خاتمة

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

الأسئلة الشائعة

كيف يمكنني حماية صفوف متعددة في وقت واحد؟

يمكنك التنقل عبر عدة صفوف وتطبيق نمط القفل على كل صف على حدة. ما عليك سوى استبدال0 مع فهرس الصف الذي تريد قفله.

هل يمكنني تعيين كلمة مرور لحماية الورقة؟

نعم! يمكنك تمرير كلمة مرور إلىsheet.Protect() طريقة لفرض حماية كلمة المرور.

هل يمكنني فتح الخلايا بدلاً من الأعمدة بأكملها؟

نعم! بدلاً من إلغاء قفل الأعمدة، يمكنك إلغاء قفل الخلايا الفردية عن طريق تعديل خصائص نمطها.

ماذا يحدث إذا حاولت تحرير صف محمي؟

عندما يتم حماية صف، سيمنع Excel إجراء أي تعديلات على الخلايا المقفلة إلا إذا قمت بإلغاء حماية الورقة.

هل يمكنني حماية نطاقات محددة على التوالي؟

نعم! يمكنك قفل النطاقات الفردية في صف واحد عن طريق ضبطIsLocked الخاصية لخلايا محددة ضمن النطاق.