Validation de données
Types de validation des données et exécution
La validation des données est la capacité de définir des règles relatives aux données saisies dans une feuille de calcul. Par exemple, utilisez la validation pour vous assurer qu’une colonne étiquetée DATE ne contient que des dates, ou qu’une autre colonne ne contient que des chiffres. Vous pourriez même vous assurer qu’une colonne étiquetée DATE ne contient que des dates dans une certaine plage. Avec la validation des données, vous pouvez contrôler ce qui est saisi dans les cellules de la feuille de calcul.
Microsoft Excel prend en charge plusieurs types de validation des données. Chaque type est utilisé pour contrôler le type de données entrées dans une cellule ou une plage de cellules. Ci-dessous, des extraits de code illustrent comment valider que:
- Les chiffres sont des entiers, c’est-à-dire qu’ils n’ont pas de partie décimale.
- Les nombres décimaux suivent la structure correcte. L’exemple de code définit qu’une plage de cellules doit avoir deux décimales.
- Les valeurs sont restreintes à une liste de valeurs. La validation de liste définit une liste distincte de valeurs qui peuvent s’appliquer à une cellule ou une plage de cellules.
- Les dates se trouvent dans une plage spécifique.
- Une heure se situe dans une plage spécifique.
- Un texte a une longueur de caractères donnée.
Validation des données avec Microsoft Excel
Pour créer des validations avec Microsoft Excel:
- Dans une feuille de calcul, sélectionnez les cellules auxquelles vous voulez appliquer la validation.
- Dans le menu Données, sélectionnez Validation. La boîte de dialogue de validation s’affichera.
- Cliquez sur l’onglet Paramètres et saisissez les paramètres.
Validation des données avec Aspose.Cells for JavaScript via C++
La validation des données est une fonctionnalité puissante pour valider les informations saisies dans les feuilles de calcul. Avec la validation des données, les développeurs peuvent fournir aux utilisateurs une liste de choix, restreindre les saisies de données à un type ou une taille spécifique, etc. Dans Aspose.Cells for JavaScript via C++, chaque classe Worksheet possède une collection validations qui représente une collection d’objets Validation. Pour configurer la validation, définissez certaines propriétés de la classe Validation comme suit :
- Type – représente le type de validation, qui peut être spécifié en utilisant l’une des valeurs prédéfinies dans l’énumération ValidationType.
- Opérateur – représente l’opérateur à utiliser dans la validation, qui peut être spécifié en utilisant l’une des valeurs prédéfinies dans l’énumération OperatorType.
- Formule1 : représente la valeur ou l’expression associée à la première partie de la validation des données.
- Formule2 : représente la valeur ou l’expression associée à la deuxième partie de la validation des données.
Lorsque les propriétés de l’objet Validation ont été configurées, les développeurs peuvent utiliser la structure CellArea pour stocker des informations sur la plage de cellules qui sera validée à l’aide de la validation créée.
Types de validation des données
L’énumération ValidationType a les membres suivants :
| Nom du membre | Description |
|---|---|
| AnyValue | Désigne une valeur de n’importe quel type. |
| WholeNumber | Indique le type de validation pour les nombres entiers. |
| Decimal | Indique le type de validation pour les nombres décimaux. |
| List | Indique le type de validation pour la liste déroulante. |
| Date | Indique le type de validation pour les dates. |
| Time | Indique le type de validation pour l’heure. |
| TextLength | Indique le type de validation pour la longueur du texte. |
| Custom | Indique le type de validation personnalisée. |
Validation de données pour les nombres entiers
Avec ce type de validation, les utilisateurs ne peuvent entrer que des nombres entiers dans une plage spécifiée dans les cellules validées. Les exemples de code qui suivent montrent comment implémenter le type de validation WholeNumber. L’exemple crée la même validation de données en utilisant Aspose.Cells for JavaScript via C++ que celle que nous avons créée avec Microsoft Excel ci-dessus.
<!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>
Validation de données par liste
Ce type de validation permet à l’utilisateur d’entrer des valeurs à partir d’une liste déroulante. Il fournit une liste: une série de lignes contenant des données. Dans l’exemple, une deuxième feuille de calcul est ajoutée pour contenir la source de la liste. Les utilisateurs ne peuvent sélectionner que des valeurs dans la liste. La zone de validation est la plage de cellules A1:A5 dans la première feuille de calcul.
Il est important ici de définir la propriété Validation.inCellDropDown(boolean) sur 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>
Validation de données pour les dates
Avec ce type de validation, les utilisateurs saisissent des valeurs de date dans une plage spécifiée, ou répondant à des critères spécifiques, dans les cellules validées. Dans l’exemple, l’utilisateur est limité à saisir des dates entre 1970 et 1999. Ici, la zone de validation est la cellule 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>
Validation des données de temps
Avec ce type de validation, les utilisateurs peuvent saisir des heures dans une plage spécifiée, ou répondant à certains critères, dans les cellules validées. Dans l’exemple, l’utilisateur est limité à saisir des heures entre 09h00 et 11h30. Ici, la zone de validation est la cellule 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>
Validation de la longueur du texte
Avec ce type de validation, les utilisateurs peuvent saisir des valeurs textuelles d’une longueur spécifiée dans les cellules validées. Dans l’exemple, l’utilisateur est limité à saisir des valeurs de chaîne ne dépassant pas 5 caractères. La zone de validation est la cellule 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>
Règles de validation des données
Lors de l’implémentation des validations, la validation peut être vérifiée en assignant différentes valeurs dans les cellules. cell.validationValue peut être utilisé pour récupérer le résultat de la validation. L’exemple suivant montre cette fonctionnalité avec différentes valeurs. Le fichier d’échantillon peut être téléchargé via le lien suivant pour test :
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>
Vérifier si la validation dans la cellule est une liste déroulante
Comme nous l’avons vu, il existe de nombreux types de validations qui peuvent être implémentés dans une cellule. Si vous souhaitez vérifier si la validation est un menu déroulant ou non, la méthode validation.inCellDropDown peut être utilisée pour tester cela. Le code d’échantillon ci-dessous montre l’utilisation de cette propriété. Un fichier d’échantillon pour tester peut être téléchargé via le lien suivant :
<!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>
Ajouter une CellArea à une validation existante
Il peut y avoir des cas où vous souhaitez ajouter CellArea à Validation existantes. Lorsque vous ajoutez CellArea en utilisant Validation.addArea(CellArea), Aspose.Cells vérifie toutes les zones existantes pour voir si la nouvelle zone existe déjà. Si le fichier contient un grand nombre de validations, cela impacte la performance. Pour éviter cela, l’API fournit la méthode Validation.addArea(CellArea, boolean, boolean). Le paramètre checkIntersection indique s’il faut vérifier l’intersection d’une zone donnée avec les zones de validation existantes. La mise à false désactivera la vérification des autres zones. Le paramètre checkEdge indique s’il faut vérifier les zones appliquées. Si la nouvelle zone devient la zone en haut à gauche, les paramètres internes sont reconstruit. Si vous êtes certain que la nouvelle zone n’est pas en haut à gauche, vous pouvez définir ce paramètre sur false.
Le code suivant illustre l’utilisation de la méthode Validation.addArea(CellArea, boolean, boolean) pour ajouter un CellArea à Validation existants.
<!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>
Les fichiers Excel source et de sortie sont joints pour référence.