Перевірка даних в 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#

Перевірка цілого числа гарантує, що користувачі вводять лише дійсні цілі значення в Excel, що є ідеальним для полів кількості, введення віку або бюджетних таблиць, де десяткові дроби або текст недопустимі.

Скажемо, що ви хочете обмежити комірку допустимими лише числами між 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];

// Встановіть тип валідації на Ціле число (дозволені лише цілі числа)
validation.Type = ValidationType.WholeNumber;

// Встановіть оператор на Між
validation.Operator = OperatorType.Between;

// Визначте допустимий діапазон: 1 до 100
validation.Formula1 = "1";
validation.Formula2 = "100";

// Встановіть повідомлення про помилку, яке з'являється, коли введені недійсні дані.
validation.ErrorMessage = "Enter a number between 1 and 100.";

// Увімкніть показ сповіщення про помилку, коли валідація не пройшла.
validation.ShowError = true;

// (Необов'язково, якщо раніше не використовувати Add(area)) Явно додайте область до валідації
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.

Якщо у вас є будь-які питання або відгуки, будь ласка, не соромтеся залишити їх на нашому безкоштовному форумі підтримки.Ми будемо раді допомогти!

See Also