อนุญาตให้ผู้ใช้แก้ไขช่วงในเวิร์กชีตโดยใช้ Aspose.Cells
การแนะนำ
เอกสาร Excel มักมีข้อมูลที่ละเอียดอ่อนหรือเนื้อหาที่มีโครงสร้างซึ่งคุณต้องการปกป้องจากการแก้ไขที่ไม่ต้องการ อย่างไรก็ตาม อาจมีเซลล์หรือช่วงเฉพาะที่คุณต้องการให้ผู้ใช้บางรายแก้ไขได้ นั่นคือจุดที่ Aspose.Cells สำหรับ .NET เข้ามาเป็นเครื่องมืออันทรงพลังที่ช่วยให้คุณปกป้องเวิร์กชีตทั้งหมดได้ในขณะที่ยังคงให้สิทธิ์แก้ไขกับช่วงที่กำหนด ลองนึกภาพการแชร์สเปรดชีตงบประมาณที่แก้ไขได้เฉพาะเซลล์บางเซลล์เท่านั้น และเซลล์อื่นๆ ยังคงปลอดภัย Aspose.Cells จะทำให้สิ่งนี้ง่ายดายและมีประสิทธิภาพ
ข้อกำหนดเบื้องต้น
ก่อนจะเริ่มเขียนโค้ด เรามาตรวจสอบก่อนว่าคุณมีทุกสิ่งที่คุณต้องการ:
- Aspose.Cells สำหรับ .NET: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารี Aspose.Cells สำหรับ .NET แล้ว คุณสามารถดาวน์โหลดได้ที่นี่.
- สภาพแวดล้อมการพัฒนา: Visual Studio หรือ IDE ที่เข้ากันได้กับ C#
- .NET Framework: เวอร์ชัน 4.0 หรือใหม่กว่า
- ใบอนุญาต: ควรพิจารณาขอรับใบอนุญาตเพื่อหลีกเลี่ยงข้อจำกัดในการทดลองใช้ คุณสามารถขอรับใบอนุญาตได้ใบอนุญาตชั่วคราวที่นี่.
แพ็คเกจนำเข้า
อย่าลืมใส่เนมสเปซ Aspose.Cells ที่จำเป็นไว้ที่จุดเริ่มต้นของโค้ดของคุณ:
using System.IO;
using Aspose.Cells;
วิธีนี้จะทำให้คุณสามารถเข้าถึงคลาสและวิธีการทั้งหมดที่จำเป็นในการตั้งค่าช่วงที่ได้รับการป้องกันในไฟล์ Excel ได้ ตอนนี้เมื่องานพื้นฐานเสร็จเรียบร้อยแล้ว มาดูโค้ดโดยละเอียดทีละขั้นตอนกัน
ขั้นตอนที่ 1: ตั้งค่าไดเรกทอรี
ก่อนที่จะทำงานกับไฟล์ คุณต้องตั้งค่าไดเร็กทอรีที่จะบันทึกไฟล์ Excel เสียก่อน วิธีนี้จะช่วยให้ไฟล์ของคุณได้รับการจัดระเบียบและจัดเก็บอย่างปลอดภัย
// กำหนดเส้นทางไปยังไดเร็กทอรีเอกสารของคุณ
string dataDir = "Your Document Directory";
// ตรวจสอบว่าไดเรกทอรีมีอยู่หรือไม่ หากไม่มี ให้สร้างขึ้นมา
bool isExists = Directory.Exists(dataDir);
if (!isExists)
{
Directory.CreateDirectory(dataDir);
}
ส่วนนี้ของโค้ดจะช่วยให้แน่ใจว่าไดเร็กทอรีของคุณพร้อมสำหรับการดำเนินการกับไฟล์ ลองนึกถึงการวางรากฐานสำหรับทุกอย่างที่ตามมา
ขั้นตอนที่ 2: เริ่มต้นเวิร์กบุ๊กและเวิร์กชีต
ต่อไปเรามาสร้างเวิร์กบุ๊กใหม่และเข้าถึงเวิร์กชีตเริ่มต้นกัน
// เริ่มต้นสมุดงานใหม่
Workbook book = new Workbook();
// เข้าถึงเวิร์กชีตแรกในเวิร์กบุ๊ก
Worksheet sheet = book.Worksheets[0];
ที่นี่ เรากำลังเริ่มต้นเวิร์กบุ๊ก Excel และเลือกเวิร์กชีตแรกภายในนั้น เวิร์กชีตนี้จะเป็นผืนผ้าใบที่เราใช้การตั้งค่าการป้องกันและกำหนดช่วงที่สามารถแก้ไขได้
ขั้นตอนที่ 3: เข้าถึงคอลเลกชันอนุญาตให้แก้ไขช่วง
Aspose.Cells มีฟีเจอร์ที่เรียกว่าAllowEditRanges
ซึ่งเป็นคอลเลกชันของช่วงที่สามารถแก้ไขได้ แม้ว่าเวิร์กชีตจะได้รับการป้องกันก็ตาม
// เข้าถึงคอลเลกชันอนุญาตให้แก้ไขช่วง
ProtectedRangeCollection allowRanges = sheet.AllowEditRanges;
บรรทัดนี้ตั้งค่าการเข้าถึงคอลเล็กชันช่วงพิเศษที่สามารถแก้ไขได้ ลองนึกถึงว่าเป็นพื้นที่ “VIP” ในเวิร์กชีตของคุณ ซึ่งอนุญาตให้เฉพาะช่วงที่เจาะจงเท่านั้นที่จะหลีกเลี่ยงการป้องกันได้
ขั้นตอนที่ 4: กำหนดและสร้างช่วงที่ได้รับการป้องกัน
ตอนนี้เรามากำหนดและสร้างช่วงที่ได้รับการป้องกันในเวิร์กชีตกัน เราจะระบุเซลล์เริ่มต้นและเซลล์สิ้นสุดสำหรับช่วงนี้
// กำหนดตัวแปร ProtectedRange
ProtectedRange protectedRange;
// เพิ่มช่วงใหม่ลงในคอลเลกชันโดยใช้ชื่อและตำแหน่งเซลล์ที่เฉพาะเจาะจง
int idx = allowRanges.Add("EditableRange", 1, 1, 3, 3);
protectedRange = allowRanges[idx];
ในบล็อคโค้ดนี้:
EditableRange
คือชื่อที่กำหนดให้กับช่วง- ตัวเลข (1, 1, 3, 3) กำหนดพิกัดช่วง ซึ่งหมายความว่าจะเริ่มจากเซลล์ B2 (แถว 1 คอลัมน์ 1) ไปจนถึงเซลล์ D4 (แถว 3 คอลัมน์ 3)
ขั้นตอนที่ 5: ตั้งรหัสผ่านสำหรับช่วงที่ได้รับการป้องกัน
เพื่อความปลอดภัยยิ่งขึ้น คุณสามารถตั้งรหัสผ่านสำหรับช่วงที่ได้รับการป้องกัน ขั้นตอนนี้จะเพิ่มชั้นการป้องกันพิเศษเพื่อให้แน่ใจว่าเฉพาะผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่สามารถแก้ไขช่วงได้
// ตั้งรหัสผ่านสำหรับช่วงที่สามารถแก้ไขได้
protectedRange.Password = "123";
ที่นี่เราได้เพิ่มรหัสผ่านแล้ว ("123"
) ไปยังช่วงที่ได้รับการป้องกัน ข้อกำหนดรหัสผ่านนี้ให้ระดับการควบคุมพิเศษว่าใครสามารถทำการเปลี่ยนแปลงได้
ขั้นตอนที่ 6: ปกป้องแผ่นงาน
เมื่อกำหนดช่วงที่แก้ไขได้แล้ว ขั้นตอนต่อไปคือการป้องกันเวิร์กชีตทั้งหมด การตั้งค่าการป้องกันนี้จะช่วยให้มั่นใจว่าเซลล์ทั้งหมดนอกช่วงที่กำหนดจะถูกล็อกและไม่สามารถแก้ไขได้
// ใช้การป้องกันกับเวิร์กชีต ซึ่งทำให้เซลล์อื่นไม่สามารถแก้ไขได้
sheet.Protect(ProtectionType.All);
การProtect
วิธีการนี้จะล็อกเวิร์กชีตทั้งหมด ยกเว้นช่วงที่เราได้กำหนดให้แก้ไขได้ ขั้นตอนนี้จะสร้างสภาพแวดล้อมแบบ “อ่านอย่างเดียว” ที่ปลอดภัยโดยสามารถเข้าถึงเซลล์เฉพาะตามต้องการ
ขั้นตอนที่ 7: บันทึกสมุดงาน
ขั้นตอนสุดท้ายคือการบันทึกเวิร์กบุ๊ก ดังนั้นการตั้งค่าของคุณจะถูกนำไปใช้และจัดเก็บ
// บันทึกไฟล์ Excel ไปยังไดเร็กทอรีที่ระบุ
book.Save(dataDir + "protectedrange.out.xls");
ในขั้นตอนนี้ เราจะบันทึกเวิร์กบุ๊กของเราเป็น “protectedrange.out.xls” ในไดเร็กทอรีที่เราตั้งค่าไว้ในขั้นตอนที่ 1 ตอนนี้ คุณจะมีไฟล์ Excel ที่ใช้งานได้เต็มรูปแบบและปลอดภัย โดยที่แก้ไขได้เฉพาะช่วงที่ระบุเท่านั้น!
บทสรุป
Aspose.Cells สำหรับ .NET เป็นวิธีที่ยอดเยี่ยมในการจัดการการป้องกันและการอนุญาตภายในไฟล์ Excel ของคุณ การสร้างช่วงที่แก้ไขได้ช่วยให้คุณสามารถรักษาความปลอดภัยเวิร์กชีตของคุณในขณะที่ยังอนุญาตให้เข้าถึงพื้นที่เฉพาะได้ ฟังก์ชันนี้มีประโยชน์อย่างยิ่งสำหรับเอกสารที่ทำงานร่วมกัน โดยควรเปิดเฉพาะเซลล์ไม่กี่เซลล์เพื่อแก้ไขในขณะที่เซลล์อื่นๆ ยังคงล็อกอยู่
คำถามที่พบบ่อย
ฉันสามารถเพิ่มช่วงที่แก้ไขได้หลายช่วงลงในเวิร์กชีตได้หรือไม่
ใช่ คุณสามารถเพิ่มช่วงหลายช่วงได้โดยการทำซ้ำallowRanges.Add()
วิธีการสำหรับช่วงใหม่แต่ละช่วง
หากฉันต้องการลบช่วงที่ได้รับการป้องกันในภายหลังจะทำอย่างไร
ใช้allowRanges.RemoveAt()
วิธีการที่มีดัชนีของช่วงที่คุณต้องการลบ
ฉันสามารถตั้งรหัสผ่านที่แตกต่างกันสำหรับแต่ละช่วงได้หรือไม่
แน่นอนครับ แต่ละProtectedRange
สามารถมีรหัสผ่านเฉพาะของตัวเองได้ ทำให้คุณสามารถควบคุมได้อย่างละเอียด
จะเกิดอะไรขึ้นถ้าฉันปกป้องเวิร์กชีตโดยไม่มีช่วงที่แก้ไขได้?
หากคุณไม่กำหนดช่วงที่สามารถแก้ไขได้ เวิร์กชีตทั้งหมดจะไม่สามารถแก้ไขได้เมื่อได้รับการป้องกันแล้ว
ช่วงที่ได้รับการป้องกันนั้นสามารถมองเห็นได้โดยผู้ใช้รายอื่นหรือไม่
ไม่ การป้องกันเป็นแบบภายใน ผู้ใช้จะได้รับแจ้งให้ป้อนรหัสผ่านเฉพาะเมื่อพยายามแก้ไขพื้นที่ที่ได้รับการป้องกันเท่านั้น