Xác thực dữ liệu trong Excel sử dụng C#

Xác thực dữ liệu trong Excel đảm bảo rằng người dùng chỉ nhập dữ liệu hợp lệ vào bảng tính. Trong việc thiết kế biểu mẫu, thu thập dữ liệu hoặc xây dựng mô hình tài chính, xác thực dữ liệu giúp duy trì cấu trúc và giảm thiểu lỗi của người dùng. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách áp dụng xác thực dữ liệu trong Excel bằng cách sử dụng C# một cách lập trình.

Bài viết này đề cập đến các chủ đề sau:

Thư viện xác thực dữ liệu Excel C#

Kiểm tra dữ liệu đảm bảo rằng người dùng nhập đầu vào hợp lệ và mong đợi trong các bảng tính Excel. Chúng tôi sẽ sử dụng API Aspose.Cells for .NET để thêm các loại kiểm tra dữ liệu khác nhau trong Excel. Nó cung cấp một cách tiếp cận mạnh mẽ và linh hoạt để xác định các quy tắc như danh sách xổ xuống, khoảng số, giới hạn ngày tháng và công thức tùy chỉnh, tất cả đều không yêu cầu Microsoft Excel.

Cài đặt Aspose.Cells for .NET thông qua gói NuGet trong dự án của bạn:

PM> Install-Package Aspose.Cells

Sau đó nhập không gian tên liên quan:

using Aspose.Cells;

Tạo xác thực danh sách thả xuống trong Excel bằng C#

Bạn có thể giới hạn đầu vào của người dùng cho một tập hợp các tùy chọn được xác định trước bằng cách tạo một danh sách thả xuống trong Excel. Điều này đảm bảo các giá trị nhất quán, đặc biệt hữu ích trong các biểu mẫu hoặc mẫu.

Theo dõi các bước sau để tạo một danh sách thả xuống trong Excel bằng cách sử dụng C#:

  1. Tạo một đối tượng Workbook mới.
  2. Truy cập worksheet đầu tiên bằng cách sử dụng chỉ số của nó.
  3. Định nghĩa CellArea mục tiêu để xác thực.
  4. Truy cập bộ sưu tập Validations của bảng tính.
  5. Thêm một xác thực mới bằng cách sử dụng phương thức Add().
  6. Đặt loại xác thực thành ValidationType.List.
  7. Định nghĩa các tùy chọn dropdown bằng cách sử dụng thuộc tính Formula1 (phân cách bằng dấu phẩy).
  8. Thêm khu vực ô vào xác thực bằng cách sử dụng phương thức AddArea().
  9. Lưu workbook để tạo file Excel đã được xác thực.

Dưới đây là ví dụ mã C# thực hiện các bước này:

// Tạo một workbook Excel mới
var workbook = new Workbook();

// Truy cập trang tính đầu tiên trong sổ làm việc
var sheet = workbook.Worksheets[0];

// Xác định vùng ô mục tiêu để xác thực (A1 trong trường hợp này)
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
};

// Truy cập bộ sưu tập xác thực của bảng tính
var validations = sheet.Validations;

// Thêm một mục xác thực mới cho khu vực ô đã chỉ định
int index = validations.Add(area);
var validation = validations[index];

// Đặt loại xác thực thành danh sách thả xuống
validation.Type = ValidationType.List;

// Định nghĩa các mục danh sách cho phép (các giá trị cách nhau bởi dấu phẩy)
validation.Formula1 = "Red,Green,Blue";

// Đặt thông điệp đầu vào hiển thị khi ô được chọn
validation.InputMessage = "Select a color from the list.";

// Đặt thông báo lỗi hiển thị nếu dữ liệu không hợp lệ được nhập vào.
validation.ErrorMessage = "Only Red, Green, or Blue are allowed.";

// Kích hoạt hiển thị thông báo lỗi
validation.ShowError = true;

// Áp dụng khu vực đã định nghĩa cho việc xác thực
validation.AddArea(area);

// Lưu bảng tính vào đường dẫn tệp được chỉ định.
workbook.Save("dropdown-validation.xlsx");
Tạo danh sách thả xuống xác thực trong Excel sử dụng C#

Tạo danh sách thả xuống xác thực trong Excel bằng cách sử dụng C#

Hạn chế chỉ dùng số nguyên trong Excel bằng C#

Xác thực số nguyên đảm bảo người dùng chỉ nhập các giá trị số nguyên hợp lệ trong Excel, điều này rất lý tưởng cho các trường số lượng, đầu vào tuổi hoặc bảng ngân sách nơi mà số thập phân hoặc văn bản không thể chấp nhận được.

Hãy nói rằng bạn muốn hạn chế một ô chỉ chấp nhận các số từ 1 đến 100. Nếu không có quy tắc này, người dùng có thể vô tình nhập các dữ liệu không hợp lệ như 150 hoặc abc, gây ra lỗi tính toán hoặc vấn đề logic trong bảng tính của bạn.

Với Aspose.Cells for .NET, bạn có thể thực thi quy tắc xác thực này bằng cách lập trình trong C# mà không cần cấu hình thủ công trong Excel.

Mã code sau đây cho thấy cách hạn chế người dùng chỉ nhập các giá trị được phép:

using Aspose.Cells;

// Tạo một workbook Excel mới
var workbook = new Workbook();

// Truy cập vào bảng tính đầu tiên trong workbook.
var sheet = workbook.Worksheets[0];

// Định nghĩa vùng ô mục tiêu — B2 (hàng 1, cột 1)
var area = new CellArea
{
    StartRow = 1,
    EndRow = 1,
    StartColumn = 1,
    EndColumn = 1
};

// Truy cập bộ sưu tập xác thực của bảng tính
var validations = sheet.Validations;

// Thêm một xác thực mới và lấy chỉ số của nó
int index = validations.Add(area);

// Lấy đối tượng xác thực bằng cách sử dụng chỉ mục
var validation = validations[index];

// Đặt kiểu xác thực thành WholeNumber (chỉ cho phép số nguyên)
validation.Type = ValidationType.WholeNumber;

// Đặt toán tử thành Between
validation.Operator = OperatorType.Between;

// Định nghĩa phạm vi hợp lệ: 1 đến 100
validation.Formula1 = "1";
validation.Formula2 = "100";

// Đặt thông báo lỗi xuất hiện khi nhập dữ liệu không hợp lệ.
validation.ErrorMessage = "Enter a number between 1 and 100.";

// Kích hoạt hiển thị thông báo lỗi khi xác thực thất bại
validation.ShowError = true;

// (Tùy chọn nếu không sử dụng Add(area) trước đó) Thêm khu vực vào xác thực một cách rõ ràng.
validation.AddArea(area);

// Lưu sổ làm việc vào một tệp
workbook.Save("numbers-validation.xlsx");
Hạn chế chỉ số nguyên trong Excel bằng C#

Hạn chế chỉ số nguyên trong Excel bằng C#

Áp dụng xác thực khoảng ngày trong Excel bằng C#

Xác thực ngày tháng giúp bạn đảm bảo người dùng chỉ nhập các ngày hợp lệ. Nó hữu ích trong các công cụ lập kế hoạch, hồ sơ điểm danh, bảng đặt chỗ và bất kỳ tình huống nào mà bạn cần những ngày trong một khoảng thời gian cụ thể.

Ví dụ, hãy tưởng tượng bạn đang xây dựng một mẫu lịch trình dự án, và bạn muốn hạn chế người dùng nhập ngày chỉ trong năm 2024. Việc cho phép người dùng nhập một ngày ngoài phạm vi này (như 2023 hoặc 2025) có thể làm hỏng công thức hoặc tạo ra các bản ghi không nhất quán.

Aspose.Cells for .NET giúp dễ dàng áp dụng các quy định về ngày cho các ô cụ thể, vì vậy người dùng chỉ có thể nhập các ngày phù hợp với các tiêu chí của bạn.

Mã code sau đây minh họa cách đảm bảo rằng người dùng chỉ có thể nhập các ngày giữa 1 tháng 1 năm 2024 và 31 tháng 12 năm 2024. Bất kỳ giá trị nào ngoài phạm vi sẽ kích hoạt một lỗi, giúp bạn duy trì dữ liệu sạch hơn và chính xác hơn trong bảng tính của bạn.

using Aspose.Cells;

// Tạo một workbook Excel mới
var workbook = new Workbook();

// Truy cập vào bảng tính đầu tiên trong sổ làm việc
var sheet = workbook.Worksheets[0];

// Định nghĩa vùng ô để áp dụng xác thực — C3 (hàng 2, cột 2)
var area = new CellArea
{
    StartRow = 2,
    EndRow = 2,
    StartColumn = 2,
    EndColumn = 2
};

// Truy cập bộ sưu tập xác thực của bảng tính
var validations = sheet.Validations;

// Thêm một xác thực mới và lấy chỉ số của nó
int index = validations.Add(area);

// Lấy đối tượng xác thực
var validation = validations[index];

// Đặt loại xác thực là Ngày
validation.Type = ValidationType.Date;

// Đặt toán tử thành Giữa (ngày bắt đầu và ngày kết thúc)
validation.Operator = OperatorType.Between;

// Xác định khoảng thời gian hợp lệ: Ngày 1 tháng 1 năm 2024 đến ngày 31 tháng 12 năm 2024
validation.Formula1 = "2024-01-01";
validation.Formula2 = "2024-12-31";

// Đặt thông báo lỗi hiển thị khi ngày ở ngoài phạm vi.
validation.ErrorMessage = "Date must be within the year 2024.";

// Bật hiển thị thông báo lỗi
validation.ShowError = true;

// Re-apply the area to ensure validation is bound correctly
validation.AddArea(area);

// Lưu sổ làm việc vào đường dẫn đã chỉ định
workbook.Save("date-validation.xlsx");

Sử dụng xác thực dựa trên công thức trong Excel bằng C#

Đôi khi, các menu thả xuống đơn giản hoặc khoảng số cố định không đủ, đặc biệt là khi các quy tắc của bạn phụ thuộc vào giá trị trong các ô khác. Với xác thực dựa trên công thức, bạn có thể định nghĩa các quy tắc tùy chỉnh bằng cách sử dụng các công thức theo kiểu Excel. Những quy tắc này có thể tham chiếu đến các ô khác và đánh giá động xem đầu vào có hợp lệ hay không. Ví dụ, bạn có thể muốn đảm bảo rằng giá trị trong ô B1 luôn lớn hơn giá trị trong ô A1. Đây là một kịch bản phổ biến trong việc so sánh giá, bảng điểm hoặc chuỗi ngày tháng.

Aspose.Cells for .NET hoàn toàn hỗ trợ tính năng này và cho phép bạn định nghĩa kiểm tra dữ liệu bằng cách sử dụng công thức tùy chỉnh giống như trong Excel.

Mẫu mã dưới đây cho thấy cách áp dụng các xác thực dựa trên công thức trong Excel bằng C#.

using Aspose.Cells;

// Tạo một workbook Excel mới
var workbook = new Workbook();

// Truy cập vào bảng tính đầu tiên trong sổ làm việc
var sheet = workbook.Worksheets[0];

// Xác định vùng ô để xác thực — B1 (hàng 0, cột 1)
var area = new CellArea
{
    StartRow = 0,
    EndRow = 0,
    StartColumn = 1,
    EndColumn = 1
};

// Truy cập bộ sưu tập xác thực bảng tính
var validations = sheet.Validations;

// Thêm một xác thực mới vào bộ sưu tập và lấy chỉ số của nó
int index = validations.Add(area);

// Lấy đối tượng xác thực theo chỉ số
var validation = validations[index];

// Đặt loại xác thực thành Tùy chỉnh (được sử dụng cho quy tắc dựa trên công thức)
validation.Type = ValidationType.Custom;

// Thiết lập công thức tùy chỉnh: B1 phải lớn hơn A1
validation.Formula1 = "=B1>A1";

// Định nghĩa thông điệp lỗi hiển thị khi xác thực không thành công.
validation.ErrorMessage = "Value in B1 must be greater than A1.";

// Kích hoạt hiển thị cảnh báo lỗi đối với đầu vào không hợp lệ.
validation.ShowError = true;

// Thêm khu vực một cách rõ ràng để đảm bảo nó được bao gồm trong việc xác thực.
validation.AddArea(area);

// Lưu sổ làm việc vào đường dẫn tệp đã chỉ định
workbook.Save("formula-validation.xlsx");

Cấu hình Tin nhắn Nhập và Lỗi trong Excel Sử dụng C#

Việc áp dụng xác thực dữ liệu chỉ là một phần của giải pháp. Hướng dẫn người dùng khi họ nhập dữ liệu không chính xác cũng quan trọng không kém, và đó là lúc các cảnh báo và thông báo tùy chỉnh đóng một vai trò quan trọng.

Aspose.Cells for .NET cho phép bạn thiết lập các thông điệp đầu vào hữu ích và cảnh báo lỗi xuất hiện khi người dùng chọn một ô hoặc nhập dữ liệu không hợp lệ. Những thông điệp này cải thiện trải nghiệm người dùng, giảm bối rối, và làm cho các mẫu Excel của bạn trở nên chuyên nghiệp hơn.

Ví dụ, khi một người dùng nhấp vào một ô, bạn có thể hiển thị một tooltip như

`Chỉ có giá trị từ 1 đến 100 được phép.”

Và nếu họ nhập một giá trị không chính xác, Excel có thể hiển thị một hộp thoại nói rằng:

`Nhập không hợp lệ: Vui lòng nhập một số từ 1 đến 100.”

Bạn cũng có thể tùy chỉnh cách Excel phản hồi với đầu vào không hợp lệ bằng cách chọn liệu có chặn hoàn toàn người dùng (Stop), cho phép họ tiếp tục với một cảnh báo (Warning), hoặc chỉ hiển thị một thông điệp thông tin (Information).

Thực hiện các bước sau để cấu hình thông báo xác thực bằng C#:

  1. Sau khi thiết lập quy tắc xác thực, hãy đặt InputTitleInputMessage để hiển thị văn bản trợ giúp khi người dùng chọn ô.
  2. Định nghĩa ErrorTitleErrorMessage để giải thích điều gì đã sai nếu việc xác thực không thành công.
  3. Chọn một AlertStyle — các tùy chọn bao gồm Stop, Warning, và Information.
  4. Đặt ShowError thành true để kích hoạt cảnh báo xác thực.
  5. Lưu bảng tính.

Các thông báo này làm cho bảng tính của bạn trở nên trực quan và thân thiện với người dùng hơn, đặc biệt là khi bạn đang tạo các mẫu để người khác sử dụng hoặc tái sử dụng thường xuyên.

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

// Thiết lập khu vực xác thực — áp dụng cho ô C1
var area = new CellArea
{
    StartRow = 0,
    EndRow = 0,
    StartColumn = 2, // Column C = 2
    EndColumn = 2
};

// Thêm xác thực
int index = sheet.Validations.Add(area);
var validation = sheet.Validations[index];

validation.Type = ValidationType.Custom;

// Công thức này luôn trả về GIẢ.
validation.Formula1 = "=FALSE";

// Thiết lập thông điệp đầu vào và thông báo lỗi
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;

// Áp dụng xác thực cho khu vực
validation.AddArea(area);

// Lưu bảng tính đã được xác thực
workbook.Save("D:\\Files\\validated_with_alerts.xlsx");

Chúng thông báo tăng cường khả năng sử dụng và hướng dẫn rõ ràng cho người dùng về những gì cần nhập.

Cấu hình Thông điệp Nhập và Lỗi trong Excel Sử dụng C#

Cấu hình Thông điệp Nhập và Lỗi trong Excel Sử dụng C#

Thử miễn phí

Lấy một giấy phép tạm thời miễn phí để kiểm tra đầy đủ khả năng của Aspose.Cells for .NET mà không bị giới hạn tính năng.

Tài nguyên miễn phí

Khám phá thêm về tự động hóa và xác thực Excel bằng cách sử dụng các tài nguyên này:

Kết luận

Trong bài viết này, chúng tôi đã chỉ ra cách thực hiện xác thực dữ liệu trong Excel sử dụng C# với Aspose.Cells for .NET. Từ danh sách thả xuống đến các công thức tùy chỉnh, bạn có thể tạo ra các bảng tính thông minh và không có lỗi mà không cần dựa vào chính Excel.

If you have any questions or feedback, please feel free to post them on our free support forum.We have love to help!

See Also