Convalida dei dati
Tipi ed esecuzione della convalida dei dati
La convalida dei dati è la capacità di impostare regole relative ai dati inseriti in un foglio di lavoro. Ad esempio, utilizzare la convalida per garantire che una colonna denominata DATA contenga solo date, o che un’altra colonna contenga solo numeri. È possibile anche garantire che una colonna denominata DATA contenga solo date entro un determinato intervallo. Con la convalida dei dati è possibile controllare cosa viene inserito nelle celle del foglio di lavoro.
Microsoft Excel supporta diversi tipi di convalida dei dati. Ogni tipo viene utilizzato per controllare quale tipo di dati viene inserito in una cella o in un intervallo di celle. Di seguito, frammenti di codice illustrano come convalidare che:
- I numeri sono interi, cioè non hanno una parte decimale.
- I numeri decimali seguono la struttura corretta. L’esempio di codice definisce che un intervallo di celle dovrebbe avere due decimali.
- I valori sono limitati a un elenco di valori. La convalida dell’elenco definisce un elenco separato di valori che possono essere applicati a una cella o a un intervallo di celle.
- Le date rientrano in un intervallo specifico.
- Un’ora è all’interno di un intervallo specifico.
- Un testo è di una determinata lunghezza di caratteri.
Convalida dei dati con Microsoft Excel
Per creare convalide utilizzando Microsoft Excel:
- In un foglio di lavoro, selezionare le celle a cui si desidera applicare la convalida.
- Dal menu Dati, seleziona Convalida. Verrà visualizzata la finestra di dialogo di convalida.
- Fai clic sulla scheda Impostazioni e inserisci le impostazioni.
Validazione dati con lo Script Aspose.Cells for Java tramite C++
La convalida dei dati è una funzionalità potente per convalidare le informazioni inserite nei fogli di lavoro. Con la convalida dei dati, gli sviluppatori possono fornire agli utenti un elenco di scelte, limitare le voci di dati a un tipo o dimensione specifici, ecc. In Aspose.Cells for JavaScript tramite C++, ogni classe Worksheet ha una collezione validations che rappresenta una collezione di oggetti Validation. Per configurare la validazione, impostare alcune proprietà della classe Validation come segue:
- Tipo – rappresenta il tipo di validazione, che può essere specificato usando uno dei valori predefiniti nell’enumerazione ValidationType.
- Operatore – rappresenta l’operatore da usare nella validazione, che può essere specificato usando uno dei valori predefiniti nell’enumerazione OperatorType.
- Formula1: rappresenta il valore o l’espressione associata alla prima parte della convalida dei dati.
- Formula2: rappresenta il valore o l’espressione associata alla seconda parte della convalida dei dati.
Quando le proprietà dell’oggetto Validation sono state configurate, gli sviluppatori possono usare la struttura CellArea per memorizzare informazioni sull’intervallo di celle che verrà convalidato usando la validazione creata.
Tipi di Convalida dei Dati
L’enumerazione ValidationType ha i seguenti membri:
| Nome Membr* | Descrizione |
|---|---|
| AnyValue | Denota un valore di qualsiasi tipo. |
| WholeNumber | Denota il tipo di convalida per i numeri interi. |
| Decimal | Indica il tipo di convalida per i numeri decimali. |
| List | Indica il tipo di convalida per elenchi a discesa. |
| Date | Indica il tipo di convalida per le date. |
| Time | Indica il tipo di convalida per l’ora. |
| TextLength | Indica il tipo di convalida per la lunghezza del testo. |
| Custom | Indica il tipo di convalida personalizzato. |
Convalida dei dati del numero intero
Con questo tipo di validazione, gli utenti possono inserire solo numeri interi all’interno di un intervallo specificato nelle celle validate. Gli esempi di codice seguenti mostrano come implementare il tipo di validazione WholeNumber. L’esempio crea la stessa validazione dei dati usando lo Script Aspose.Cells for Java tramite C++ che abbiamo creato con Microsoft Excel sopra.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Aspose.Cells Validation Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const resultDiv = document.getElementById('result');
const fileInput = document.getElementById('fileInput');
if (fileInput.files.length > 0) {
// If a file is provided, we will open it; otherwise create a new workbook
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiate workbook from uploaded file
var workbook = new Workbook(new Uint8Array(arrayBuffer));
} else {
// Create a new workbook
var workbook = new Workbook();
}
// Create a worksheet and get the first worksheet.
const ExcelWorkSheet = workbook.worksheets.get(0);
// Accessing the Validations collection of the worksheet
const validations = workbook.worksheets.get(0).validations;
// Create Cell Area
const ca = new AsposeCells.CellArea();
ca.startRow = 0;
ca.endRow = 0;
ca.startColumn = 0;
ca.endColumn = 0;
// Creating a Validation object
const idx = validations.add(ca);
const validation = validations.get(idx);
// Setting the validation type to whole number
validation.type = AsposeCells.ValidationType.WholeNumber;
// Setting the operator for validation to Between
validation.operator = AsposeCells.OperatorType.Between;
// Setting the minimum value for the validation
validation.formula1 = "10";
// Setting the maximum value for the validation
validation.formula2 = "1000";
// Applying the validation to a range of cells from A1 to B2 using the CellArea structure
const area = new AsposeCells.CellArea();
area.startRow = 0;
area.endRow = 1;
area.startColumn = 0;
area.endColumn = 1;
// Adding the cell area to Validation
validation.addArea(area);
// Save the workbook and provide a download link
const outputData = workbook.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData], { type: "application/vnd.ms-excel" });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
resultDiv.innerHTML = '<p style="color: green;">Validation added successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Convalida dei dati della lista
Questo tipo di convalida consente all’utente di inserire valori da un elenco a discesa. Fornisce un elenco: una serie di righe che contengono dati. Nell’esempio, viene aggiunta un secondo foglio di lavoro per contenere la fonte dell’elenco. Gli utenti possono selezionare solo valori dall’elenco. L’area di convalida è l’intervallo di celle A1:A5 nel primo foglio di lavoro.
È importante qui impostare la proprietà Validation.inCellDropDown(boolean) su true.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Aspose.Cells Validation List Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, CellArea, ValidationType, OperatorType, ValidationAlertType } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
// This example creates a new workbook in the browser (file input is optional here).
const workbook = new Workbook();
// Get the first worksheet.
const worksheet1 = workbook.worksheets.get(0);
// Add a new worksheet and access it.
const i = workbook.worksheets.add();
const worksheet2 = workbook.worksheets.get(i);
// Create a range in the second worksheet.
const range = worksheet2.cells.createRange("E1", "E4");
// Name the range.
range.name = "MyRange";
// Fill different cells with data in the range.
range.get(0, 0).value = "Blue";
range.get(1, 0).value = "Red";
range.get(2, 0).value = "Green";
range.get(3, 0).value = "Yellow";
// Get the validations collection.
const validations = worksheet1.validations;
// Create Cell Area
const ca = new CellArea();
ca.startRow = 0;
ca.endRow = 0;
ca.startColumn = 0;
ca.endColumn = 0;
// Create a new validation to the validations list.
const validation = validations.get(validations.add(ca));
// Set the validation type.
validation.type = ValidationType.List;
// Set the operator.
validation.operator = OperatorType.None;
// Set the in cell drop down.
validation.inCellDropDown = true;
// Set the formula1.
validation.formula1 = "=MyRange";
// Enable it to show error.
validation.showError = true;
// Set the alert type severity level.
validation.alertStyle = ValidationAlertType.Stop;
// Set the error title.
validation.errorTitle = "Error";
// Set the error message.
validation.errorMessage = "Please select a color from the list";
// Specify the validation area.
const area = new CellArea();
area.startRow = 0;
area.endRow = 4;
area.startColumn = 0;
area.endColumn = 0;
// Add the validation area.
validation.addArea(area);
// Save the Excel file.
const outputData = workbook.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Validation list created successfully! Click the download link to get the file.</p>';
});
</script>
</html>
Convalida dei dati della data
Con questo tipo di convalida, gli utenti inseriscono valori di data entro un intervallo specificato, o che soddisfano determinati criteri, nelle celle convalidate. Nell’esempio, all’utente è vietato inserire date comprese tra il 1970 e il 1999. Qui, l’area di convalida è la cella B1.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Date Validation Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, Worksheet, Cell } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
// This example creates a new workbook in the browser (no file input required)
const workbook = new Workbook();
// Obtain the cells of the first worksheet.
const worksheet = workbook.worksheets.get(0);
const cells = worksheet.cells;
// Put a string value into the A1 cell.
const cellA1 = cells.get("A1");
cellA1.value = "Please enter Date b/w 1/1/1970 and 12/31/1999";
// Set row height and column width for the cells by accessing row/column objects
const row0 = cells.rows.get(0);
row0.height = 31;
const col0 = cells.columns.get(0);
col0.width = 35;
// Get the validations collection.
const validations = worksheet.validations;
// Create Cell Area
const ca = new AsposeCells.CellArea();
ca.startRow = 0;
ca.endRow = 0;
ca.startColumn = 0;
ca.endColumn = 0;
// Add a new validation.
const validationIndex = validations.add(ca);
const validation = validations.get(validationIndex);
// Set the data validation type.
validation.type = AsposeCells.ValidationType.Date;
// Set the operator for the data validation
validation.operator = AsposeCells.OperatorType.Between;
// Set the value or expression associated with the data validation.
validation.formula1 = "1/1/1970";
// The value or expression associated with the second part of the data validation.
validation.formula2 = "12/31/1999";
// Enable the error.
validation.showError = true;
// Set the validation alert style.
validation.alertStyle = AsposeCells.ValidationAlertType.Stop;
// Set the title of the data-validation error dialog box
validation.errorTitle = "Date Error";
// Set the data validation error message.
validation.errorMessage = "Enter a Valid Date";
// Set and enable the data validation input message.
validation.inputMessage = "Date Validation Type";
validation.ignoreBlank = true;
validation.showInput = true;
// Set a collection of CellArea which contains the data validation settings.
const cellArea = new AsposeCells.CellArea();
cellArea.startRow = 0;
cellArea.endRow = 0;
cellArea.startColumn = 1;
cellArea.endColumn = 1;
// Add the validation area.
validation.addArea(cellArea);
// Save the Excel file and provide download link.
const outputData = workbook.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData], { type: "application/vnd.ms-excel" });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Workbook created and validation added. Click the download link to get the file.</p>';
});
</script>
</html>
Convalida dei dati dell’ora
Con questo tipo di convalida, gli utenti possono inserire orari entro un intervallo specificato, o soddisfare alcuni criteri, nelle celle convalidate. Nell’esempio, all’utente è vietato inserire orari tra le 09:00 e le 11:30 del mattino. Qui, l’area di convalida è la cella B1.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Time Validation Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, Worksheet, Cell } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
let workbook;
if (fileInput.files.length) {
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
workbook = new Workbook(new Uint8Array(arrayBuffer));
} else {
// Create a new workbook if no file is provided
workbook = new Workbook();
}
// Obtain the cells of the first worksheet.
const worksheet = workbook.worksheets.get(0);
const cells = worksheet.cells;
// Put a string value into A1 cell.
const a1 = cells.get("A1");
a1.value = "Please enter Time b/w 09:00 and 11:30 'o Clock";
// Set the row height and column width for the cells using row/column objects.
cells.rows.get(0).height = 31;
cells.columns.get(0).width = 35;
// Get the validations collection.
const validations = worksheet.validations;
// Create Cell Area
const ca = new AsposeCells.CellArea();
ca.startRow = 0;
ca.endRow = 0;
ca.startColumn = 0;
ca.endColumn = 0;
// Add a new validation and obtain it.
const validationIndex = validations.add(ca);
const validation = validations.get(validationIndex);
// Set the data validation type and other properties.
validation.type = AsposeCells.ValidationType.Time;
validation.operator = AsposeCells.OperatorType.Between;
validation.formula1 = "09:00";
validation.formula2 = "11:30";
validation.showError = true;
validation.alertStyle = AsposeCells.ValidationAlertType.Information;
validation.errorTitle = "Time Error";
validation.errorMessage = "Enter a Valid Time";
validation.inputMessage = "Time Validation Type";
validation.ignoreBlank = true;
validation.showInput = true;
// Set a collection of CellArea which contains the data validation settings.
const cellArea = new AsposeCells.CellArea();
cellArea.startRow = 0;
cellArea.endRow = 0;
cellArea.startColumn = 1;
cellArea.endColumn = 1;
// Add the validation area.
validation.addArea(cellArea);
// Save the Excel file.
const outputData = workbook.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData], { type: 'application/vnd.ms-excel' });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Operation completed successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Convalida della lunghezza del testo
Con questo tipo di convalida, gli utenti possono inserire valori di testo di una lunghezza specificata nelle celle convalidate. Nell’esempio, all’utente è vietato inserire valori di stringa con più di 5 caratteri. L’area di convalida è la cella B1.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Aspose.Cells Example - Add Text Length Validation</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, CellArea, ValidationType, OperatorType, ValidationAlertType } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
// Create a new workbook.
const workbook = new Workbook();
// Obtain the cells of the first worksheet.
const cells = workbook.worksheets.get(0).cells;
// Put a string value into A1 cell.
const cellA1 = cells.get("A1");
cellA1.value = "Please enter a string not more than 5 chars";
// Set row height and column width for the cell.
cells.rows.get(0).height = 31;
cells.columns.get(0).width = 35;
// Get the validations collection.
const validations = workbook.worksheets.get(0).validations;
// Create Cell Area
const ca = new CellArea();
ca.startRow = 0;
ca.endRow = 0;
ca.startColumn = 0;
ca.endColumn = 0;
// Add a new validation.
const validationIndex = validations.add(ca);
const validation = validations.get(validationIndex);
// Set the data validation type.
validation.type = ValidationType.TextLength;
// Set the operator for the data validation.
validation.operator = OperatorType.LessOrEqual;
// Set the value or expression associated with the data validation.
validation.formula1 = "5";
// Enable the error.
validation.showError = true;
// Set the validation alert style.
validation.alertStyle = ValidationAlertType.Warning;
// Set the title of the data-validation error dialog box.
validation.errorTitle = "Text Length Error";
// Set the data validation error message.
validation.errorMessage = " Enter a Valid String";
// Set and enable the data validation input message.
validation.inputMessage = "TextLength Validation Type";
validation.ignoreBlank = true;
validation.showInput = true;
// Set a collection of CellArea which contains the data validation settings.
const cellArea = new CellArea();
cellArea.startRow = 0;
cellArea.endRow = 0;
cellArea.startColumn = 1;
cellArea.endColumn = 1;
// Add the validation area.
validation.addArea(cellArea);
// Save the Excel file.
const outputData = workbook.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">File created successfully. Click the download link to get the file.</p>';
});
</script>
</html>
Regole di convalida dei dati
Quando le validazioni dei dati vengono implementate, è possibile verificarle assegnando valori diversi nelle celle. cell.validationValue può essere usato per ottenere il risultato della validazione. Il seguente esempio dimostra questa funzione con valori diversi. Il file di esempio può essere scaricato dal link sottostante per testare:
sampleDataValidationRules.xlsx
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Data Validation Check Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
const resultDiv = document.getElementById('result');
resultDiv.innerHTML = '';
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiate the workbook from the uploaded Excel file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Access the first worksheet
const worksheet = workbook.worksheets.get(0);
// Access Cell C1
// Cell C1 has the Decimal Validation applied on it.
// It can take only the values Between 10 and 20
const cell = worksheet.cells.get("C1");
const messages = [];
// Enter 3 inside this cell
// Since it is not between 10 and 20, it should fail the validation
cell.value = 3;
// Check if number 3 satisfies the Data Validation rule applied on this cell
const isValid3 = cell.validationValue;
messages.push(`Is 3 a Valid Value for this Cell: ${isValid3}`);
// Enter 15 inside this cell
// Since it is between 10 and 20, it should succeed the validation
cell.value = 15;
// Check if number 15 satisfies the Data Validation rule applied on this cell
const isValid15 = cell.validationValue;
messages.push(`Is 15 a Valid Value for this Cell: ${isValid15}`);
// Enter 30 inside this cell
// Since it is not between 10 and 20, it should fail the validation again
cell.value = 30;
// Check if number 30 satisfies the Data Validation rule applied on this cell
const isValid30 = cell.validationValue;
messages.push(`Is 30 a Valid Value for this Cell: ${isValid30}`);
// Display results
resultDiv.innerHTML = messages.map(m => `<p>${m}</p>`).join('');
// Save the modified workbook and provide download link
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
});
</script>
</html>
Verifica se la convalida nella cella è a discesa
Come abbiamo visto, ci sono molti tipi di validazioni che possono essere implementate all’interno di una cella. Se vuoi verificare se la validazione è un menu a tendina o meno, puoi usare il metodo validation.inCellDropDown per testare questa proprietà. Un esempio di codice che dimostra l’uso di questa proprietà può essere scaricato dal link:
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Check Data Validation Drop-downs</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
const resultDiv = document.getElementById('result');
resultDiv.innerHTML = '';
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiating a Workbook object from uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Accessing the worksheet named "Sheet1"
const sheet = workbook.worksheets.get("Sheet1");
const cells = sheet.cells;
const appendMessage = (msg, color = 'black') => {
const p = document.createElement('p');
p.style.color = color;
p.textContent = msg;
resultDiv.appendChild(p);
};
const checkDropDown = (cell, cellRef) => {
const validation = cell.validation;
if (validation.inCellDropDown) {
appendMessage(`${cellRef} is a dropdown`, 'green');
} else {
appendMessage(`${cellRef} is NOT a dropdown`, 'orange');
}
};
checkDropDown(cells.get("A2"), "A2");
checkDropDown(cells.get("B2"), "B2");
checkDropDown(cells.get("C2"), "C2");
});
</script>
</html>
Aggiungi CellArea alla convalida esistente
Potrebbero esserci casi in cui vuoi aggiungere CellArea a un Validation esistente. Quando aggiungi CellArea usando Validation.addArea(CellArea), Aspose.Cells verifica tutte le aree esistenti per vedere se l’area nuova è già presente. Se il file ha molte validazioni, questo comporta un impatto sulle prestazioni. Per ovviare a questo, l’API fornisce il metodo Validation.addArea(CellArea, boolean, boolean). Il parametro checkIntersection indica se verificare l’intersezione di un’area data con le aree di validazione esistenti. Impostarlo su false disabiliterà il controllo di altre aree. Il parametro checkEdge indica se verificare le aree applicate. Se la nuova area diventa l’area in alto a sinistra, le impostazioni interne vengono ricostruite. Se sei sicuro che la nuova area non sia quella in alto a sinistra, puoi impostare questo parametro su false.
Il seguente esempio di codice dimostra l’uso del metodo Validation.addArea(CellArea, boolean, boolean) per aggiungere una nuova CellArea a un Validation esistente.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example - Validations</title>
</head>
<body>
<h1>Validations Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
if (!fileInput.files.length) {
document.getElementById('result').innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiating a Workbook object from uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Access first worksheet.
const worksheet = workbook.worksheets.get(0);
// Accessing the Validations collection of the worksheet
const validation = worksheet.validations.get(0);
// Create your cell area.
const cellArea = AsposeCells.CellArea.createCellArea("D5", "E7");
// Adding the cell area to Validation
validation.addArea(cellArea, false, false);
// Save the output workbook and provide download link
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'ValidationsSample_out.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Validation area added successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
I file excel sorgente e di output sono allegati a scopo informativo.