Filterdefinierte Namen beim Laden der Arbeitsmappe mit JavaScript über C++

Mögliche Verwendungsszenarien

Aspose.Cells ermöglicht es Ihnen, definierte Namen innerhalb der Arbeitsmappe zu filtern oder zu entfernen. Bitte verwenden Sie LoadDataFilterOptions.DefinedNames, um definierte Namen zu laden, und LoadDataFilterOptions.DefinedNames, um sie beim Laden der Arbeitsmappe zu entfernen. Bitte beachten Sie, dass das Entfernen definierter Namen dazu führen kann, dass Formeln innerhalb der Arbeitsmappe nicht mehr funktionieren.

Definierte Namen filtern beim Laden der Arbeitsmappe

Der folgende Beispielcode lädt die Beispiel-Excel-Datei, die eine Formel in Zelle C1 enthält, die die definierten Namen enthält, d.h. =SUM(MyName1, MyName2). Da wir LoadDataFilterOptions.DefinedNames verwenden, um die definierten Namen beim Laden der Arbeitsmappe zu entfernen, wird die Formel in Zelle C1 in der Ausgabe-Excel-Datei unterbrochen und stattdessen #NAME? angezeigt. Bitte sehen Sie sich den folgenden Screenshot an, der die Auswirkungen des Codes auf die Beispiel-Excel-Datei zeigt.

todo:image_alt_text

Beispielcode

<!DOCTYPE html>
<html>
    <head>
        <title>Filter Defined Names While Loading Workbook</title>
    </head>
    <body>
        <h1>Filter Defined Names While Loading Workbook</h1>
        <input type="file" id="fileInput" accept=".xlsx,.xls" />
        <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, LoadOptions, LoadFilter, LoadDataFilterOptions, 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();

            // Specify the load options
            let opts = new LoadOptions();
            // We do not want to load defined names
            opts.loadFilter = new LoadFilter(~LoadDataFilterOptions.DefinedNames);

            // Load the workbook with load options
            const workbook = new Workbook(new Uint8Array(arrayBuffer), opts);

            // Save the output Excel file, it will break the formula in C1 if defined names were removed
            const outputData = workbook.save(SaveFormat.Xlsx);
            const blob = new Blob([outputData]);
            const downloadLink = document.getElementById('downloadLink');
            downloadLink.href = URL.createObjectURL(blob);
            downloadLink.download = 'outputFilterDefinedNamesWhileLoadingWorkbook.xlsx';
            downloadLink.style.display = 'block';
            downloadLink.textContent = 'Download Modified Excel File';

            resultDiv.innerHTML = '<p style="color: green;">FilterDefinedNamesWhileLoadingWorkbook executed successfully. Click the download link to get the modified file.</p>';
        });
    </script>
</html>