ปกป้องเซลล์เฉพาะในเวิร์กชีตโดยใช้ Aspose.Cells
การแนะนำ
ในบทช่วยสอนนี้ เราจะแนะนำคุณเกี่ยวกับขั้นตอนการปกป้องเซลล์เฉพาะในเวิร์กชีต Excel เมื่อเสร็จสิ้น คุณจะสามารถล็อกเซลล์ได้อย่างมั่นใจเหมือนมืออาชีพ ป้องกันการเปลี่ยนแปลงที่ไม่ได้รับอนุญาต ขณะเดียวกันก็รักษาความยืดหยุ่นของเวิร์กชีตได้ตามต้องการ
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะเจาะลึกรายละเอียด เรามาตรวจสอบกันก่อนว่าคุณมีทุกสิ่งที่จำเป็นในการปฏิบัติตามบทช่วยสอนนี้อย่างราบรื่น:
- Visual Studio – หากคุณยังไม่ได้ดาวน์โหลดและติดตั้ง Visual Studio ไว้ Visual Studio จะเป็นสภาพแวดล้อมหลักที่คุณใช้รันแอปพลิเคชัน .NET
- Aspose.Cells สำหรับ .NET – คุณจะต้องมีไลบรารี Aspose.Cells เพื่อทำงานกับไฟล์ Excel ในแอปพลิเคชัน .NET ของคุณ หากคุณยังไม่ได้ติดตั้ง คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้จากเว็บไซต์อาโพส.
- .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 ได้หลากหลาย รวมถึงการเพิ่มสูตร การสร้างแผนภูมิ และอื่นๆ อีกมากมาย