Copiar y mover hojas de cálculo dentro y entre libros con JavaScript vía C++
A veces, necesitas varias hojas de cálculo con formato y entradas de datos comunes. Por ejemplo, si trabajas con presupuestos trimestrales, es posible que desees crear un libro con hojas que contengan los mismos encabezados de columna, encabezados de fila y fórmulas. Existe una manera de hacerlo: creando una hoja y luego copiándola tres veces.
Aspose.Cells for JavaScript vía C++ soporta copiar o mover hojas de cálculo dentro o entre libros. Las hojas incluyendo datos, formato, tablas, matrices, gráficos, imágenes y otros objetos se copian con el mayor grado de precisión.
Copiar y mover hojas de cálculo
Copiando una Hoja de Cálculo dentro de un Libro
Los pasos iniciales son los mismos para todos los ejemplos.
- Crear dos libros con algunos datos en Microsoft Excel. Para este ejemplo, creamos dos nuevos libros en Microsoft Excel e introducimos algunos datos en las hojas de cálculo.
- FirstWorkbook.xlsx (3 hojas de cálculo).
- SecondWorkbook.xlsx (1 hoja de cálculo).
- Descargue e instale Aspose.Cells:
- Descargar Aspose.Cells for JavaScript vía C++.
- Instálelo en su equipo de desarrollo. Todos los componentes Aspose, cuando se instalan, funcionan en modo de evaluación. El modo de evaluación no tiene límite de tiempo y solo inserta marcas de agua en los documentos producidos.
- Cree un proyecto:
- Inicia tu entorno de desarrollo.
- Cree una nueva aplicación de consola.
- Agregue referencias:
- Agrega una referencia a Aspose.Cells al proyecto. Por ejemplo, agrega una referencia a …\Program Files\Aspose\Aspose.Cells\Bin\NodeJs\Aspose.Cells.dll
- Copia la hoja de cálculo dentro de un libro de trabajo. El primer ejemplo copia la primera hoja de cálculo (Copia) dentro de FirstWorkbook.xlsx.
Al ejecutar el código, se copia la hoja llamada Copia dentro de FirstWorkbook.xlsx con el nombre Última Hoja.
<!DOCTYPE html>
<html>
<head>
<title>Copy Worksheet Example</title>
</head>
<body>
<h1>Copy Worksheet 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');
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();
// Opening the Excel file through the file stream
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Copy the first sheet of the first book within the workbook
workbook.worksheets.get(2).copy(workbook.worksheets.get("Copy"));
// Saving the modified Excel file
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'FirstWorkbookCopied_out.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
resultDiv.innerHTML = '<p style="color: green;">Worksheet copied successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Moviendo una Hoja de Cálculo dentro de un Libro de Trabajo
El siguiente código muestra cómo mover una hoja de cálculo desde una posición a otra en un libro de trabajo. Al ejecutar el código, se mueve la hoja llamada Mover del índice 1 al índice 2 en FirstWorkbook.xlsx.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Move Worksheet 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 from the uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Move the first sheet to index 1
const worksheets = workbook.worksheets;
const worksheet = worksheets.get(0);
worksheet.moveTo(1);
// Saving the modified Excel file and offering it for download
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'FirstWorkbookMoved_out.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Worksheet moved successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Copiando una hoja de cálculo entre libros
Ejecutar el código copia la hoja llamada Copy en SecondWorkbook.xlsx con el nombre Sheet2.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
<meta charset="utf-8" />
</head>
<body>
<h1>Copy Worksheets Between Workbooks</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 } = 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 () => {
// Create two workbooks
const excelWorkbook3 = new Workbook();
const excelWorkbook4 = new Workbook();
// Create source worksheet
excelWorkbook3.worksheets.add("Copy");
// Add new worksheet into second Workbook
excelWorkbook4.worksheets.add();
// Copy the first sheet of the first book into second book.
excelWorkbook4.worksheets.get(1).copy(excelWorkbook3.worksheets.get("Copy"));
// Save the file.
const outputData = excelWorkbook4.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'CopyWorksheetsBetweenWorkbooks_out.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Worksheets copied successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Moviendo una hoja de cálculo entre libros
Al ejecutar el código se mueve la hoja llamada Mover de FirstWorkbook.xlsx a SecondWorkbook.xlsx con el nombre Hoja3.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Move Worksheets Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink1" style="display: none; margin-right: 10px;">Download First Workbook</a>
<a id="downloadLink2" style="display: none;">Download Second Workbook</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat } = 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 () => {
// Create new workbooks instead of opening existing files
const excelWorkbook5 = new Workbook();
const excelWorkbook6 = new Workbook();
// Add New Worksheet
excelWorkbook6.worksheets.add();
// Copy the sheet from first book into second book.
excelWorkbook6.worksheets.get(0).copy(excelWorkbook5.worksheets.get(0));
// Remove the copied worksheet from first workbook
excelWorkbook5.worksheets.removeAt(0);
// Save the first workbook
const outputData1 = excelWorkbook5.save(SaveFormat.Xlsx);
const blob1 = new Blob([outputData1]);
const downloadLink1 = document.getElementById('downloadLink1');
downloadLink1.href = URL.createObjectURL(blob1);
downloadLink1.download = 'FirstWorkbookWithMove_out.xlsx';
downloadLink1.style.display = 'inline';
downloadLink1.textContent = 'Download FirstWorkbookWithMove_out.xlsx';
// Save the second workbook
const outputData2 = excelWorkbook6.save(SaveFormat.Xlsx);
const blob2 = new Blob([outputData2]);
const downloadLink2 = document.getElementById('downloadLink2');
downloadLink2.href = URL.createObjectURL(blob2);
downloadLink2.download = 'SecondWorkbookWithMove_out.xlsx';
downloadLink2.style.display = 'inline';
downloadLink2.textContent = 'Download SecondWorkbookWithMove_out.xlsx';
document.getElementById('result').innerHTML = '<p style="color: green;">Workbooks processed successfully. Click the download links to retrieve the files.</p>';
});
</script>
</html>