ป้องกันแถวในแผ่นงาน 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: ล็อคบรรทัดแรก

ในขั้นตอนนี้ เราจะล็อกแถวแรกของแผ่นงาน ใช้รหัสต่อไปนี้:

// รับสไตล์ของบรรทัดแรก
style = sheet.Cells.Rows[0].Style;
// ล็อคสไตล์
style. IsLocked = true;
// ใช้สไตล์กับบรรทัดแรก
sheet.Cells.ApplyRowStyle(0, 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 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);
}
// รับสไตล์แถวแรก
style = sheet.Cells.Rows[0].Style;
// ล็อคมัน.
style.IsLocked = true;
//ยกตัวอย่างธง
flag = new StyleFlag();
// ตั้งค่าการล็อค
flag.Locked = true;
// ใช้สไตล์กับแถวแรก
sheet.Cells.ApplyRowStyle(0, style, flag);
// ป้องกันแผ่น
sheet.Protect(ProtectionType.All);
// บันทึกไฟล์ Excel
wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);

บทสรุป

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

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

รหัสนี้ใช้ได้กับ Excel เวอร์ชันล่าสุดหรือไม่

ใช่ รหัสนี้ใช้ได้กับ Excel เวอร์ชันล่าสุด รวมถึงไฟล์ในรูปแบบ Excel 2010 และสูงกว่า

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

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

ฉันจะปลดล็อคสายที่ถูกล็อคอีกครั้งได้อย่างไร?

คุณสามารถใช้IsLocked วิธีการของStyle วัตถุที่จะตั้งค่าเป็นfalse และปลดล็อคแถว

เป็นไปได้หรือไม่ที่จะป้องกันแผ่นงานหลายแผ่นในสมุดงาน Excel เดียวกัน

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

ฉันจะเปลี่ยนรหัสผ่านการป้องกันสเปรดชีตได้อย่างไร

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