حماية عمود معين في ورقة عمل Excel

عند العمل مع أوراق عمل Excel في C#، غالبًا ما يكون من الضروري حماية أعمدة معينة لمنع التعديلات غير المقصودة. في هذا البرنامج التعليمي، سنرشدك خلال عملية حماية عمود معين في ورقة عمل Excel باستخدام مكتبة Aspose.Cells for .NET. سنقدم لك شرحًا خطوة بخطوة لكود مصدر C# المطلوب لهذه المهمة. اذا هيا بنا نبدأ!

نظرة عامة على حماية أعمدة محددة في ورقة عمل Excel

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

تهيئة البيئة

قبل أن نبدأ، تأكد من تثبيت مكتبة Aspose.Cells for .NET في بيئة التطوير لديك. يمكنك تنزيل المكتبة من موقع Aspose الرسمي وتثبيتها باستخدام برنامج التثبيت المتوفر.

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

لبدء حماية أعمدة معينة، نحتاج إلى إنشاء مصنف جديد وورقة عمل باستخدام Aspose.Cells for .NET. إليك مقتطف الشفرة:

//المسار إلى دليل المستندات.
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];

تأكد من استبدال “دليل المستندات الخاص بك” بمسار الدليل الفعلي الذي تريد حفظ ملف Excel فيه.

تحديد كائنات النمط وعلامة النمط

لتعيين أنماط وعلامات حماية محددة للأعمدة، نحتاج إلى تحديد كائنات النمط وعلامات النمط. إليك مقتطف الشفرة:

// تحديد كائن النمط.
Style style;

// تحديد كائن علامة النمط.
StyleFlag flag;

حلقات من خلال الأعمدة وفتحها

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

// قم بالمرور عبر كافة الأعمدة الموجودة في ورقة العمل وقم بإلغاء قفلها.
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);
}

قفل عمود معين

الآن، دعونا نقفل عمودًا محددًا. في هذا المثال، سوف نقوم بقفل العمود الأول (فهرس العمود 0). إليك مقتطف الشفرة:

// احصل على نمط العمود الأول.
style = sheet.Cells.Columns[0].Style;

// أغلق.
style.IsLocked = true;

تطبيق الأنماط على الأعمدة

بعد قفل العمود المحدد، نحتاج إلى تطبيق النمط والعلامة على هذا العمود. إليك مقتطف الشفرة:

//إنشاء مثيل للعلم.
flag = new StyleFlag();

// اضبط إعداد القفل.
flag.Locked = true;

// تطبيق النمط على العمود الأول.
sheet.Cells.Columns[0].ApplyStyle(style, flag);

حماية ورقة العمل

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

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

حفظ ملف إكسل

وأخيرًا، سنقوم بحفظ ملف Excel المعدل في الموقع المطلوب. إليك مقتطف الشفرة:

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

تأكد من استبدال “output.out.xls” باسم الملف والامتداد المطلوب.

نموذج التعليمات البرمجية المصدر لحماية عمود محدد في ورقة عمل Excel باستخدام Aspose.Cells لـ .NET

//المسار إلى دليل المستندات.
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];
// تحديد كائن النمط.
Style style;
// تحديد كائن styleflag.
StyleFlag flag;
// قم بالمرور عبر كافة الأعمدة الموجودة في ورقة العمل وقم بإلغاء قفلها.
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);
}
// احصل على نمط العمود الأول.
style = sheet.Cells.Columns[0].Style;
// أغلق.
style.IsLocked = true;
//إنشاء مثيل للعلم.
flag = new StyleFlag();
// اضبط إعداد القفل.
flag.Locked = true;
// تطبيق النمط على العمود الأول.
sheet.Cells.Columns[0].ApplyStyle(style, flag);
// حماية الورقة.
sheet.Protect(ProtectionType.All);
// احفظ ملف الاكسل.
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);

خاتمة

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

الأسئلة المتداولة (الأسئلة الشائعة)

هل يمكنني حماية أعمدة متعددة باستخدام هذه الطريقة؟

نعم، يمكنك حماية أعمدة متعددة عن طريق تعديل الكود وفقًا لذلك. ما عليك سوى التكرار خلال نطاق الأعمدة المرغوب فيه وتطبيق أنماط القفل والأعلام.

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

نعم، يمكنك إضافة حماية بكلمة مرور إلى ورقة العمل المحمية عن طريق تحديد كلمة المرور أثناء استدعاء الملفProtect طريقة.

هل يدعم Aspose.Cells for .NET تنسيقات ملفات Excel الأخرى؟

نعم، يدعم Aspose.Cells for .NET تنسيقات ملفات Excel المتنوعة، بما في ذلك XLS وXLSX وXLSM والمزيد.

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

نعم، يمكنك تعديل التعليمات البرمجية لحماية صفوف معينة بدلاً من الأعمدة من خلال تطبيق الأنماط والأعلام على خلايا الصفوف بدلاً من خلايا الأعمدة.