ปกป้องเซลล์เฉพาะในเวิร์กชีตโดยใช้ Aspose.Cells

การแนะนำ

ในบทช่วยสอนนี้ เราจะแนะนำคุณเกี่ยวกับขั้นตอนการปกป้องเซลล์เฉพาะในเวิร์กชีต Excel เมื่อเสร็จสิ้น คุณจะสามารถล็อกเซลล์ได้อย่างมั่นใจเหมือนมืออาชีพ ป้องกันการเปลี่ยนแปลงที่ไม่ได้รับอนุญาต ขณะเดียวกันก็รักษาความยืดหยุ่นของเวิร์กชีตได้ตามต้องการ

ข้อกำหนดเบื้องต้น

ก่อนที่เราจะเจาะลึกรายละเอียด เรามาตรวจสอบกันก่อนว่าคุณมีทุกสิ่งที่จำเป็นในการปฏิบัติตามบทช่วยสอนนี้อย่างราบรื่น:

  1. Visual Studio – หากคุณยังไม่ได้ดาวน์โหลดและติดตั้ง Visual Studio ไว้ Visual Studio จะเป็นสภาพแวดล้อมหลักที่คุณใช้รันแอปพลิเคชัน .NET
  2. Aspose.Cells สำหรับ .NET – คุณจะต้องมีไลบรารี Aspose.Cells เพื่อทำงานกับไฟล์ Excel ในแอปพลิเคชัน .NET ของคุณ หากคุณยังไม่ได้ติดตั้ง คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้จากเว็บไซต์อาโพส.
  3. .NET Framework หรือ .NET Core – บทช่วยสอนนี้ใช้ได้กับทั้ง .NET Framework และ .NET Core เพียงตรวจสอบให้แน่ใจว่าโปรเจ็กต์ของคุณเข้ากันได้กับ Aspose.Cells เมื่อคุณมีสิ่งเหล่านี้แล้ว คุณก็พร้อมที่จะเริ่มต้นได้

แพ็คเกจนำเข้า

ก่อนจะเริ่มอ่านคู่มือทีละขั้นตอน คุณต้องแน่ใจว่าได้นำเข้าเนมสเปซที่จำเป็นสำหรับการใช้งาน Aspose.Cells แล้ว ในโปรเจ็กต์ของคุณ ให้รวมคำสั่งนำเข้าต่อไปนี้ไว้ที่ด้านบนของไฟล์:

using System.IO;
using Aspose.Cells;

เนมสเปซเหล่านี้จะช่วยให้คุณโต้ตอบกับไฟล์ Excel และคลาสที่จำเป็นสำหรับการกำหนดรูปแบบและการปกป้องเซลล์เวิร์กชีตได้ ตอนนี้ มาแบ่งขั้นตอนง่ายๆ เพื่อปกป้องเซลล์เฉพาะในเวิร์กชีตของคุณโดยใช้ Aspose.Cells สำหรับ .NET กัน เราจะปกป้องเซลล์ A1, B1 และ C1 ในขณะที่ปล่อยให้เวิร์กชีตที่เหลือเปิดอยู่เพื่อแก้ไข

ขั้นตอนที่ 1: สร้างสมุดงานและแผ่นงานใหม่

ขั้นแรก คุณต้องสร้างเวิร์กบุ๊กใหม่ (ไฟล์ Excel) และเวิร์กชีตภายในเวิร์กบุ๊กนั้น นี่คือขั้นตอนที่คุณจะใช้การป้องกันเซลล์

// เส้นทางไปยังไดเร็กทอรีเอกสาร
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 ที่ได้หากยังไม่มีอยู่Workbook คลาสจะเริ่มต้นไฟล์ Excel ใหม่ และWorksheets[0] ช่วยให้เราทำงานกับแผ่นงานแรกในเวิร์กบุ๊กได้

ขั้นตอนที่ 2: ปลดล็อคคอลัมน์ทั้งหมด

ขั้นต่อไป คุณจะปลดล็อกคอลัมน์ทั้งหมดในเวิร์กชีต วิธีนี้จะช่วยให้แก้ไขเซลล์ทั้งหมดในเวิร์กชีตได้ตามค่าเริ่มต้น ในภายหลัง เราจะล็อกเฉพาะเซลล์ที่เราต้องการปกป้องเท่านั้น

// กำหนดวัตถุสไตล์
Style style;
// กำหนดวัตถุ styleflag
StyleFlag styleflag;
// วนซ้ำผ่านคอลัมน์ทั้งหมดในเวิร์กชีตและปลดล็อคพวกเขา
for (int i = 0; i <= 255; i++)
{
    style = sheet.Cells.Columns[(byte)i].Style;
    style.IsLocked = false;
    styleflag = new StyleFlag();
    styleflag.Locked = true;
    sheet.Cells.Columns[(byte)i].ApplyStyle(style, styleflag);
}

ในบล็อกโค้ดนี้ เรากำลังวนซ้ำผ่านคอลัมน์ทั้งหมด (สูงสุด 255) และตั้งค่าIsLocked ทรัพย์สินที่จะfalseวิธีนี้จะช่วยปลดล็อกเซลล์ทั้งหมดในคอลัมน์เหล่านั้น ทำให้สามารถแก้ไขได้ตามค่าเริ่มต้น จากนั้นเราจะนำสไตล์ไปใช้กับคอลัมน์ด้วยApplyStyle() วิธี.

ขั้นตอนที่ 3: ล็อคเซลล์เฉพาะ (A1, B1, C1)

เมื่อปลดล็อกคอลัมน์ทั้งหมดแล้ว เราจะเน้นไปที่การล็อกเซลล์เฉพาะ ได้แก่ A1, B1 และ C1 เราจะปรับเปลี่ยนรูปแบบเซลล์และตั้งค่าIsLocked ทรัพย์สินที่จะtrue.

// ล็อค 3 เซลล์...คือ A1, B1, C1
style = sheet.Cells["A1"].GetStyle();
style.IsLocked = true;
sheet.Cells["A1"].SetStyle(style);
style = sheet.Cells["B1"].GetStyle();
style.IsLocked = true;
sheet.Cells["B1"].SetStyle(style);
style = sheet.Cells["C1"].GetStyle();
style.IsLocked = true;
sheet.Cells["C1"].SetStyle(style);

ขั้นตอนนี้จะช่วยให้แน่ใจว่าเซลล์ A1, B1 และ C1 ถูกล็อกไว้ เซลล์เหล่านี้จะได้รับการปกป้องและจะไม่สามารถแก้ไขได้เมื่อใช้การป้องกันเวิร์กชีตแล้ว

ขั้นตอนที่ 4: ปกป้องแผ่นงาน

เมื่อล็อกเซลล์ที่จำเป็นแล้ว ขั้นตอนต่อไปคือการปกป้องเวิร์กชีตทั้งหมด ขั้นตอนนี้จะทำให้เซลล์ที่ถูกล็อก (A1, B1, C1) ไม่สามารถแก้ไขได้ ในขณะที่เซลล์อื่นๆ ยังคงเปิดอยู่เพื่อแก้ไข

// สุดท้ายนี้ ปกป้องแผ่นงานตอนนี้
sheet.Protect(ProtectionType.All);

การProtect เรียกใช้เมธอดบนเวิร์กชีต โดยระบุว่าทุกแง่มุมของชีตจะต้องได้รับการปกป้อง ซึ่งจะล็อกเซลล์เฉพาะที่ถูกทำเครื่องหมายด้วยIsLocked = true และรับรองว่าผู้ใช้จะไม่สามารถเปลี่ยนแปลงได้

ขั้นตอนที่ 5: บันทึกสมุดงาน

เมื่อล็อคเซลล์และป้องกันแผ่นงานแล้ว คุณสามารถบันทึกเวิร์กบุ๊กไปยังตำแหน่งที่ต้องการได้

// บันทึกไฟล์ Excel
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);

ขั้นตอนนี้จะบันทึกสมุดงานลงในdataDir โฟลเดอร์ที่มีชื่อไฟล์output.out.xlsคุณสามารถแก้ไขชื่อไฟล์และไดเรกทอรีให้เหมาะกับความต้องการของคุณได้ ไฟล์จะถูกบันทึกในรูปแบบ Excel 97-2003 แต่คุณสามารถปรับเปลี่ยนได้ตามความต้องการของคุณ

บทสรุป

การปกป้องเซลล์เฉพาะในเวิร์กชีต Excel ของคุณโดยใช้ Aspose.Cells สำหรับ .NET เป็นกระบวนการที่ตรงไปตรงมา เมื่อทำตามขั้นตอนข้างต้น คุณสามารถล็อกเซลล์บางเซลล์ได้ในขณะที่ยังให้เซลล์อื่นแก้ไขได้ คุณลักษณะนี้มีประโยชน์อย่างยิ่งเมื่อแชร์เวิร์กบุ๊กกับผู้อื่น เนื่องจากช่วยให้คุณควบคุมได้ว่าข้อมูลใดสามารถปรับเปลี่ยนได้และข้อมูลใดควรได้รับการปกป้อง ไม่ว่าคุณจะทำงานกับข้อมูลที่ละเอียดอ่อนหรือเพียงแค่ป้องกันการเปลี่ยนแปลงโดยไม่ได้ตั้งใจ Aspose.Cells ก็มีโซลูชันที่ยืดหยุ่นและทรงพลัง

คำถามที่พบบ่อย

ฉันจะปกป้องช่วงเซลล์ที่เฉพาะเจาะจงแทนที่จะปกป้องเพียงไม่กี่เซลล์ได้อย่างไร

คุณสามารถปรับเปลี่ยนโค้ดเพื่อวนซ้ำผ่านช่วงเซลล์หรือคอลัมน์ที่ระบุและล็อกไว้แทนที่จะล็อกเซลล์ทีละเซลล์ด้วยตนเอง

ฉันสามารถเพิ่มรหัสผ่านเพื่อป้องกันเวิร์กชีตได้หรือไม่

ใช่ คุณสามารถกำหนดรหัสผ่านเมื่อโทรได้Protect() วิธีการจำกัดผู้ใช้จากการยกเลิกการป้องกันแผ่นงานโดยไม่มีรหัสผ่านที่ถูกต้อง

ฉันสามารถป้องกันแถวหรือคอลัมน์เฉพาะแทนเซลล์ได้หรือไม่

ใช่ Aspose.Cells ช่วยให้คุณล็อคแถวหรือคอลัมน์ทั้งหมดได้โดยการแก้ไขIsLocked คุณสมบัติสำหรับแถวหรือคอลัมน์ คล้ายกับวิธีที่เราล็อกเซลล์

ฉันจะยกเลิกการป้องกันเวิร์กชีตได้อย่างไร

หากต้องการยกเลิกการป้องกันเวิร์กชีต ให้ใช้Unprotect() วิธีการโดยให้รหัสผ่านเป็นทางเลือกหากมีการตั้งไว้ระหว่างการป้องกัน

ฉันสามารถใช้ Aspose.Cells สำหรับการจัดการ Excel อื่นๆ เช่น การเพิ่มสูตรหรือแผนภูมิได้หรือไม่

แน่นอน! Aspose.Cells เป็นไลบรารีที่มีประสิทธิภาพที่ช่วยให้คุณสามารถดำเนินการ Excel ได้หลากหลาย รวมถึงการเพิ่มสูตร การสร้างแผนภูมิ และอื่นๆ อีกมากมาย