Преобразование текста в столбцы с помощью Aspose.Cells for JavaScript через C++

Возможные сценарии использования

Вы можете преобразовать ваш текст в столбцы с помощью Microsoft Excel. Эта функция доступна в разделе Инструменты данных на вкладке Данные. Чтобы разделить содержимое столбца на несколько столбцов, данные должны содержать определённый разделитель, такой как запятая (или другой символ), на основании которого Microsoft Excel разделяет содержимое ячейки на несколько ячеек. Aspose.Cells for JavaScript через C++ также включает эту функцию через Cells.textToColumns(number, number, number, TxtLoadOptions).

Преобразование текста в столбцы с помощью Aspose.Cells for JavaScript через C++

Следующий пример кода объясняет использование метода Cells.textToColumns(number, number, number, TxtLoadOptions). Сначала в столбец А первого листа добавляются имена людей — имя и фамилия разделены пробелом. Затем применяется метод Cells.textToColumns(number, number, number, TxtLoadOptions) к столбцу А и сохраняется как файл Excel с результатом. Если открыть выходной файл Excel, вы увидите, что имена находятся в столбце А, а фамилии — в столбце В, как на этом скриншоте.

todo:image_alt_text

Образец кода

<!DOCTYPE html>
<html>
    <head>
        <title>Aspose.Cells Example</title>
    </head>
    <body>
        <h1>Text to Columns Example</h1>
        <p>Select an optional Excel file to start from, or leave empty to create a new workbook.</p>
        <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, TxtLoadOptions, 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');

            // Basic validation only: file is optional
            let workbook;
            if (fileInput.files && fileInput.files.length) {
                const file = fileInput.files[0];
                const arrayBuffer = await file.arrayBuffer();
                workbook = new Workbook(new Uint8Array(arrayBuffer));
            } else {
                // Create a new workbook if no file is provided
                workbook = new Workbook();
            }

            // Access first worksheet.
            const ws = workbook.worksheets.get(0);

            // Add people name in column A. First name and last name are separated by space.
            ws.cells.get("A1").value = "John Teal";
            ws.cells.get("A2").value = "Peter Graham";
            ws.cells.get("A3").value = "Brady Cortez";
            ws.cells.get("A4").value = "Mack Nick";
            ws.cells.get("A5").value = "Hsu Lee";

            // Create text load options with space as separator.
            const opts = new TxtLoadOptions();
            opts.separator = ' ';

            // Split the column A into two columns using TextToColumns() method.
            // Now column A will have first name and column B will have second name.
            ws.cells.textToColumns(0, 0, 5, opts);

            // 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 = 'outputTextToColumns.xlsx';
            downloadLink.style.display = 'block';
            downloadLink.textContent = 'Download Modified Excel File';

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