Daten in Nicht Primitive Form mit JavaScript via C++
Contents
[
Hide
]
Zugriff auf Daten nicht-primitiver Form
Manchmal müssen Sie auf Daten aus einer Form zugreifen, die nicht eingebaut ist. Eingebaute Formen werden primitive Formen genannt; solche, die es nicht sind, werden nicht-primitive genannt. Sie können beispielsweise eigene Formen mit verschiedenen verbundenen Kurvenlinien definieren.
Eine nicht-primitive Form
In Aspose.Cells for JavaScript via C++ werden Nicht-Primitive-Formen dem Typ AutoShapeType.NotPrimitive zugewiesen. Sie können ihren Typ mit der Shape.autoShapeType Eigenschaft überprüfen.
Greifen Sie auf die Formdaten mit der Eigenschaft Shape.paths zu. Diese gibt alle verbundenen Pfade zurück, die die nicht-primitiven Formen bilden. Diese Pfade sind vom Typ ShapePath, der eine Liste aller Segmente enthält, die wiederum die Punkte in jedem Segment enthalten.
| Zeigt ein Beispiel für eine nicht-primitive Form |
|---|
![]() |
<!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>
