อนุญาตให้ผู้ใช้แก้ไขช่วงในเวิร์กชีตโดยใช้ 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 สามารถมีรหัสผ่านเฉพาะของตัวเองได้ ทำให้คุณสามารถควบคุมได้อย่างละเอียด

จะเกิดอะไรขึ้นถ้าฉันปกป้องเวิร์กชีตโดยไม่มีช่วงที่แก้ไขได้?

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

ช่วงที่ได้รับการป้องกันนั้นสามารถมองเห็นได้โดยผู้ใช้รายอื่นหรือไม่

ไม่ การป้องกันเป็นแบบภายใน ผู้ใช้จะได้รับแจ้งให้ป้อนรหัสผ่านเฉพาะเมื่อพยายามแก้ไขพื้นที่ที่ได้รับการป้องกันเท่านั้น