Copiar y Mover Hojas de Cálculo con JavaScript mediante C++
A veces, necesitas varias hojas de cálculo con formato y datos comunes. Por ejemplo, si trabajas con presupuestos trimestrales, es posible que desees crear un libro de trabajo con hojas que contengan los mismos encabezados de columna, encabezados de fila y fórmulas. Existe una forma de hacer esto: creando una hoja y luego copiándola.
El script Aspose.Cells for Java a través de C++ soporta copiar y mover hojas de cálculo dentro o entre libros de trabajo. La hoja de cálculo, junto con datos, formato, tablas, matrices, gráficos, imágenes y otros objetos, se copian con el mayor grado de precisión.
Mover o Copiar Hojas usando Microsoft Excel
A continuación se detallan los pasos necesarios para copiar y mover hojas de cálculo dentro o entre libros de trabajo en Microsoft Excel.
- Para mover o copiar hojas a otro libro de trabajo, abre el libro de trabajo que recibirá las hojas.
- Cambia al libro de trabajo que contiene las hojas que deseas mover o copiar, y luego selecciona las hojas.
- En el menú Editar, haga clic en Mover o copiar hoja.
- En el cuadro de diálogo Hacia el libro, haga clic en el libro que recibirá las hojas.
- Para mover o copiar las hojas seleccionadas a un nuevo libro de trabajo, haga clic en Nuevo libro.
- En el cuadro Antes de la hoja, haga clic en la hoja antes de la cual desea insertar las hojas movidas o copiadas.
- Para copiar las hojas en lugar de moverlas, seleccione la casilla Crear una copia.
Copiar Hojas de Cálculo dentro de un Libro con Aspose.Cells for JavaScript a través de C++
Aspose.Cells proporciona un método sobrecargado, Aspose.Cells.WorksheetCollection.addCopy(), que se utiliza para agregar una hoja de cálculo a la colección y copiar datos de una hoja de cálculo existente. Una versión del método toma el índice de la hoja de cálculo fuente como parámetro. La otra versión toma el nombre de la hoja de cálculo fuente.
El siguiente ejemplo muestra cómo copiar una hoja de trabajo existente dentro de un libro.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example - Copy Sheet Within Workbook</title>
</head>
<body>
<h1>Copy Sheet Within Workbook 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, Worksheet, Cell, 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();
// Open an existing Excel file.
const wb = new Workbook(new Uint8Array(arrayBuffer));
// Create a Worksheets object with reference to the sheets of the Workbook.
const sheets = wb.worksheets;
// Copy data to a new sheet from an existing sheet within the Workbook.
sheets.addCopy("Sheet1");
// Save the Excel file.
const outputData = wb.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'CopyWithinWorkbook_out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
resultDiv.innerHTML = '<p style="color: green;">Sheet copied successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Copiar Hojas de Cálculo entre Libros de Trabajo
Aspose.Cells proporciona un método, Worksheet.copy(Worksheet), utilizado para copiar datos y formato de una hoja de cálculo fuente a otra hoja dentro o entre libros de trabajo. El método toma el objeto de hoja de cálculo fuente como parámetro.
El siguiente ejemplo muestra cómo copiar una hoja de cálculo de un libro a otro libro.
<!DOCTYPE html>
<html>
<head>
<title>Copy Worksheets Between Workbooks</title>
</head>
<body>
<h1>Copy Worksheets Between Workbooks</h1>
<p>Select the source Excel file (book1.xls) to copy its first worksheet into a new workbook.</p>
<input type="file" id="fileInput" accept=".xls,.xlsx" />
<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');
resultDiv.innerHTML = '';
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select an Excel file (book1.xls).</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Create a Workbook from the uploaded file (source workbook)
const excelWorkbook0 = new Workbook(new Uint8Array(arrayBuffer));
// Create another Workbook (destination workbook)
const excelWorkbook1 = new Workbook();
// Copy the first sheet of the first book into second book.
excelWorkbook1.worksheets.get(0).copy(excelWorkbook0.worksheets.get(0));
// Save the file as Excel 97-2003 (.xls)
const outputData = excelWorkbook1.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'CopyWorksheetsBetweenWorkbooks_out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Copied Workbook';
resultDiv.innerHTML = '<p style="color: green;">Worksheet copied successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
El siguiente ejemplo muestra cómo copiar una hoja de cálculo de un libro a otro.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Copy Worksheet Between Workbooks 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 () => {
// Create a new Workbook.
const excelWorkbook0 = new Workbook();
// Get the first worksheet in the book.
const ws0 = excelWorkbook0.worksheets.get(0);
// Put some data into header rows (A1:A4)
for (let i = 0; i < 5; i++) {
ws0.cells.get(i, 0).value = `Header Row ${i}`;
}
// Put some detail data (A5:A999)
for (let i = 5; i < 1000; i++) {
ws0.cells.get(i, 0).value = `Detail Row ${i}`;
}
// Define a pagesetup object based on the first worksheet.
const pagesetup = ws0.pageSetup;
// The first five rows are repeated in each page...
// It can be seen in print preview.
pagesetup.printTitleRows = "$1:$5";
// Create another Workbook.
const excelWorkbook1 = new Workbook();
// Get the first worksheet in the book.
const ws1 = excelWorkbook1.worksheets.get(0);
// Name the worksheet.
ws1.name = "MySheet";
// Copy data from the first worksheet of the first workbook into the
// first worksheet of the second workbook.
ws1.copy(ws0);
// Saving the modified Excel file
const outputData = excelWorkbook1.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'CopyWorksheetFromWorkbookToOther_out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Workbook created and worksheet copied successfully! Click the download link to get the file.</p>';
});
</script>
</html>
Mover Hojas de Cálculo dentro de un Libro de Trabajo
Aspose.Cells ofrece un método Aspose.Cells.Worksheet.moveTo() que se usa para mover una hoja de cálculo a otra ubicación en la misma hoja de cálculo. El método toma el índice de la hoja de destino como parámetro.
El siguiente ejemplo muestra cómo mover una hoja de cálculo a otra ubicación dentro del libro.
<!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 } = 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 uploaded file
const wb = new Workbook(new Uint8Array(arrayBuffer));
// Access worksheets collection
const sheets = wb.worksheets;
// Get the first worksheet
const worksheet = sheets.get(0);
// Move the first sheet to the third position (index 2)
worksheet.moveTo(2);
// Save the modified workbook in Excel97-2003 format
const outputData = wb.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'MoveWorksheet_out.xls';
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>