ปกป้องเซลล์เฉพาะในแผ่นงาน Excel
ในบทช่วยสอนนี้ เราจะดูซอร์สโค้ด C# ที่ใช้ไลบรารี Aspose.Cells เพื่อปกป้องเซลล์เฉพาะในสเปรดชีต Excel เราจะอธิบายแต่ละขั้นตอนของโค้ดและอธิบายวิธีการทำงาน ปฏิบัติตามคำแนะนำอย่างระมัดระวังเพื่อให้ได้ผลลัพธ์ที่ต้องการ
ขั้นตอนที่ 1: ข้อกำหนดเบื้องต้น
ก่อนที่คุณจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารี Aspose.Cells สำหรับ .NET แล้ว คุณสามารถรับได้จากเว็บไซต์อย่างเป็นทางการของ Aspose ตรวจสอบให้แน่ใจว่าคุณมี Visual Studio เวอร์ชันล่าสุดหรือสภาพแวดล้อมการพัฒนา C# อื่น ๆ
ขั้นตอนที่ 2: นำเข้าเนมสเปซที่จำเป็น
หากต้องการใช้ไลบรารี Aspose.Cells เราจำเป็นต้องนำเข้าเนมสเปซที่จำเป็นลงในโค้ดของเรา เพิ่มบรรทัดต่อไปนี้ที่ด้านบนของไฟล์ต้นฉบับ C# ของคุณ:
using Aspose.Cells;
ขั้นตอนที่ 3: การสร้างสมุดงาน Excel
ในขั้นตอนนี้ เราจะสร้างสมุดงาน Excel ใหม่ ใช้รหัสต่อไปนี้เพื่อสร้างสมุดงาน Excel:
// พาธไปยังไดเร็กทอรีเอกสาร
string dataDir = "YOUR_DIRECTORY_OF_DOCUMENTS";
// สร้างสมุดงานใหม่
Workbook wb = new Workbook();
อย่าลืมเปลี่ยน"YOUR_DOCUMENTS_DIR"
ด้วยเส้นทางที่เหมาะสมไปยังไดเร็กทอรีเอกสารของคุณ
ขั้นตอนที่ 4: การสร้างสเปรดชีต
ตอนนี้เราได้สร้างสมุดงาน Excel แล้ว มาสร้างแผ่นงานและรับแผ่นงานแรกกัน ใช้รหัสต่อไปนี้:
// สร้างวัตถุสเปรดชีตและรับแผ่นงานแรก
Worksheet sheet = wb.Worksheets[0];
ขั้นตอนที่ 5: การกำหนดสไตล์
ในขั้นตอนนี้ เราจะกำหนดสไตล์เพื่อนำไปใช้กับเซลล์ที่ต้องการ ใช้รหัสต่อไปนี้:
// คำจำกัดความของวัตถุสไตล์
Styling styling;
ขั้นตอนที่ 6: วนซ้ำเพื่อปลดล็อกคอลัมน์ทั้งหมด
ตอนนี้เราจะวนซ้ำคอลัมน์ทั้งหมดในแผ่นงานและปลดล็อค ใช้รหัสต่อไปนี้:
// วนซ้ำคอลัมน์ทั้งหมดในแผ่นงานและปลดล็อค
for (int i = 0; i <= 255; i++)
{
style = sheet.Cells.Columns[(byte)i].Style;
style. IsLocked = false;
sheet.Cells.Columns[(byte)i].ApplyStyle(style);
}
ขั้นตอนที่ 7: การล็อคเซลล์เฉพาะ
ในขั้นตอนนี้ เราจะล็อคเซลล์เฉพาะ ใช้รหัสต่อไปนี้:
//กำลังล็อคทั้งสามเซลล์... เช่น 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);
ขั้นตอนที่ 8: การปกป้องแผ่นงาน
สุดท้ายนี้ เราจะปกป้องแผ่นงานเพื่อป้องกันไม่ให้เซลล์ใดเซลล์หนึ่งถูกแก้ไข ใช้รหัสต่อไปนี้:
// ป้องกันแผ่นงาน
sheet.Protect(ProtectionType.All);
ขั้นตอนที่ 9: บันทึกไฟล์ Excel
ตอนนี้เราจะบันทึกไฟล์ Excel ที่แก้ไขแล้ว ใช้รหัสต่อไปนี้:
// บันทึกไฟล์ Excel
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);
ตรวจสอบให้แน่ใจว่าได้ระบุเส้นทางที่ถูกต้องเพื่อบันทึกไฟล์ Excel ที่แก้ไข
ซอร์สโค้ดตัวอย่างสำหรับการป้องกันเซลล์เฉพาะในแผ่นงาน 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 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);
}
// ล็อคสามเซลล์...เช่น 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);
// สุดท้ายนี้ ปกป้องแผ่นตอนนี้เลย
sheet.Protect(ProtectionType.All);
// บันทึกไฟล์ Excel
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);
บทสรุป
ขอแสดงความยินดี! ขณะนี้คุณมีซอร์สโค้ด C# ที่ช่วยให้คุณสามารถปกป้องเซลล์เฉพาะในแผ่นงาน Excel โดยใช้ไลบรารี Aspose.Cells สำหรับ .NET คุณสามารถปรับแต่งโค้ดให้เหมาะกับความต้องการเฉพาะของคุณได้
คำถามที่พบบ่อย (คำถามที่พบบ่อย)
รหัสนี้ใช้ได้กับ Excel เวอร์ชันล่าสุดหรือไม่
ใช่ รหัสนี้ใช้ได้กับ Excel เวอร์ชันล่าสุด รวมถึงไฟล์ในรูปแบบ Excel 2010 และสูงกว่า
ฉันสามารถปกป้องเซลล์อื่นนอกเหนือจาก A1, B1 และ C1 ได้หรือไม่
ได้ คุณสามารถแก้ไขโค้ดเพื่อล็อกเซลล์อื่นๆ ได้โดยการปรับการอ้างอิงเซลล์ในบรรทัดโค้ดที่เกี่ยวข้อง
ฉันจะปลดล็อคเซลล์ที่ถูกล็อคอีกครั้งได้อย่างไร?
คุณสามารถใช้ได้SetStyle
วิธีการด้วยIsLocked
ตั้งค่าให้false
เพื่อปลดล็อคเซลล์
ฉันสามารถเพิ่มแผ่นงานเพิ่มเติมลงในสมุดงานได้หรือไม่
ใช่ คุณสามารถเพิ่มแผ่นงานอื่นๆ ลงในสมุดงานได้โดยใช้Worksheets.Add()
และทำซ้ำขั้นตอนการป้องกันเซลล์สำหรับแผ่นงานแต่ละแผ่น
ฉันจะเปลี่ยนรูปแบบการบันทึกของไฟล์ Excel ได้อย่างไร
คุณสามารถเปลี่ยนรูปแบบการบันทึกโดยใช้ไฟล์SaveFormat
วิธีการที่มีรูปแบบที่ต้องการ เช่นSaveFormat.Xlsx
สำหรับ Excel 2007 และใหม่กว่า