Исправь ошибку, которая по всей видимости возникает при попытке задать имя листа, которое длиньше. Из-за этой ошибки не происходит дальнеешая обработка документа,например перекраска. Вот ошибка:
Работаем с файлом preparation_docs\Страницы без уникальных изображений.xlsx
Worksheet name Страницы без уникальных изображений exceeds 31 chars. This will be truncated
Error: Worksheet name already exists: Страницы без уникальных изображ
    at set name [as name] (C:\Projects\SEO\Seo Report Generator\node_modules\exceljs\lib\doc\worksheet.js:170:13)
    at file:///C:/Projects/SEO/Seo%20Report%20Generator/work_with_docs/modifyExcel.js:75:32
    at runNextTicks (node:internal/process/task_queues:60:5)
    at process.processImmediate (node:internal/timers:449:9)
Worksheet name Страницы без уникальных изображений exceeds 31 chars. This will be truncated


Вот код для обработки:
import ExcelJS from "exceljs";
import XLSX from "xlsx";
import fs from "fs";
import path from "path";
import config from "./config.js"; 
import renameMappings from "./renameMappings.js";



// Функция для конвертации .xls в ExcelJS workbook с динамическим названием листа
const convertXlsToExcelJSWorkbook = async (inputPath, sheetName) => {
    const workbookXLS = XLSX.readFile(inputPath);
    const worksheetXLS = workbookXLS.Sheets[workbookXLS.SheetNames[0]];
    const worksheetData = XLSX.utils.sheet_to_json(worksheetXLS, { header: 1 });

    const exceljsWorkbook = new ExcelJS.Workbook();
    const worksheet = exceljsWorkbook.addWorksheet(sheetName); // Название листа будет таким же, как и название файла

    worksheetData.forEach((row, rowIndex) => {
        const newRow = worksheet.addRow(row);
        if (rowIndex === 0) {
            newRow.font = { bold: true };
        }
    });

    return exceljsWorkbook;
};

// Функция для удаления указанных столбцов
const removeColumns = (worksheet, columnsToRemove) => {
    const headerRow = worksheet.getRow(1);
    const columnsToDeleteIndices = [];

    headerRow.eachCell((cell, colNumber) => {
        if (columnsToRemove.includes(cell.value)) {
            columnsToDeleteIndices.push(colNumber);
        }
    });

    columnsToDeleteIndices.sort((a, b) => b - a).forEach(colNumber => {
        worksheet.spliceColumns(colNumber, 1);
    });
};

// Функция для заливки первой строки голубым цветом
const fillHeaderRow = (worksheet) => {
    const headerRow = worksheet.getRow(1);
    headerRow.eachCell((cell) => {
        cell.fill = {
            type: "pattern",
            pattern: "solid",
            fgColor: { argb: "ADD8E6" },
        };
        cell.font = { bold: true };
    });
};

// Основная функция для обработки файла
const processExcelFiles = async () => {
    const pLimit = (await import("p-limit")).default; // Динамический импорт p-limit
    const limit = pLimit(config.maxConcurrentTasks); // Регулируем это число для настройки многопоточности

    const tasks = renameMappings.map(mapping =>
        limit(async () => {
            const inputFilePathXls = path.join(config.directoryPath, `${mapping.newName}.xls`);
            const inputFilePathXlsx = path.join(config.directoryPath, `${mapping.newName}.xlsx`);
            const sheetName = mapping.newName; // Название листа = название файла

            // Если файл в формате .xlsx существует
            if (fs.existsSync(inputFilePathXlsx)) {
                console.log(`Работаем с файлом ${inputFilePathXlsx}`);
                const workbook = new ExcelJS.Workbook();
                await workbook.xlsx.readFile(inputFilePathXlsx);
                const worksheet = workbook.getWorksheet(1);
                worksheet.name = sheetName; // Переименовываем лист

                // Удаляем столбцы, если они указаны
                if (mapping.columns && mapping.columns.length > 0) {
                    removeColumns(worksheet, mapping.columns);
                }
                
                fillHeaderRow(worksheet);
                await workbook.xlsx.writeFile(inputFilePathXlsx);
                console.log(`Файл ${inputFilePathXlsx} обработан: заголовок окрашен.`);
            }

            // Если файл в формате .xls существует
            else if (fs.existsSync(inputFilePathXls)) {
                console.log(`Работаем с файлом ${inputFilePathXls}`);
                const workbook = await convertXlsToExcelJSWorkbook(inputFilePathXls, sheetName);
                const worksheet = workbook.getWorksheet(1);

                // Удаляем столбцы, если они указаны
                if (mapping.columns && mapping.columns.length > 0) {
                    removeColumns(worksheet, mapping.columns);
                }

                fillHeaderRow(worksheet);
                const outputFilePath = inputFilePathXls.replace(".xls", ".xlsx");
                await workbook.xlsx.writeFile(outputFilePath);

                // Удаляем исходный .xls файл
                fs.unlinkSync(inputFilePathXls);
                console.log(`Файл ${outputFilePath} сохранён, исходный .xls файл удалён.`);
            } else {
                console.log(`Файл ${mapping.newName} не найден.`);
            }
        })
    );

    // Запуск всех задач с использованием ограниченной многозадачности
    await Promise.all(tasks);
};

// Запускаем обработку
processExcelFiles().catch(err => console.error(err));