
La convalida dei dati in Excel garantisce che gli utenti inseriscano solo dati validi nei fogli di lavoro. Nella progettazione di moduli, nella raccolta di dati o nella creazione di modelli finanziari, le convalide dei dati aiutano a mantenere una struttura e a minimizzare gli errori degli utenti. In questo post, ti mostreremo come applicare la convalida dei dati in Excel utilizzando C# in modo programmatico.
Questo articolo tratta i seguenti argomenti:
- C# Libreria di convalida dei dati Excel
- Crea un elenco a discesa in Excel utilizzando C#
- Restrict whole number input in Excel using C#
- Validazione dell’intervallo di date in Excel utilizzando C#
- Validazione dei dati basata su formula in Excel
- Gestisci i dati non validi con avvisi di errore in Excel
- Risorse gratuite
C# Libreria di Validazione Dati Excel
La convalida dei dati garantisce che gli utenti inseriscano input validi e previsti nei fogli di calcolo Excel. Utilizzeremo l’API Aspose.Cells for .NET per aggiungere diversi tipi di convalida dei dati in Excel. Offre un approccio potente e flessibile per definire regole come elenchi a discesa, intervalli numerici, limiti di data e formule personalizzate, il tutto senza richiedere Microsoft Excel.
Installa il pacchetto Aspose.Cells for .NET tramite NuGet nel tuo progetto:
PM> Install-Package Aspose.Cells
Quindi importa lo spazio dei nomi pertinente:
using Aspose.Cells;
Create Dropdown List Validation in Excel using C#
È possibile limitare l’input dell’utente a un insieme predefinito di opzioni creando una convalida della lista a discesa in Excel. Questo garantisce valori coerenti, particolarmente utile in moduli o modelli.
Segui questi passaggi per creare un elenco a discesa in Excel utilizzando C#:
- Creare un nuovo oggetto
Workbook
. - Accedi al primo
worksheet
utilizzando il suo indice. - Definire l’area di destinazione
CellArea
per la convalida. - Accedi alla collezione delle Validazioni del foglio di lavoro.
- Aggiungi una nuova convalida utilizzando il metodo
Add()
. - Imposta il tipo di convalida su
ValidationType.List
. - Definisci le opzioni a discesa utilizzando la proprietà
Formula1
(separate da virgola). - Aggiungi l’area della cella alla convalida utilizzando il
AddArea()
metodo. - Salva il libro di lavoro per generare il file Excel convalidato.
Ecco un esempio di codice C# che implementa questi passaggi:
// Crea un nuovo file Excel
var workbook = new Workbook();
// Accedi al primo foglio di lavoro nel workbook
var sheet = workbook.Worksheets[0];
// Definisci l'area della cella obiettivo per la convalida (A1 in questo caso)
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
};
// Accedi alla collezione di convalide del foglio di lavoro
var validations = sheet.Validations;
// Aggiungi una nuova voce di convalida per l'area di cella specificata
int index = validations.Add(area);
var validation = validations[index];
// Imposta il tipo di convalida su un elenco a discesa
validation.Type = ValidationType.List;
// Definire gli elementi consentiti dell'elenco (valori separati da virgola)
validation.Formula1 = "Red,Green,Blue";
// Imposta il messaggio di input mostrato quando la cella è selezionata
validation.InputMessage = "Select a color from the list.";
// Imposta il messaggio di errore visualizzato se vengono inseriti dati non validi.
validation.ErrorMessage = "Only Red, Green, or Blue are allowed.";
// Abilita la visualizzazione del messaggio di errore
validation.ShowError = true;
// Applica l'area definita alla validazione
validation.AddArea(area);
// Salva il foglio di lavoro nel percorso di file specificato
workbook.Save("dropdown-validation.xlsx");

Creare una convalida dell’elenco a discesa in Excel utilizzando C#
Restrict to Whole Numbers in Excel using C#
La validazione dei numeri interi garantisce che gli utenti inseriscano solo valori interi validi in Excel, il che è ideale per i campi di quantità, le immissioni di età o i fogli di budget in cui decimali o testo non sono accettabili.
Diciamo che vuoi limitare una cella a accettare solo numeri tra 1 e 100. Senza questa regola, gli utenti potrebbero accidentalmente inserire input non validi come 150 o abc, causando errori di calcolo o problemi di logica nel tuo foglio di calcolo.
Con Aspose.Cells for .NET, puoi applicare questa regola di convalida programmativamente in C# senza doverla configurare manualmente in Excel.
Il seguente frammento di codice mostra come limitare gli utenti a inserire solo i valori consentiti:
using Aspose.Cells;
// Crea un nuovo file Excel
var workbook = new Workbook();
// Accedi al primo foglio di lavoro nel file di lavoro
var sheet = workbook.Worksheets[0];
// Definire l'area della cella target — B2 (riga 1, colonna 1)
var area = new CellArea
{
StartRow = 1,
EndRow = 1,
StartColumn = 1,
EndColumn = 1
};
// Accedi alla collezione delle convalide del foglio di lavoro
var validations = sheet.Validations;
// Aggiungi una nuova convalida e ottieni il suo indice.
int index = validations.Add(area);
// Recupera l'oggetto di convalida utilizzando l'indice
var validation = validations[index];
// Imposta il tipo di convalida su WholeNumber (solo interi consentiti)
validation.Type = ValidationType.WholeNumber;
// Imposta l'operatore su Tra
validation.Operator = OperatorType.Between;
// Definire l'intervallo valido: 1 a 100
validation.Formula1 = "1";
validation.Formula2 = "100";
// Imposta il messaggio di errore che appare quando vengono inseriti dati non validi.
validation.ErrorMessage = "Enter a number between 1 and 100.";
// Abilita la visualizzazione dell'alert di errore quando la convalida fallisce
validation.ShowError = true;
// (Optional if not using Add(area) earlier) Aggiungi l'area alla convalida esplicitamente
validation.AddArea(area);
// Salva il foglio di lavoro in un file
workbook.Save("numbers-validation.xlsx");

Restrict to Whole Numbers in Excel using C#
Applica la convalida dell’intervallo di date in Excel utilizzando C#
La convalida delle date ti aiuta a garantire che gli utenti inseriscano solo date valide. È utile in strumenti di pianificazione, registri di presenza, fogli di prenotazione e in qualsiasi scenario in cui hai bisogno di date all’interno di un intervallo specifico.
Ad esempio, immagina di costruire un modello di programmazione dei progetti e vuoi limitare gli utenti a inserire date solo all’interno dell’anno 2024. Consentire agli utenti di inserire una data al di fuori di questo intervallo (come 2023 o 2025) potrebbe rompere le formule o creare registrazioni incoerenti.
Aspose.Cells for .NET rende facile applicare le convalide delle date a celle specifiche, in modo che gli utenti possano inserire solo date che soddisfano i tuoi criteri.
Il seguente frammento di codice dimostra come garantire che gli utenti possano inserire solo date tra il 1 gennaio 2024 e il 31 dicembre 2024. Qualsiasi cosa al di fuori dell’intervallo attiverà un errore, aiutandoti a mantenere dati più puliti e accurati nel tuo foglio di calcolo.
using Aspose.Cells;
// Crea un nuovo workbook di Excel
var workbook = new Workbook();
// Accedi al primo foglio di lavoro nel workbook
var sheet = workbook.Worksheets[0];
// Definire l'area della cella per applicare la convalida — C3 (riga 2, colonna 2)
var area = new CellArea
{
StartRow = 2,
EndRow = 2,
StartColumn = 2,
EndColumn = 2
};
// Accedi alla collezione delle convalide del foglio di lavoro
var validations = sheet.Validations;
// Aggiungi una nuova convalida e ottieni il suo indice.
int index = validations.Add(area);
// Recupera l'oggetto di convalida
var validation = validations[index];
// Imposta il tipo di convalida su Data
validation.Type = ValidationType.Date;
// Imposta l'operatore su Tra (date di inizio e fine)
validation.Operator = OperatorType.Between;
// Specifica l'intervallo di date valido: 1 gennaio 2024 a 31 dicembre 2024
validation.Formula1 = "2024-01-01";
validation.Formula2 = "2024-12-31";
// Imposta il messaggio di errore da visualizzare quando la data è fuori intervallo
validation.ErrorMessage = "Date must be within the year 2024.";
// Abilita la visualizzazione dell'alert di errore
validation.ShowError = true;
// Riapplica l'area per garantire che la convalida sia correttamente vincolata
validation.AddArea(area);
// Salva il file di lavoro nel percorso specificato.
workbook.Save("date-validation.xlsx");
Utilizza la convalida basata su formula in Excel utilizzando C#
A volte, semplici menu a discesa o intervalli di numeri fissi non sono sufficienti, specialmente quando le tue regole dipendono dai valori in altre celle. Con la convalida basata su formule, puoi definire regole personalizzate utilizzando formule in stile Excel. Queste regole possono fare riferimento ad altre celle e valutare dinamicamente se l’input è valido. Ad esempio, potresti voler garantire che il valore nella cella B1 sia sempre maggiore del valore nella cella A1. È uno scenario comune nei confronti dei prezzi, nelle schede di punteggio o nelle sequenze di date.
Aspose.Cells for .NET supporta completamente questa funzionalità e ti consente di definire la convalida utilizzando formule personalizzate proprio come in Excel.
Il seguente campione di codice mostra come applicare convalide basate su formule in Excel utilizzando C#.
using Aspose.Cells;
// Crea un nuovo file Excel
var workbook = new Workbook();
// Accedi al primo foglio di lavoro nel cartella di lavoro.
var sheet = workbook.Worksheets[0];
// Definire l'area della cella per la convalida — B1 (riga 0, colonna 1)
var area = new CellArea
{
StartRow = 0,
EndRow = 0,
StartColumn = 1,
EndColumn = 1
};
// Accedi alla collezione delle convalide dei fogli di lavoro
var validations = sheet.Validations;
// Aggiungi una nuova convalida alla collezione e ottieni il suo indice
int index = validations.Add(area);
// Recupera l'oggetto di convalida per indice
var validation = validations[index];
// Imposta il tipo di convalida su Personalizzato (utilizzato per le regole basate su formula)
validation.Type = ValidationType.Custom;
// Imposta la formula personalizzata: B1 deve essere maggiore di A1
validation.Formula1 = "=B1>A1";
// Definire il messaggio di errore visualizzato quando la convalida fallisce
validation.ErrorMessage = "Value in B1 must be greater than A1.";
// Abilita la visualizzazione dell'alert di errore per input non validi
validation.ShowError = true;
// Aggiungi esplicitamente l'area per garantire che sia coperta dalla convalida
validation.AddArea(area);
// Salva il workbook nel percorso file specificato
workbook.Save("formula-validation.xlsx");
Configura i messaggi di input ed errore in Excel utilizzando C#
Applicare la convalida dei dati è solo una parte della soluzione. Guidare gli utenti quando inseriscono dati errati è altrettanto importante, ed è qui che le notifiche e i messaggi personalizzati svolgono un ruolo fondamentale.
Aspose.Cells for .NET consente di impostare messaggi di input utili e avvisi di errore che appaiono quando gli utenti selezionano una cella o inseriscono dati non validi. Questi messaggi migliorano l’esperienza dell’utente, riducono la confusione e rendono i tuoi modelli Excel più professionali.
Ad esempio, quando un utente clicca su una cella, puoi mostrare un tooltip come
`Sono ammessi solo valori da 1 a 100.”
E se inseriscono un valore errato, Excel può visualizzare una finestra di dialogo che dice:
`Voce non valida: Per favore inserisci un numero tra 1 e 100.”
Puoi anche personalizzare come Excel risponde all’input non valido scegliendo se bloccare completamente l’utente (Stop
), consentirgli di procedere con un avviso (Warning
) o semplicemente visualizzare un messaggio informativo (Information
).
Segui questi passaggi per configurare gli avvisi di convalida utilizzando C#:
- Dopo aver impostato la regola di convalida, impostare
InputTitle
eInputMessage
per mostrare il testo di aiuto quando un utente seleziona la cella. - Definire
ErrorTitle
eErrorMessage
per spiegare cosa è andato storto se la convalida fallisce. - Scegli un
AlertStyle
— le opzioni includonoStop
,Warning
eInformation
. - Imposta
ShowError
sutrue
per abilitare l’avviso di validazione. - Salva il workbook.
Questi avvisi rendono il tuo foglio di calcolo più intuitivo e facile da usare, specialmente quando stai creando modelli per gli altri da utilizzare o riutilizzare frequentemente.
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
// Imposta l'area di convalida - applica alla cella C1
var area = new CellArea
{
StartRow = 0,
EndRow = 0,
StartColumn = 2, // Column C = 2
EndColumn = 2
};
// Aggiungi validazione
int index = sheet.Validations.Add(area);
var validation = sheet.Validations[index];
validation.Type = ValidationType.Custom;
// Questa formula restituisce sempre FALSO
validation.Formula1 = "=FALSE";
// Set up input and error messages
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;
// Applica la convalida all'area
validation.AddArea(area);
// Salva il foglio di lavoro convalidato
workbook.Save("D:\\Files\\validated_with_alerts.xlsx");
Gli avvisi migliorano l’usabilità e guidano chiaramente gli utenti su cosa inserire.

Configura messaggi di input e di errore in Excel utilizzando C#
Provalo gratis
Ottieni una free temporary license per testare tutte le funzionalità di Aspose.Cells for .NET senza alcun limite di funzionalità.
Risorse gratuite
Esplora di più sull’automazione e la convalida di Excel utilizzando queste risorse:
Conclusione
In questo articolo, abbiamo mostrato come implementare la convalida dei dati in Excel utilizzando C# con Aspose.Cells for .NET. Dai menu a discesa alle formule personalizzate, puoi creare fogli di calcolo intelligenti e a prova di errore senza fare affidamento su Excel stesso.
Se hai domande o feedback, sentiti libero di pubblicarli nel nostro free support forum.Ci piacerebbe aiutarti!