How to get OData Connection Information with JavaScript via C++
Contents
[
Hide
]
Get OData Connection Information
There might be cases where developers need to extract OData information from the Excel file. Aspose.Cells for JavaScript via C++ provides the Workbook.dataMashup property which returns the DataMashup information present in the Excel file. This information is represented by the DataMashup class. The DataMashup class provides the DataMashup.powerQueryFormulas property that returns the PowerQueryFormulaCollection collection. From the PowerQueryFormulaCollection, you can get access to PowerQueryFormula and PowerQueryFormulaItem.
The following code snippet demonstrates the use of these classes to retrieve the OData information.
The Source file used in the following code snippet is attached for your reference.
Sample Code
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example - Read Power Query Formulas</title>
</head>
<body>
<h1>Read Power Query Formulas 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, 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();
// Instantiating a Workbook object by loading the uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Access DataMashup and its PowerQueryFormulas collection
const PQFcoll = workbook.dataMashup.powerQueryFormulas;
let html = '<h2>Power Query Formulas</h2>';
if (!PQFcoll || PQFcoll.count === 0) {
html += '<p>No Power Query formulas found.</p>';
} else {
for (let i = 0; i < PQFcoll.count; i++) {
const PQF = PQFcoll.get(i);
html += `<h3>Connection Name: ${PQF.name}</h3>`;
const PQFIcoll = PQF.powerQueryFormulaItems;
if (!PQFIcoll || PQFIcoll.count === 0) {
html += '<p>No items found for this connection.</p>';
} else {
html += '<ul>';
for (let j = 0; j < PQFIcoll.count; j++) {
const PQFI = PQFIcoll.get(j);
html += `<li><strong>Name:</strong> ${PQFI.name} <br/><strong>Value:</strong> ${PQFI.value}</li>`;
}
html += '</ul>';
}
}
}
document.getElementById('result').innerHTML = html;
});
</script>
</html>
Console Output
Connection Name: Orders
Name: Source
Value: OData.Feed("https://services.odata.org/V3/Northwind/Northwind.svc/", null, [Implementation="2.0"])
Name: Orders_table
Value: Source{[Name="Orders",Signature="table"]}[Data]