ในบทความนี้ ผมจะอธิบายวิธีลบแถวและคอลัมน์ว่างในไฟล์ Excel โดยใช้ C# นอกจากนี้ ฉันจะอธิบายวิธีอัปเดตข้อมูลอ้างอิงโดยอัตโนมัติ (ใช้ในสูตร แผนภูมิ และตาราง) พร้อมทั้งลบแถวและคอลัมน์ว่างด้วย

C# API เพื่อลบแถวและคอลัมน์ว่าง

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

PM> Install-Package Aspose.Cells

ลบแถวว่างใน Excel โดยใช้ C#

ต่อไปนี้เป็นขั้นตอนในการลบแถวว่างทั้งหมดใน Excel โดยใช้ C#

  • เปิดไฟล์ Excel โดยใช้วัตถุ สมุดงาน
  • เข้าถึงแผ่นงานที่มีแถวว่าง แผ่นงานสามารถเข้าถึงได้โดยดัชนี (แบบศูนย์) หรือตามชื่อ
  • เรียกเมธอด Cells.DeleteBlankRows() เพื่อลบแถวว่างทั้งหมดที่ไม่มีข้อมูลใดๆ

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการลบแถวว่างใน Excel โดยใช้ C#

using Aspose.Cells;

// เปิดไฟล์ Excel ที่มีอยู่
Workbook wb = new Workbook("SampleInput.xlsx");

// รับคอลเลกชันแผ่นงานในสเปรดชีต
WorksheetCollection sheets = wb.Worksheets;

// รับแผ่นงานแรกจาก WorksheetCollection ตามดัชนี
Worksheet sheet = sheets[0];
// หรือตามชื่อ.
// แผ่นงาน = แผ่นงาน ["Sheet1"];

// ลบแถวว่างออกจากแผ่นงาน
sheet.Cells.DeleteBlankRows();

// บันทึกไฟล์ Excel
wb.Save("SampleOutput.xlsx");
ลบแถวว่าง

รูปที่ 1: ลบแถวว่าง

โปรดทราบว่า Cells.DeleteBlankRows วิธีการลบแถวว่างแม้ว่าจะมีการใช้การจัดรูปแบบบางประเภทก็ตาม นอกจากนี้ยังลบแถวว่างที่จัดรูปแบบไว้ด้านล่างข้อมูลของคุณด้วย

ลบแถวว่างที่จัดรูปแบบแล้ว

รูปที่ 2: ลบแถวว่างที่จัดรูปแบบแล้ว

หากคุณต้องการลบแถวว่างออกจากแผ่นงานทั้งหมดในเอกสาร Excel เพียงวนซ้ำ WorksheetCollection และเรียกใช้เมธอด DeleteBlankRows ในแต่ละแผ่นงานดังที่แสดงในโค้ดต่อไปนี้:

// เปิดไฟล์ Excel ที่มีอยู่
Workbook workbook = new Workbook("SampleInput.xlsx");

// ทำซ้ำแผ่นงาน
foreach (Worksheet sheet in workbook.Worksheets)
{
    // ลบแถวว่างออกจากแผ่นงาน
    sheet.Cells.DeleteBlankRows();
}

// บันทึกไฟล์ Excel
workbook.Save("SampleOutput.xlsx");

อัปเดตการอ้างอิงโดยอัตโนมัติในขณะที่ลบแถวว่าง

การลบแถวว่างอาจทำให้การอ้างอิงในสูตร แผนภูมิ และตารางเสียหายได้ ตัวอย่างเช่น เซลล์ B2 ในเวิร์กชีตที่สองมีสูตร =Sheet1!C3 ซึ่งอ้างอิงถึงเซลล์ C3 ในเวิร์กชีตแรกดังแสดงในรูปต่อไปนี้

เซลล์ใน Sheet2 อ้างอิงถึงค่าใน Sheet1

รูปที่ 3: เซลล์ใน Sheet2 อ้างอิงถึงค่าใน Sheet1

หากเราลบแถวว่างใน Sheet1 ค่า lima@gmail.com จะย้ายไปที่เซลล์ C1 แต่สูตร (=Sheet1!C3) จะไม่อัปเดต และเซลล์ B2 จะมีค่าที่ไม่ถูกต้องดังที่แสดงด้านล่าง

หลังจากลบแถวว่างออกแล้ว สูตรในเซลล์ B2 ยังไม่ได้อัปเดต

รูปที่ 4: หลังจากลบแถวว่างแล้ว สูตรในเซลล์ B2 ยังไม่ได้อัปเดต

เราสามารถหลีกเลี่ยงปัญหานี้ได้โดยใช้คุณสมบัติ DeleteOptions.UpdateReference และตั้งค่าเป็นจริง จะช่วยให้แน่ใจว่าข้อมูลอ้างอิงได้รับการอัปเดตในขณะที่ลบแถวว่าง รหัสตัวอย่างต่อไปนี้แสดงวิธีการใช้คุณสมบัติ DeleteOptions.UpdateReference

// เปิดไฟล์ Excel ที่มีอยู่
Workbook wb = new Workbook("SampleInput.xlsx");

// รับคอลเลกชันแผ่นงานในสเปรดชีต
WorksheetCollection sheets = wb.Worksheets;

// รับแผ่นงานแรกจาก WorksheetCollection ตามดัชนี
Worksheet sheet = sheets[0];

// ตัวเลือกนี้จะรับประกันการอ้างอิง (ในสูตร แผนภูมิ)
// ได้รับการอัปเดตในขณะที่ลบแถวว่าง
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// ลบแถวว่างออกจากแผ่นงาน
sheet.Cells.DeleteBlankRows(options);

// บันทึกไฟล์ Excel
wb.Save("SampleOutput.xlsx");

ดังที่แสดงในรูปภาพต่อไปนี้ สูตรได้รับการอัปเดตแล้วและเซลล์ B2 มีค่าที่ถูกต้อง

สูตรได้รับการอัปเดตและเซลล์มีค่าที่ถูกต้อง

รูปที่ 5: สูตรได้รับการอัปเดตและเซลล์มีค่าที่ถูกต้อง

ลบคอลัมน์ว่างใน Excel โดยใช้ C#

ขั้นตอนในการลบคอลัมน์ว่างจะเหมือนกับการลบแถวว่าง เราใช้เมธอด Cells.DeleteBlankColumns เพื่อลบคอลัมน์ว่างทั้งหมดที่ไม่มีข้อมูลใดๆ โค้ดตัวอย่างต่อไปนี้แสดงวิธีการลบแถวและคอลัมน์ว่างใน C#

// เปิดไฟล์ Excel ที่มีอยู่
Workbook wb = new Workbook("SampleInput.xlsx");

// รับคอลเลกชันแผ่นงานในสเปรดชีต
WorksheetCollection sheets = wb.Worksheets;

// รับแผ่นงานแรกจาก WorksheetCollection ตามดัชนี
Worksheet sheet = sheets[0];

// ตัวเลือกนี้จะรับประกันการอ้างอิง (ในสูตร แผนภูมิ)
// ได้รับการอัปเดตในขณะที่ลบแถวและคอลัมน์ว่าง
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// ลบแถวและคอลัมน์ว่าง
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);

// คำนวณสูตรของสมุดงาน
wb.CalculateFormula();

// บันทึกไฟล์ Excel
wb.Save("SampleOutput.xlsx");
ลบแถวและคอลัมน์ว่าง

รูปที่ 6: ลบแถวและคอลัมน์ว่าง

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีลบแถวและคอลัมน์ว่างในไฟล์ Excel โดยใช้ C# นอกจากนี้ คุณได้เรียนรู้วิธีอัปเดตข้อมูลอ้างอิง (ใช้ในสูตร แผนภูมิ และตาราง) โดยอัตโนมัติในขณะที่ลบแถวและคอลัมน์ว่าง โปรดตรวจสอบ เอกสาร ของ Aspose.Cells for .NET สำหรับข้อมูลเพิ่มเติม หากคุณมีคำถามใดๆ โปรดโพสต์ไว้ที่ [ฟอรัมการสนับสนุน] ของเรา19 เราจะตอบพวกเขาภายในไม่กี่ชั่วโมง

ดูสิ่งนี้ด้วย