Aperçu du classeur avec JavaScript via C++

Aperçu avant impression

Il peut arriver que des fichiers Excel avec des millions de pages doivent être convertis en PDF ou en images. Le traitement de tels fichiers consommera beaucoup de temps et de ressources. Dans ce cas, la fonction d’aperçu avant impression du classeur et de la feuille de calcul peut être utile. Avant de convertir ces fichiers, l’utilisateur peut vérifier le nombre total de pages, puis décider si le fichier doit être converti ou non. Cet article se concentre sur l’utilisation des classes WorkbookPrintingPreview et SheetPrintingPreview pour connaître le nombre total de pages.

Aspose.Cells fournit la fonction d’aperçu avant impression. Pour cela, l’API propose les classes WorkbookPrintingPreview et SheetPrintingPreview. Pour créer l’aperçu avant impression de l’ensemble du classeur, créez une instance de la classe WorkbookPrintingPreview en passant les objets Workbook et ImageOrPrintOptions au constructeur. La classe WorkbookPrintingPreview fournit une méthode evaluatedPageCount qui renvoie le nombre de pages dans l’aperçu généré. De manière similaire à la classe WorkbookPrintingPreview, la classe SheetPrintingPreview est utilisée pour générer un aperçu avant impression pour une feuille de calcul spécifique. Pour créer l’aperçu d’une feuille, créez une instance de la classe SheetPrintingPreview en passant les objets Worksheet et ImageOrPrintOptions au constructeur. La classe SheetPrintingPreview offre également une méthode evaluatedPageCount qui renvoie le nombre de pages dans l’aperçu généré.

Le code suivant démontre l’utilisation des classes WorkbookPrintingPreview et SheetPrintingPreview en utilisant le fichier Excel d’exemple.

Code d’exemple

<!DOCTYPE html>
<html>
    <head>
        <title>Aspose.Cells Example - Printing Preview</title>
    </head>
    <body>
        <h1>Printing Preview 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, ImageOrPrintOptions, WorkbookPrintingPreview, SheetPrintingPreview } = 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));

            // Creating image/print options
            const imgOptions = new ImageOrPrintOptions();

            // Workbook printing preview
            const preview = new WorkbookPrintingPreview(workbook, imgOptions);
            const workbookPageCount = preview.evaluatedPageCount;
            console.log("Workbook page count: " + workbookPageCount);

            // Worksheet printing preview for first worksheet
            const preview2 = new SheetPrintingPreview(workbook.worksheets.get(0), imgOptions);
            const worksheetPageCount = preview2.evaluatedPageCount;
            console.log("Worksheet page count: " + worksheetPageCount);

            document.getElementById('result').innerHTML = `<p>Workbook page count: ${workbookPageCount}</p><p>Worksheet page count: ${worksheetPageCount}</p>`;
        });
    </script>
</html>

Voici la sortie générée en exécutant le code ci-dessus.

Sortie console

  
Workbook page count: 1  
Worksheet page count: 1  

Sujets avancés