Dati in forma non primitiva con JavaScript tramite C++
Contents
[
Hide
]
Accesso ai Dati di Forma Non-Primitiva
A volte, è necessario accedere ai dati da una forma non incorporata. Le forme incorporate sono chiamate forme primitive; quelle che non lo sono vengono chiamate non primitive. Ad esempio, è possibile definire le proprie forme utilizzando diverse linee collegate da curve.
Una Forma Non-Primitiva
In Aspose.Cells for JavaScript tramite C++, le forme non primitive vengono assegnate al tipo AutoShapeType.NotPrimitive. Puoi verificare il loro tipo usando la proprietà Shape.autoShapeType.
Accedi ai dati della forma usando la proprietà Shape.paths. Ritorna tutti i percorsi collegati che compongono la forma non primitiva. Questi percorsi sono di tipo ShapePath che contiene un elenco di tutti i segmenti che a loro volta contengono i punti in ciascun segmento.
| Mostra un esempio di una forma non primitiva |
|---|
![]() |
<!DOCTYPE html>
<html>
<head>
<title>Non-Primitive Shape Paths Example</title>
</head>
<body>
<h1>Non-Primitive Shape Paths 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, 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');
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();
const workbook = new Workbook(new Uint8Array(arrayBuffer));
const worksheet = workbook.worksheets.get(0);
// Accessing the user defined shape
const shape = worksheet.shapes.get(0);
if (shape.autoShapeType === AsposeCells.AutoShapeType.NotPrimitive)
{
// Access shape's data
const shapePathCollection = shape.paths;
// Build output
let outputHtml = '<div><strong>Shape Path Points:</strong><br/><pre style="white-space: pre-wrap;">';
// Access information of individual path
for (let i = 0; i < shapePathCollection.count; i++)
{
const shapePath = shapePathCollection.get(i);
// Access path segment list
const pathSegments = shapePath.pathSegementList;
// Access individual path segment
for (let j = 0; j < pathSegments.count; j++)
{
const pathSegment = pathSegments.get(j);
// Gets the points in path segment
const segmentPoints = pathSegment.points;
for (let k = 0; k < segmentPoints.count; k++)
{
const pathPoint = segmentPoints.get(k);
outputHtml += "X: " + pathPoint.x + ", Y: " + pathPoint.y + "\n";
}
}
}
outputHtml += '</pre></div>';
document.getElementById('result').innerHTML = outputHtml;
} else {
document.getElementById('result').innerHTML = '<p>Shape is not a NonPrimitive auto-shape.</p>';
}
});
</script>
</html>
