Obtenir une plage avec des liens externes en utilisant JavaScript via C++
Contents
[
Hide
]
Obtenir une plage avec des liens externes
Souvent, les fichiers Excel accèdent à des données provenant d’autres fichiers Excel via des liens externes. Aspose.Cells for JavaScript via C++ offre la possibilité de récupérer ces liens externes en utilisant la méthode Name.referredAreas(boolean). La méthode Name.referredAreas(boolean) retourne un tableau de type ReferredArea. La classe ReferredArea fournit une propriété ReferredArea.externalFileName qui retourne le nom du fichier externe. La classe ReferredArea expose les membres suivants.
- ReferredArea.endColumn : La colonne finale de la zone
- ReferredArea.endRow : La ligne finale de la zone
- ReferredArea.externalFileName : Obtenir le nom du fichier externe si c’est une référence externe
- ReferredArea.isArea() : Indique si c’est une zone
- ReferredArea.isExternalLink() : Indique s’il s’agit d’un lien externe
- ReferredArea.sheetName : Indique dans quelle feuille cette référence se trouve
- ReferredArea.startColumn : La colonne de départ de la zone
- ReferredArea.startRow : La ligne de départ de la zone
Le code d’exemple ci-dessous montre l’utilisation de la méthode Name.referredAreas(boolean) pour obtenir des plages avec des liens externes.
Code d’exemple
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example - External References</title>
</head>
<body>
<h1>Sample External References</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, Utils } = 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 (SampleExternalReferences.xlsx).</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiating a Workbook object from the uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Accessing named ranges via worksheets.names
const names = workbook.worksheets.names;
const namesCount = names.count;
const outputLines = [];
outputLines.push(`<p>Processing file: ${file.name}</p>`);
outputLines.push(`<p>Named Ranges Count: ${namesCount}</p>`);
for (let i = 0; i < namesCount; i++) {
const namedRange = names.get(i);
outputLines.push(`<h3>Named Range ${i}: ${namedRange.name || ('Index ' + i)}</h3>`);
// Get referred areas (including external references)
const referredAreas = namedRange.referredAreas(true);
if (referredAreas) {
referredAreas.forEach((referredArea, idx) => {
outputLines.push(`<h4>Referred Area ${idx}</h4>`);
outputLines.push(`<ul>`);
outputLines.push(`<li>IsExternalLink: ${referredArea.isExternalLink}</li>`);
outputLines.push(`<li>IsArea: ${referredArea.isArea}</li>`);
outputLines.push(`<li>SheetName: ${referredArea.sheetName}</li>`);
outputLines.push(`<li>ExternalFileName: ${referredArea.externalFileName}</li>`);
outputLines.push(`<li>StartColumn: ${referredArea.startColumn}</li>`);
outputLines.push(`<li>StartRow: ${referredArea.startRow}</li>`);
outputLines.push(`<li>EndColumn: ${referredArea.endColumn}</li>`);
outputLines.push(`<li>EndRow: ${referredArea.endRow}</li>`);
outputLines.push(`</ul>`);
});
} else {
outputLines.push(`<p>No referred areas for this named range.</p>`);
}
}
resultDiv.innerHTML = outputLines.join('');
});
</script>
</html>