การตรวจสอบข้อมูลใน Excel โดยใช้ C#

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

บทความนี้ครอบคลุมหัวข้อต่อไปนี้:

ห้องสมุดการตรวจสอบข้อมูล C# Excel

การตรวจสอบข้อมูลจะช่วยให้แน่ใจว่าผู้ใช้ป้อนข้อมูลที่ถูกต้องและคาดหวังในสเปรดชีต Excel เราจะใช้ Aspose.Cells for .NET API เพื่อเพิ่มการตรวจสอบข้อมูลประเภทต่าง ๆ ใน Excel มันให้วิธีที่ทรงพลังและยืดหยุ่นในการกำหนดกฎ เช่น รายการแบบเลื่อนลง, ช่วงตัวเลข, ขีดจำกัดวันที่, และสูตรที่กำหนดเอง ทั้งหมดนี้โดยไม่ต้องการ Microsoft Excel

ติดตั้ง Aspose.Cells for .NET ผ่านทาง NuGet ในโปรเจกต์ของคุณ:

PM> Install-Package Aspose.Cells

จากนั้นนำเข้าชื่อพื้นที่ที่เกี่ยวข้อง:

using Aspose.Cells;

สร้างการตรวจสอบรายการแบบเลื่อนลงใน Excel โดยใช้ C#

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

ตามขั้นตอนเหล่านี้เพื่อสร้างรายการแบบเลื่อนใน Excel โดยใช้ C#:

  1. สร้างออบเจกต์ Workbook ใหม่।
  2. เข้าถึง worksheet แรกโดยใช้ดัชนีของมัน。
  3. กำหนดเป้าหมาย CellArea สำหรับการตรวจสอบความถูกต้อง。
  4. เข้าถึงคอลเลกชันการตรวจสอบของเวิร์กชีต
  5. เพิ่มการตรวจสอบใหม่โดยใช้วิธีการ Add()
  6. ตั้งค่าประเภทการตรวจสอบเป็น ValidationType.List.
  7. กำหนดตัวเลือกแบบเลื่อนลงโดยใช้คุณสมบัติ Formula1 (แยกด้วยเครื่องหมายจุลภาค)
  8. เพิ่มพื้นที่เซลล์ในการตรวจสอบโดยใช้วิธีการ AddArea()
  9. บันทึกสมุดงานเพื่อสร้างไฟล์ Excel ที่ได้รับการตรวจสอบแล้ว

นี่คือตัวอย่างโค้ด C# ที่นำขั้นตอนเหล่านี้ไปใช้:

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

// เข้าถึงแผ่นงานแรกในสมุดงาน
var sheet = workbook.Worksheets[0];

// กำหนดพื้นที่เซลล์เป้าหมายสำหรับการตรวจสอบ (A1 ในกรณีนี้)
var area = new CellArea
{
    StartRow = 0,     // Row index starts from 0 (Row 1)
    EndRow = 0,       // Apply to a single row
    StartColumn = 0,  // Column index starts from 0 (Column A)
    EndColumn = 0     // Apply to a single column
};

// เข้าถึงคอลเลกชันการตรวจสอบของแผ่นงาน
var validations = sheet.Validations;

// เพิ่มรายการการตรวจสอบใหม่สำหรับพื้นที่เซลล์ที่ระบุ
int index = validations.Add(area);
var validation = validations[index];

// ตั้งค่าประเภทการตรวจสอบเป็นรายการดรอปดาวน์
validation.Type = ValidationType.List;

// กำหนดรายการที่อนุญาต (ค่าที่คั่นด้วยเครื่องหมายจุลภาค)
validation.Formula1 = "Red,Green,Blue";

// ตั้งค่าข้อความที่แสดงเมื่อเลือกเซลล์
validation.InputMessage = "Select a color from the list.";

// ตั้งข้อความแสดงข้อผิดพลาดที่ปรากฏถ้าป้อนข้อมูลที่ไม่ถูกต้อง
validation.ErrorMessage = "Only Red, Green, or Blue are allowed.";

// เปิดใช้งานการแสดงข้อความแสดงข้อผิดพลาด
validation.ShowError = true;

// ใช้พื้นที่ที่กำหนดในการตรวจสอบ
validation.AddArea(area);

// บันทึกสมุดงานไปยังเส้นทางไฟล์ที่กำหนด
workbook.Save("dropdown-validation.xlsx");
การสร้างการตรวจสอบรายการแบบเลื่อนลงใน Excel โดยใช้ C#

การสร้างการตรวจสอบรายการดรอปดาวน์ใน Excel โดยใช้ C#

จำกัดให้เป็นจำนวนเต็มใน Excel โดยใช้ C#

การตรวจสอบหมายเลขเต็ม (Whole number validation) ช่วยให้ผู้ใช้ป้อนค่าเชิงจำนวนที่ถูกต้องเท่านั้นใน Excel ซึ่งเหมาะสำหรับฟิลด์ที่เป็นปริมาณ (quantity fields) การป้อนอายุ (age inputs) หรือแผ่นงบประมาณ (budget sheets) ซึ่งไม่สามารถรับค่าเป็นทศนิยม (decimals) หรือข้อความ (text) ได้

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

ด้วย Aspose.Cells for .NET คุณสามารถบังคับใช้กฎการตรวจสอบนี้ผ่านโปรแกรมใน C# โดยไม่จำเป็นต้องกำหนดค่าแบบแมนวลใน Excel

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการจำกัดผู้ใช้ให้ป้อนเฉพาะค่าที่อนุญาต:

using Aspose.Cells;

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

// เข้าถึงแผ่นงานแรกในสมุดงาน
var sheet = workbook.Worksheets[0];

// กำหนดพื้นที่เซลล์เป้าหมาย — B2 (แถว 1, คอลัมน์ 1)
var area = new CellArea
{
    StartRow = 1,
    EndRow = 1,
    StartColumn = 1,
    EndColumn = 1
};

// เข้าถึงคอลเลกชันการตรวจสอบของเวิร์กชีต
var validations = sheet.Validations;

// เพิ่มการตรวจสอบใหม่และรับดัชนีของมัน
int index = validations.Add(area);

// เรียกวัตถุการตรวจสอบโดยใช้ดัชนี
var validation = validations[index];

// ตั้งค่าประเภทการตรวจสอบให้เป็น WholeNumber (อนุญาตเฉพาะจำนวนเต็มเท่านั้น)
validation.Type = ValidationType.WholeNumber;

// ตั้งค่าตัวดำเนินการเป็น Between
validation.Operator = OperatorType.Between;

// กำหนดช่วงที่ใช้ได้: 1 ถึง 100
validation.Formula1 = "1";
validation.Formula2 = "100";

// ตั้งค่าข้อความแสดงข้อผิดพลาดที่ปรากฏเมื่อมีการป้อนข้อมูลที่ไม่ถูกต้อง
validation.ErrorMessage = "Enter a number between 1 and 100.";

// เปิดแสดงการแจ้งเตือนข้อผิดพลาดเมื่อการตรวจสอบล้มเหลว
validation.ShowError = true;

// (Optional if not using Add(area) earlier) เพิ่มพื้นที่ในการตรวจสอบอย่างชัดเจน
validation.AddArea(area);

// บันทึกสมุดงานเป็นไฟล์
workbook.Save("numbers-validation.xlsx");
จำกัดให้เป็นเลขจำนวนเต็มใน Excel โดยใช้ C#

จำกัดให้เป็นหมายเลขทั้งหมดใน Excel โดยใช้ C#

ใช้การตรวจสอบช่วงวันที่ใน Excel โดยใช้ C#

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

ตัวอย่างเช่น ลองนึกภาพว่าคุณกำลังสร้างแม่แบบการกำหนดเวลาโครงการ และคุณต้องการจำกัดผู้ใช้ไม่ให้ใส่วันที่เฉพาะในปี 2024 เท่านั้น การอนุญาตให้ผู้ใช้ใส่วันที่นอกเหนือจากช่วงนี้ (เช่น 2023 หรือ 2025) อาจทำให้เกิดการขัดแย้งในสูตรหรือสร้างบันทึกที่ไม่สอดคล้องกัน

Aspose.Cells for .NET ทำให้การกำหนดค่าการตรวจสอบวันที่ในเซลล์เฉพาะทำได้ง่าย ดังนั้นผู้ใช้สามารถกรอกวันที่ที่ตรงตามเกณฑ์ของคุณได้เท่านั้น

โค้ดตัวอย่างด้านล่างแสดงให้เห็นถึงวิธีการที่จะทำให้แน่ใจว่าผู้ใช้สามารถป้อนวันที่ได้เฉพาะระหว่างวันที่ 1 มกราคม 2024 ถึง 31 ธันวาคม 2024 เท่านั้น สิ่งใดก็ตามที่อยู่นอกช่วงเวลานี้จะกระตุ้นให้เกิดข้อผิดพลาด ช่วยให้คุณรักษาข้อมูลให้สะอาดและแม่นยำมากขึ้นในสเปรดชีตของคุณ

using Aspose.Cells;

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

// เข้าถึงแผ่นงานแรกในสมุดงาน
var sheet = workbook.Worksheets[0];

// กำหนดพื้นที่เซลล์เพื่อใช้การตรวจสอบ — C3 (แถว 2, คอลัมน์ 2)
var area = new CellArea
{
    StartRow = 2,
    EndRow = 2,
    StartColumn = 2,
    EndColumn = 2
};

// เข้าถึงคอลเลกชันการตรวจสอบของแผ่นงาน
var validations = sheet.Validations;

// เพิ่มการตรวจสอบใหม่และรับดัชนีของมัน
int index = validations.Add(area);

// ดึงวัตถุการตรวจสอบ
var validation = validations[index];

// ตั้งค่าประเภทการตรวจสอบเป็น วันที่
validation.Type = ValidationType.Date;

// ตั้งค่าตัวดำเนินการเป็น ระหว่าง (วันที่เริ่มต้นและวันที่สิ้นสุด)
validation.Operator = OperatorType.Between;

// ระบุช่วงวันที่ที่ถูกต้อง: 1 มกราคม 2024 ถึง 31 ธันวาคม 2024
validation.Formula1 = "2024-01-01";
validation.Formula2 = "2024-12-31";

// ตั้งค่าข้อความแสดงข้อผิดพลาดเมื่อวันที่อยู่นอกช่วง
validation.ErrorMessage = "Date must be within the year 2024.";

// เปิดการแสดงการแจ้งเตือนข้อผิดพลาด
validation.ShowError = true;

// นำพื้นที่กลับมาใช้อีกครั้งเพื่อให้แน่ใจว่าการตรวจสอบถูกผูกติดอย่างถูกต้อง
validation.AddArea(area);

// บันทึกสมุดงานไปยังเส้นทางที่กำหนด
workbook.Save("date-validation.xlsx");

ใช้การตรวจสอบตามฟอร์มูลล่าใน Excel โดยใช้ C#

บางครั้ง, แบบเลื่อนง่าย ๆ หรือช่วงหมายเลขที่กำหนดไม่เพียงพอ โดยเฉพาะเมื่อกฎของคุณขึ้นอยู่กับค่าต่าง ๆ ในเซลล์อื่น ด้วยการตรวจสอบความถูกต้องบนพื้นฐานของสูตร คุณสามารถกำหนดกฎที่กำหนดเองโดยใช้สูตรในสไตล์ Excel กฎเหล่านี้สามารถอ้างอิงเซลล์อื่น ๆ และประเมินแบบไดนามิกว่าข้อมูลที่ป้อนถูกต้องหรือไม่ ตัวอย่างเช่น คุณอาจต้องการให้แน่ใจว่าค่าที่อยู่ในเซลล์ B1 มีค่ามากกว่าค่าที่อยู่ใน A1 เสมอ ซึ่งเป็นสถานการณ์ที่พบได้ทั่วไปในเปรียบเทียบราคา แผ่นคะแนน หรือลำดับวันที่

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

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

using Aspose.Cells;

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

// เข้าถึงแผ่นงานแรกในสมุดงาน
var sheet = workbook.Worksheets[0];

// กำหนดพื้นที่เซลล์สำหรับการตรวจสอบ — B1 (แถว 0, คอลัมน์ 1)
var area = new CellArea
{
    StartRow = 0,
    EndRow = 0,
    StartColumn = 1,
    EndColumn = 1
};

// เข้าถึงคอลเลกชันการตรวจสอบข้อบกพร่องในแผ่นงาน
var validations = sheet.Validations;

// เพิ่มการตรวจสอบใหม่ลงในคอลเลกชันและรับดัชนีของมัน
int index = validations.Add(area);

// ดึงวัตถุการตรวจสอบโดยดัชนี
var validation = validations[index];

// ตั้งค่าประเภทการตรวจสอบเป็นแบบกำหนดเอง (ใช้สำหรับกฎที่ใช้สูตร)
validation.Type = ValidationType.Custom;

// ตั้งสูตรกำหนดเอง: B1 ต้องมากกว่า A1
validation.Formula1 = "=B1>A1";

// กำหนดข้อความแสดงข้อผิดพลาดเมื่อการตรวจสอบล้มเหลว
validation.ErrorMessage = "Value in B1 must be greater than A1.";

// เปิดใช้งานการแสดงการแจ้งเตือนข้อผิดพลาดเมื่อมีการป้อนข้อมูลที่ไม่ถูกต้อง
validation.ShowError = true;

// เพิ่มพื้นที่อย่างชัดเจนเพื่อให้แน่ใจว่ามีการครอบคลุมโดยการตรวจสอบความถูกต้อง
validation.AddArea(area);

// บันทึกสมุดงานไปยังเส้นทางไฟล์ที่ระบุ
workbook.Save("formula-validation.xlsx");

กำหนดค่า ข้อความนำเข้าและข้อผิดพลาดใน Excel โดยใช้ C#

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

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

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

`อนุญาตให้มีค่าเพียง 1 ถึง 100 เท่านั้น”

และถ้าพวกเขาใส่ค่าที่ไม่ถูกต้อง Excel สามารถแสดงกล่องสนทนาที่พูดว่า:

`ข้อมูลเข้าผิด: กรุณาใส่หมายเลขระหว่าง 1 ถึง 100.”

คุณยังสามารถกำหนดค่าความตรงต่อข้อผิดพลาดของ Excel ได้โดยเลือกว่าจะบล็อกผู้ใช้ทั้งหมด (Stop), อนุญาตให้พวกเขาดำเนินการต่อพร้อมคำเตือน (Warning), หรือเพียงแค่แสดงข้อความข้อมูล (Information)。

ทำตามขั้นตอนเหล่านี้เพื่อกำหนดค่าการแจ้งเตือนการตรวจสอบด้วย C#:

  1. หลังจากตั้งค่ากฎการตรวจสอบความถูกต้องแล้ว ให้ตั้งค่า InputTitle และ InputMessage เพื่อแสดงข้อความช่วยเหลือเมื่อผู้ใช้เลือกเซลล์
  2. กำหนด ErrorTitle และ ErrorMessage เพื่ออธิบายว่ามีอะไรผิดพลาดหากการตรวจสอบความถูกต้องล้มเหลว
  3. เลือก AlertStyle — ตัวเลือก ได้แก่ Stop, Warning และ Information
  4. ตั้งค่า ShowError เป็น true เพื่อเปิดใช้งานการแจ้งเตือนการตรวจสอบข้อผิดพลาด.
  5. บันทึกสมุดงาน。

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

var workbook = new Workbook();
var sheet = workbook.Worksheets[0];

// กำหนดพื้นที่การตรวจสอบ — ใช้กับเซลล์ C1
var area = new CellArea
{
    StartRow = 0,
    EndRow = 0,
    StartColumn = 2, // Column C = 2
    EndColumn = 2
};

// เพิ่มการตรวจสอบความถูกต้อง
int index = sheet.Validations.Add(area);
var validation = sheet.Validations[index];

validation.Type = ValidationType.Custom;

// สูตรนี้จะประเมินผลเป็น FALSE เสมอ
validation.Formula1 = "=FALSE";

// ตั้งค่าข้อความนำเข้าและข้อความแสดงข้อผิดพลาด
validation.InputTitle = "Input Restricted";
validation.InputMessage = "Try entering anything to see the validation.";
validation.ErrorTitle = "Invalid Input";
validation.ErrorMessage = "You triggered this validation error successfully!";
validation.AlertStyle = ValidationAlertType.Stop;
validation.ShowError = true;
validation.ShowInput = true;

// ดำเนินการตรวจสอบความถูกต้องกับพื้นที่
validation.AddArea(area);

// บันทึกสมุดงานที่ได้รับการตรวจสอบแล้ว
workbook.Save("D:\\Files\\validated_with_alerts.xlsx");

พวกเขาแจ้งเตือนช่วยเพิ่มความสามารถในการใช้งานและชี้แนะผู้ใช้อย่างชัดเจนเกี่ยวกับสิ่งที่ต้องกรอก

กำหนดข้อความนำเข้าและข้อความแสดงข้อผิดพลาดใน Excel โดยใช้ C#

กำหนดการป้อนข้อมูลและข้อความแสดงข้อผิดพลาดใน Excel โดยใช้ C#

ทดลองใช้งานฟรี

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

แหล่งข้อมูลฟรี

สำรวจเพิ่มเติมเกี่ยวกับการทำงานอัตโนมัติของ Excel และการตรวจสอบโดยใช้แหล่งข้อมูลเหล่านี้:

ข้อสรุป

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

หากคุณมีคำถามหรือข้อเสนอแนะใด ๆ โปรดอย่าลังเลที่จะโพสต์ใน ฟอรัมสนับสนุนฟรี ของเรา เราพร้อมที่จะช่วยเหลือ!

ดูเพิ่มเติม