Dateien mit JavaScript via C++ zusammenführen
Einführung
Aspose.Cells bietet verschiedene Möglichkeiten zum Zusammenführen von Dateien. Für einfache Dateien mit Daten, Formatierungen und Formeln kann die Workbook.combine(Workbook)-Methode verwendet werden, um mehrere Arbeitsmappen zu kombinieren, und die Worksheet.copy(Worksheet)-Methode, um Arbeitsblätter in eine neue Arbeitsmappe zu kopieren. Diese Methoden sind einfach und effektiv, aber wenn Sie viele Dateien zusammenführen müssen, könnten sie systemintensiv sein. Um dies zu vermeiden, verwenden Sie die statische Methode **CellsHelper.mergeFiles(string[], string, string)**, die effizienter ist, um mehrere Dateien zu zusammenzuführen.
Dateien mit Aspose.Cells for JavaScript über C++ zusammenfügen
Der folgende Beispielcode zeigt, wie große Dateien mit der **CellsHelper.mergeFiles(string[], string, string)**-Methode zusammengeführt werden. Es nimmt zwei einfache, aber große Dateien, Book1.xls und Book2.xls. Die Dateien enthalten formatierten Daten und Formeln.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Merge Excel Files and Rename Sheets Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx" multiple />
<button id="runExample">Merge and Rename Sheets</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, CellsHelper } = 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 || fileInput.files.length < 2) {
resultDiv.innerHTML = '<p style="color: red;">Please select at least two Excel files to merge.</p>';
return;
}
// Read selected files into Uint8Array array
const files = [];
for (let i = 0; i < fileInput.files.length; i++) {
const file = fileInput.files[i];
const arrayBuffer = await file.arrayBuffer();
files.push(new Uint8Array(arrayBuffer));
}
// Create cacheFile name and destination name (virtual in browser)
const cacheFile = "test.txt";
const dest = "output.xlsx";
// Call CellsHelper.mergeFiles with file byte arrays, cacheFile name and destination name
// Note: In the browser environment mergeFiles is expected to accept file byte arrays and return merged file bytes.
const mergedData = CellsHelper.mergeFiles(files, cacheFile, dest);
// Log cacheFile as in original code
console.log(cacheFile);
// Load the merged workbook from returned bytes
const workbook = new Workbook(new Uint8Array(mergedData));
// Rename sheets sequentially starting at 1
let i = 1;
const worksheets = workbook.worksheets;
for (let j = 0; j < worksheets.count; j++) {
worksheets.get(j).name = `Sheet1${i}`;
i++;
}
// Save the modified workbook and prepare download link
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Merged and Renamed Excel File';
resultDiv.innerHTML = '<p style="color: green;">Files merged and sheets renamed successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>