Gestionar saltos de página con JavaScript vía C++
Según la definición, un salto de página es un lugar en un flujo de texto donde una página termina y comienza la siguiente. Microsoft Excel permite a los usuarios agregar saltos de página en cualquier celda seleccionada de una hoja de cálculo.
La ubicación de la celda donde se agrega el salto de página, la página termina y el resto de los datos después del salto de página se imprime en la siguiente página al imprimir. En pocas palabras, los saltos de página dividen su hoja de cálculo en múltiples páginas de acuerdo con sus especificaciones. También puedes agregar saltos de página a tus hojas de trabajo en tiempo de ejecución utilizando Aspose.Cells. Aspose.Cells permite a los desarrolladores agregar dos tipos de saltos de página:
- Salto de página horizontal
- Salto de página vertical
En el resto de la discusión, describiremos cómo puedes agregar saltos de página horizontales o verticales en tus hojas de cálculo usando Aspose.Cells.
Saltos de página
Aspose.Cells for JavaScript vía C++ proporciona una clase Workbook que representa un archivo de Excel. La clase Workbook contiene una colección workbook.worksheets que permite acceder a cada hoja de cálculo en el archivo de Excel.
Una hoja de cálculo está representada por la clase Worksheet. La clase Worksheet proporciona una amplia gama de propiedades y métodos utilizados para gestionar una hoja de cálculo.
Para agregar los saltos de página, utiliza las propiedades Worksheet y worksheet.horizontalPageBreaks de la clase,.
Las propiedades worksheet.horizontalPageBreaks y worksheet.verticalPageBreaks son colecciones que pueden contener varios saltos de página. Cada colección contiene varios métodos para gestionar saltos de página horizontales y verticales.
Añadir Saltos de Página
Para agregar un salto de página en una hoja de trabajo, inserte saltos de página verticales y horizontales en la celda especificada llamando a los métodos HorizontalPageBreakCollection.add(number, number, number) y VerticalPageBreakCollection.add(number, number, number). Cada método add toma el nombre de la celda donde se añadirá el salto.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Adding Page Breaks 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 a file is provided, open it; otherwise create a new workbook
let workbook;
if (fileInput.files.length) {
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
workbook = new Workbook(new Uint8Array(arrayBuffer));
} else {
workbook = new Workbook();
}
// Access first worksheet
const worksheet = workbook.worksheets.get(0);
// Add a page break at cell Y30
worksheet.horizontalPageBreaks.add("Y30");
worksheet.verticalPageBreaks.add("Y30");
// Save the Excel file (Excel 97-2003 format .xls)
const outputData = workbook.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'AddingPageBreaks_out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Page breaks added successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Eliminación de un salto de página específico
Para eliminar un salto de página específico, llama a los métodos HorizontalPageBreakCollection.removeAt(number) y VerticalPageBreakCollection.removeAt(number). Cada método removeAt toma el índice del salto de página a eliminar.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Remove Specific Page Break Example</title>
</head>
<body>
<h1>Remove Specific Page Break 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 the uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Accessing the first worksheet in the Excel file
const worksheet = workbook.worksheets.get(0);
// Removing a specific page break
worksheet.horizontalPageBreaks.removeAt(0);
worksheet.verticalPageBreaks.removeAt(0);
// Saving the Excel file (Excel 97-2003 format for .xls)
const outputData = workbook.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'RemoveSpecificPageBreak_out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Page breaks removed successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Importante saber
Cuando configura las propiedades fitToPages (que son PageSetup.fitToPagesTall y PageSetup.fitToPagesWide) en la configuración de la página, la configuración del salto de página se ve afectada, por lo que, si imprime la hoja de trabajo, la configuración del salto de página no se tendrá en cuenta aunque sigan establecidos.