Läsning och skrivning av Query Table i kalkylblad med JavaScript via C++
Aspose.Cells tillhandahåller Worksheet.QueryTables-samlingen som returnerar objektet av typ QueryTable efter index. Den har följande två egenskaper
- QueryTable.adjustColumnWidth
- QueryTable.preserveFormatting
Dessa är båda Boolean-värden. Du kan se dem i Microsoft Excel via Data > Connections > Properties.
Läsning och skrivning av frågetabell i arbetsblad
Följande exempel läser det första QueryTable i det första arbetsbladet och skriver ut båda QueryTable-egenskaperna. Sedan sätter det QueryTable.preserveFormatting till true.
Du kan ladda ned den angivna källfilen Excel som används i koden och den genererade utdatafilen Excel med hjälp av följande länkar.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Aspose.Cells QueryTable Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample" disabled>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').disabled = false;
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
const resultDiv = document.getElementById('result');
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();
// Create workbook from source excel file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Access first worksheet
const worksheet = workbook.worksheets.get(0);
// Access first Query Table
const qt = worksheet.queryTables.get(0);
// Read Query Table Data (properties converted from getters)
const adjustColumnWidth = qt.adjustColumnWidth;
const preserveFormatting = qt.preserveFormatting;
resultDiv.innerHTML = `<p>Adjust Column Width: ${adjustColumnWidth}</p><p>Preserve Formatting: ${preserveFormatting}</p>`;
// Now set Preserve Formatting to true (setter converted to property assignment)
qt.preserveFormatting = true;
// Save the workbook
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'Output_out.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
resultDiv.innerHTML += '<p style="color: green;">PreserveFormatting set to true. Click the download link to get the modified file.</p>';
});
</script>
</html>
Konsolutfall
Adjust Column Width: True
Preserve Formatting: FalseHämta frågetabellens resultatintervall
Aspose.Cells ger möjlighet att läsa adressen dvs resultatintervallen av celler för en frågetabell. Följande kod visar denna funktion genom att läsa adressen för resultatintervallen för en frågetabell. Exempelfilen kan laddas ner här.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Aspose.Cells 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();
const workbook = new Workbook(new Uint8Array(arrayBuffer));
const worksheet = workbook.worksheets.get(0);
const queryTable = worksheet.queryTables.get(0);
const resultRange = queryTable.resultRange;
const address = resultRange.address;
const addressText = (address && typeof address.toString === 'function') ? address.toString() : String(address);
console.log(addressText);
document.getElementById('result').innerHTML = `<p>Query table result range address: ${addressText}</p>`;
});
</script>
</html>