Walidacja danych w Excelu za pomocą C#

Walidacja danych w Excelu zapewnia, że użytkownicy wprowadzają tylko prawidłowe dane w arkuszach. Projektując formularze, zbierając dane lub budując modele finansowe, walidacje danych pomagają utrzymać strukturę i zminimalizować błędy użytkowników. W tym poście pokażemy, jak zastosować walidację danych w Excelu za pomocą programowania w C#.

Ten artykuł porusza następujące tematy:

C# Biblioteka Walidacji Danych Excel

Weryfikacja danych zapewnia, że użytkownicy wprowadzają poprawne i oczekiwane dane w arkuszach kalkulacyjnych Excela. Użyjemy API Aspose.Cells for .NET, aby dodać różne typy weryfikacji danych w Excelu. Oferuje potężne i elastyczne podejście do definiowania reguł, takich jak listy rozwijane, zakresy numeryczne, limity dat oraz formuły niestandardowe, wszystko bez potrzeby posiadania programu Microsoft Excel.

Zainstaluj pakiet Aspose.Cells for .NET za pośrednictwem NuGet w swoim projekcie:

PM> Install-Package Aspose.Cells

Następnie zaimportuj odpowiednią przestrzeń nazw:

using Aspose.Cells;

Utwórz walidację listy rozwijanej w Excelu przy użyciu C#

Możesz ograniczyć dane wejściowe użytkownika do z góry określonego zestawu opcji, tworząc listę rozwijaną walidacji w Excelu. Zapewnia to spójne wartości, szczególnie przydatne w formularzach lub szablonach.

Postępuj zgodnie z tymi krokami, aby utworzyć listę rozwijaną w Excelu przy użyciu C#:

  1. Utwórz nowy obiekt Workbook.
  2. Uzyskaj dostęp do pierwszego arkusza za pomocą jego indeksu.
  3. Zdefiniuj docelowy CellArea do walidacji.
  4. Uzyskaj dostęp do kolekcji Walidacji arkusza roboczego.
  5. Dodaj nową walidację za pomocą metody Add().
  6. Ustaw typ walidacji na ValidationType.List.
  7. Zdefiniuj opcje rozwijane, używając właściwości Formula1 (oddzielone przecinkami).
  8. Dodaj obszar komórki do walidacji za pomocą metody AddArea().
  9. Zapisz skoroszyt, aby wygenerować zatwierdzony plik Excel.

Oto przykład kodu C#, który implementuje te kroki:

// Utwórz nowy workbook Excel
var workbook = new Workbook();

// Uzyskaj dostęp do pierwszego arkusza roboczego w skoroszycie
var sheet = workbook.Worksheets[0];

// Zdefiniuj docelowy obszar komórki dla walidacji (A1 w tym przypadku)
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
};

// Uzyskaj dostęp do kolekcji walidacji arkusza kalkulacyjnego
var validations = sheet.Validations;

// Dodaj nowy wpis walidacji dla określonego obszaru komórek
int index = validations.Add(area);
var validation = validations[index];

// Ustaw typ walidacji na listę rozwijaną
validation.Type = ValidationType.List;

// Zdefiniuj dozwolone elementy listy (wartości oddzielone przecinkami)
validation.Formula1 = "Red,Green,Blue";

// Ustaw wiadomość wejściową wyświetlaną po zaznaczeniu komórki
validation.InputMessage = "Select a color from the list.";

// Ustaw komunikat o błędzie, który zostanie wyświetlony, jeśli wprowadzone dane będą nieprawidłowe.
validation.ErrorMessage = "Only Red, Green, or Blue are allowed.";

// Włącz wyświetlanie komunikatu o błędzie
validation.ShowError = true;

// Zastosuj zdefiniowany obszar do walidacji
validation.AddArea(area);

// Zapisz skoroszyt w określonej ścieżce pliku
workbook.Save("dropdown-validation.xlsx");
Tworzenie walidacji listy rozwijanej w Excelu za pomocą C#

Tworzenie walidacji listy rozwijanej w Excelu za pomocą C#

Restrict to Whole Numbers in Excel using C#

Walidacja liczb całkowitych zapewnia użytkownikom wprowadzanie tylko prawidłowych wartości całkowitych w Excelu, co jest idealne dla pól ilości, danych dotyczących wieku lub arkuszy budżetowych, gdzie liczby dziesiętne lub tekst nie są akceptowane.

Powiedzmy, że chcesz ograniczyć komórkę, aby akceptowała tylko liczby między 1 a 100. Bez tej zasady użytkownicy mogliby przypadkowo wprowadzić nieprawidłowe dane, takie jak 150 lub abc, co prowadzi do błędów obliczeniowych lub problemów logicznych w Twoim arkuszu kalkulacyjnym.

Z Aspose.Cells for .NET możesz egzekwować tę regułę walidacji programowo w C# bez potrzeby ręcznej konfiguracji w Excelu.

Następujący fragment kodu pokazuje, jak ograniczyć użytkowników do wprowadzania tylko dozwolonych wartości:

using Aspose.Cells;

// Utwórz nowy skoroszyt Excel
var workbook = new Workbook();

// Uzyskaj dostęp do pierwszego arkusza roboczego w skoroszycie
var sheet = workbook.Worksheets[0];

// Zdefiniuj obszar komórki docelowej — B2 (wiersz 1, kolumna 1)
var area = new CellArea
{
    StartRow = 1,
    EndRow = 1,
    StartColumn = 1,
    EndColumn = 1
};

// Uzyskaj dostęp do kolekcji walidacji arkusza kalkulacyjnego
var validations = sheet.Validations;

// Dodaj nową walidację i uzyskaj jej indeks
int index = validations.Add(area);

// Pobierz obiekt walidacji za pomocą indeksu
var validation = validations[index];

// Ustaw typ walidacji na WholeNumber (dozwolone tylko liczby całkowite)
validation.Type = ValidationType.WholeNumber;

// Ustaw operator na Pomiędzy
validation.Operator = OperatorType.Between;

// Zdefiniuj ważny zakres: 1 do 100
validation.Formula1 = "1";
validation.Formula2 = "100";

// Ustaw komunikat o błędzie, który pojawia się, gdy wprowadzone zostaną nieprawidłowe dane.
validation.ErrorMessage = "Enter a number between 1 and 100.";

// Włącz wyświetlanie alertu o błędzie, gdy walidacja nie powiedzie się.
validation.ShowError = true;

// (Optional if not using Add(area) earlier) Dodaj obszar do walidacji explicite
validation.AddArea(area);

// Zapisz skoroszyt do pliku
workbook.Save("numbers-validation.xlsx");
Ogranicz do liczb całkowitych w Excelu za pomocą C#

Ograniczenie do liczb całkowitych w Excelu za pomocą C#

Zastosuj walidację zakresu dat w Excelu przy użyciu C#

Walidacja daty pomaga zapewnić, że użytkownicy wprowadzają tylko prawidłowe daty. Jest przydatna w narzędziach do planowania, rejestrach obecności, arkuszach rezerwacji oraz w każdym scenariuszu, w którym potrzebujesz dat w określonym zakresie.

Na przykład, wyobraź sobie, że tworzysz szablon harmonogramu projektu i chcesz ograniczyć użytkowników do wprowadzania dat tylko w roku 2024. Pozwolenie użytkownikom na wprowadzanie dat poza tym zakresem (takich jak 2023 lub 2025) mogłoby naruszyć formuły lub stworzyć niespójne rekordy.

Aspose.Cells for .NET ułatwia stosowanie walidacji dat dla konkretnych komórek, dzięki czemu użytkownicy mogą wprowadzać tylko daty, które spełniają Twoje kryteria.

Następny fragment kodu demonstruje, jak zapewnić, że użytkownicy mogą wprowadzać tylko daty między 1 stycznia 2024 a 31 grudnia 2024. Wszystko, co jest poza tym zakresem, spowoduje wystąpienie błędu, co pomoże w utrzymaniu czystszych i dokładniejszych danych w całym arkuszu kalkulacyjnym.

using Aspose.Cells;

// Utwórz nowy skoroszyt Excel
var workbook = new Workbook();

// Uzyskaj dostęp do pierwszego arkusza kalkulacyjnego w skoroszycie
var sheet = workbook.Worksheets[0];

// Zdefiniuj obszar komórki, aby zastosować walidację - C3 (wiersz 2, kolumna 2)
var area = new CellArea
{
    StartRow = 2,
    EndRow = 2,
    StartColumn = 2,
    EndColumn = 2
};

// Uzyskaj dostęp do kolekcji walidacji arkusza kalkulacyjnego.
var validations = sheet.Validations;

// Dodaj nową walidację i uzyskaj jej indeks
int index = validations.Add(area);

// Pobierz obiekt walidacji
var validation = validations[index];

// Ustaw typ walidacji na Datę
validation.Type = ValidationType.Date;

// Ustaw operator na Pomiędzy (daty początkowe i końcowe)
validation.Operator = OperatorType.Between;

// Określ ważny zakres dat: 1 stycznia 2024 r. do 31 grudnia 2024 r.
validation.Formula1 = "2024-01-01";
validation.Formula2 = "2024-12-31";

// Ustaw komunikat o błędzie, który ma być wyświetlany, gdy data jest poza zakresem.
validation.ErrorMessage = "Date must be within the year 2024.";

// Włącz wyświetlanie komunikatu o błędzie
validation.ShowError = true;

// Ponownie zastosuj obszar, aby upewnić się, że walidacja jest poprawnie powiązana.
validation.AddArea(area);

// Zapisz skoroszyt w określonej ścieżce.
workbook.Save("date-validation.xlsx");

Użyj walidacji opartej na formule w programie Excel przy użyciu C#

Czasami proste listy rozwijane lub stałe zakresy liczb nie wystarczają, szczególnie gdy Twoje zasady zależą od wartości w innych komórkach. Dzięki walidacji opartej na formułach możesz zdefiniować niestandardowe zasady za pomocą formuł w stylu Excela. Te zasady mogą odnosić się do innych komórek i dynamicznie oceniać, czy wprowadzenie jest prawidłowe. Na przykład, możesz chcieć upewnić się, że wartość w komórce B1 jest zawsze większa od wartości w A1. To powszechny scenariusz w porównaniach cen, arkuszach ocen lub sekwencjach dat.

Aspose.Cells for .NET w pełni obsługuje tę funkcję i pozwala na definiowanie walidacji za pomocą niestandardowych formuł, tak jak w Excelu.

Poniższy przykład kodu pokazuje, jak zastosować walidacje oparte na formułach w Excelu za pomocą C#.

using Aspose.Cells;

// Utwórz nowy skoroszyt Excela
var workbook = new Workbook();

// Uzyskaj dostęp do pierwszego arkusza roboczego w skoroszycie
var sheet = workbook.Worksheets[0];

// Zdefiniuj obszar komórki do walidacji — B1 (wiersz 0, kolumna 1)
var area = new CellArea
{
    StartRow = 0,
    EndRow = 0,
    StartColumn = 1,
    EndColumn = 1
};

// Uzyskaj dostęp do kolekcji walidacji arkuszy roboczych
var validations = sheet.Validations;

// Dodaj nową walidację do kolekcji i uzyskaj jej indeks.
int index = validations.Add(area);

// Pobierz obiekt walidacji według indeksu
var validation = validations[index];

// Ustaw typ walidacji na Niestandardowy (używany do zasad opartych na formułach)
validation.Type = ValidationType.Custom;

// Ustaw niestandardową formułę: B1 musi być większe niż A1
validation.Formula1 = "=B1>A1";

// Zdefiniuj komunikat błędu wyświetlany, gdy walidacja nie powiedzie się.
validation.ErrorMessage = "Value in B1 must be greater than A1.";

// Włącz wyświetlanie powiadomienia o błędzie przy nieprawidłowym wprowadzeniu.
validation.ShowError = true;

// Dodaj obszar wyraźnie, aby upewnić się, że jest objęty walidacją.
validation.AddArea(area);

// Zapisz skoroszyt w określonej ścieżce pliku
workbook.Save("formula-validation.xlsx");

Skonfiguruj komunikaty wejściowe i błędów w Excelu za pomocą C#

Zastosowanie walidacji danych to tylko część rozwiązania. Pomoc użytkownikom, gdy wprowadzają niepoprawne dane, jest równie ważna, a w tym miejscu dostosowane alerty i komunikaty odgrywają kluczową rolę.

Aspose.Cells for .NET umożliwia ustawienie pomocnych komunikatów wejściowych i alertów błędów, które pojawiają się, gdy użytkownicy wybiorą komórkę lub wprowadzą nieprawidłowe dane. Te komunikaty poprawiają doświadczenia użytkownika, redukują nieporozumienia i sprawiają, że szablony Excela są bardziej profesjonalne.

Na przykład, gdy użytkownik kliknie w komórkę, możesz pokazać podpowiedź, taką jak

`Dozwolone są tylko wartości od 1 do 100.”

A jeśli wprowadzą niepoprawną wartość, Excel może wyświetlić okno dialogowe z komunikatem:

`Nieprawidłowy wpis: Proszę wpisać liczbę między 1 a 100.”

Możesz również dostosować odpowiedź Excela na nieprawidłowe dane wejściowe, wybierając, czy zablokować użytkownika całkowicie (Stop), pozwolić mu kontynuować z ostrzeżeniem (Warning), czy po prostu wyświetlić komunikat informacyjny (Information).

Postępuj zgodnie z tymi krokami, aby skonfigurować powiadomienia o walidacji za pomocą C#:

  1. Po ustawieniu reguły walidacji, ustaw InputTitle i InputMessage, aby pokazywały tekst pomocy, gdy użytkownik wybierze komórkę.
  2. Zdefiniuj ErrorTitle i ErrorMessage, aby wyjaśnić, co poszło nie tak, jeśli walidacja się nie powiodła.
  3. Wybierz AlertStyle — opcje to Stop, Warning i Information.
  4. Ustaw ShowError na true, aby włączyć alert walidacyjny.
  5. Zapisz zeszyt.

Te powiadomienia sprawiają, że twoja arkusz kalkulacyjny jest bardziej intuitwyny i przyjazny dla użytkownika, szczególnie gdy tworzysz szablony dla innych do wykorzystania lub ponownego wykorzystania.

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

// Ustaw obszar walidacji — zastosuj do komórki C1
var area = new CellArea
{
    StartRow = 0,
    EndRow = 0,
    StartColumn = 2, // Column C = 2
    EndColumn = 2
};

// Dodaj walidację
int index = sheet.Validations.Add(area);
var validation = sheet.Validations[index];

validation.Type = ValidationType.Custom;

// Ta formuła zawsze zwraca FAŁSZ
validation.Formula1 = "=FALSE";

// Skonfiguruj komunikaty wejściowe i błędów
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;

// Zastosuj walidację do obszaru
validation.AddArea(area);

// Zapisz zweryfikowany skoroszyt
workbook.Save("D:\\Files\\validated_with_alerts.xlsx");

Te powiadomienia zwiększają użyteczność i wyraźnie prowadzą użytkowników co do tego, co należy wprowadzić.

Skonfiguruj komunikaty wejściowe i błędów w Excelu za pomocą C#

Skonfiguruj komunikaty wejściowe i błędów w Excelu przy użyciu C#

Wypróbuj za darmo

Zdobądź darmową tymczasową licencję, aby przetestować pełne możliwości Aspose.Cells for .NET bez żadnych ograniczeń funkcji.

Darmowe zasoby

Zbadaj więcej na temat automatyzacji i walidacji w Excelu, korzystając z tych zasobów:

Wniosek

W tym artykule pokazaliśmy, jak zaimplementować walidację danych w Excelu przy użyciu C# z Aspose.Cells for .NET. Od rozwijanych list po niestandardowe formuły, możesz stworzyć inteligentne i odporne na błędy arkusze kalkulacyjne bez polegania na samym Excelu.

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

Zobacz także