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

การแนะนำ

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

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

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

  1. Aspose.Cells สำหรับ .NET: คุณจะต้องติดตั้ง Aspose.Cells สำหรับ .NET หากคุณยังไม่ได้ติดตั้ง คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้โดยไปที่เว็บไซต์ Aspose
  2. ความเข้าใจพื้นฐานเกี่ยวกับ C# และ .NET: บทช่วยสอนนี้ถือว่าคุณคุ้นเคยกับ C# และมีความรู้พื้นฐานเกี่ยวกับการเขียนโปรแกรม .NET หากคุณไม่คุ้นเคยกับสิ่งเหล่านี้ คุณอาจต้องการตรวจสอบแหล่งข้อมูลเบื้องต้นบางส่วนก่อน
  3. Visual Studio หรือ IDE .NET ใดๆ: คุณจะต้องมีสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) เช่น Visual Studio เพื่อเรียกใช้โค้ด ซึ่งมีเครื่องมือและความสามารถในการแก้ไขข้อบกพร่องที่จำเป็นทั้งหมด
  4. ใบอนุญาต Aspose.Cells: หากคุณต้องการหลีกเลี่ยงข้อจำกัดของเวอร์ชันทดลองใช้ โปรดแน่ใจว่าคุณมีใบอนุญาต Aspose.Cells ที่ถูกต้อง นอกจากนี้คุณยังสามารถใช้ใบอนุญาตชั่วคราวได้หากคุณเพิ่งเริ่มต้นใช้งาน สำหรับข้อมูลโดยละเอียดเกี่ยวกับ Aspose.Cells และการติดตั้ง คุณสามารถตรวจสอบได้ที่เอกสารประกอบ.

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

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

using System.IO;
using Aspose.Cells;

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

ขั้นตอนที่ 1: ตั้งค่าไดเรกทอรีโครงการของคุณ

การจัดระเบียบไฟล์ถือเป็นสิ่งสำคัญสำหรับโปรแกรมทุกโปรแกรม ขั้นแรก ให้สร้างไดเร็กทอรีสำหรับเก็บเวิร์กบุ๊ก จากนั้นตรวจสอบว่ามีไดเร็กทอรีนี้อยู่หรือไม่ แล้วสร้างไดเร็กทอรีขึ้นมาหากจำเป็น

// กำหนดเส้นทางไปยังไดเร็กทอรีเอกสาร
string dataDir = "Your Document Directory";
// สร้างไดเร็กทอรีหากยังไม่มีอยู่
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
    System.IO.Directory.CreateDirectory(dataDir);

ที่นี่ คุณจะกำหนดเส้นทางที่จะเก็บไฟล์ Excel ของคุณ หากไม่มีโฟลเดอร์ดังกล่าว เราจะสร้างมันขึ้นมา ขั้นตอนนี้มีความสำคัญเพื่อให้แน่ใจว่าสมุดงานของคุณมีที่สำหรับบันทึก

ขั้นตอนที่ 2: สร้างสมุดงานใหม่

ถัดไปเราจะสร้างสมุดงานใหม่โดยใช้Workbook คลาส คลาสนี้ให้ฟังก์ชันการทำงานทั้งหมดที่จำเป็นในการทำงานกับไฟล์ Excel

// สร้างสมุดงานใหม่
Workbook wb = new Workbook();

ณ จุดนี้ เรามีสมุดงานใหม่ให้ใช้งานแล้ว

ขั้นตอนที่ 3: เข้าถึงแผ่นงาน

ตอนนี้เราเข้าถึงเวิร์กชีตแรกของเวิร์กบุ๊กที่เพิ่งสร้างใหม่ เวิร์กบุ๊กหนึ่งสามารถมีเวิร์กชีตได้หลายแผ่น แต่ในกรณีนี้ เราจะเน้นที่เวิร์กชีตแรก

// สร้างวัตถุเวิร์กชีตและรับแผ่นงานแรก
Worksheet sheet = wb.Worksheets[0];

ที่นี่,Worksheets[0] หมายถึงเวิร์กชีทแรกในเวิร์กบุ๊ก (ซึ่งมีดัชนีเริ่มต้นที่ 0)

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

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

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

ที่นี่ เราจะผ่านคอลัมน์ 0 ถึง 255 (จำนวนคอลัมน์ทั้งหมดในเวิร์กชีต Excel) และปลดล็อกคอลัมน์เหล่านี้ วิธีนี้จะช่วยให้มั่นใจได้ว่าแถวที่เราต้องการปกป้องยังคงโต้ตอบได้ ในขณะที่แถวอื่นๆ ยังคงล็อกอยู่

ขั้นตอนที่ 5: ล็อคแถวแรก

เมื่อปลดล็อกคอลัมน์ทั้งหมดแล้ว เราจะดำเนินการป้องกันแถวได้ ในขั้นตอนนี้ เราจะล็อกแถวแรก ซึ่งจะทำให้แก้ไขไม่ได้เมื่อป้องกันชีตแล้ว

//รับสไตล์แถวแรก
style = sheet.Cells.Rows[0].Style;
// ล็อคมันไว้
style.IsLocked = true;
//สร้างอินสแตนซ์ของธง
flag = new StyleFlag();
// ตั้งค่าการล็อค
flag.Locked = true;
// ใช้สไตล์กับแถวแรก
sheet.Cells.ApplyRowStyle(0, style, flag);

โค้ดนี้จะล็อคแถวแรกเพื่อให้แน่ใจว่าจะยังคงได้รับการปกป้องเมื่อเราใช้การป้องกันกับแผ่นงานแล้ว

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

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

// ป้องกันแผ่นงาน
sheet.Protect(ProtectionType.All);

โดยการใช้ProtectionType.Allเราตรวจสอบให้แน่ใจว่าเซลล์ทั้งหมดได้รับการป้องกัน ยกเว้นเซลล์ที่ปลดล็อกอย่างชัดเจน (เช่น คอลัมน์ของเรา) นี่คือขั้นตอนที่ใช้การป้องกันกับเวิร์กชีต

ขั้นตอนที่ 7: บันทึกไฟล์ Excel

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

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

ขั้นตอนนี้จะบันทึกไฟล์ไปยังเส้นทางที่ระบุ โดยทำให้ภารกิจในการปกป้องแถวที่ระบุในเวิร์กชีตเสร็จสมบูรณ์

บทสรุป

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

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

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

ใช่ คุณสามารถใช้ขั้นตอนการป้องกันเดียวกันกับหลายแถวได้โดยการปรับเปลี่ยนลูปหรือใช้สไตล์กับแถวอื่น

จะเกิดอะไรขึ้นถ้าฉันไม่ปลดล็อคคอลัมน์ใดๆ ก่อนที่จะปกป้องแผ่นงาน?

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

ฉันจะปลดล็อคเซลล์บางเซลล์แทนที่จะเป็นคอลัมน์ทั้งหมดได้อย่างไร

คุณสามารถปลดล็อคเซลล์เฉพาะได้โดยการเข้าถึงรูปแบบและตั้งค่าIsLocked ทรัพย์สินที่จะfalse.

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

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

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

คุณสามารถลบการป้องกันได้โดยเรียกใช้Unprotectวิธีการบนแผ่นงานและให้รหัสผ่านการป้องกัน (ถ้ามีการตั้งไว้)