function mergeFlagsAndInsert(flagCodes, direction = "horizontal", spacing = 10) {
if (!flagCodes) throw new Error("Укажите коды стран через запятую");
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getActiveCell(); // Получаем активную ячейку
// Преобразуем входные данные
var codes = flagCodes.toString().split(',').map(code => code.trim().toUpperCase());
direction = direction.toString().toLowerCase();
spacing = parseInt(spacing) || 0;
// 1. Скачиваем флаги в память
var imageBlobs = codes.map(function(code) {
var url = "https://flagsapi.com/" + code + "/flat/64.png";
return UrlFetchApp.fetch(url).getBlob();
});
// 2. Подготавливаем запрос к ConvertAPI
var apiUrl = "https://v2.convertapi.com/convert/images/to/join";
var apiKey = "token"; // Замените на ваш реальный API-ключ ConvertAPI
var payload = {
"StoreFile": true, // Сохраняем результат на сервере ConvertAPI
"JoinDirection": direction // Склеиваем изображения горизонтально
};
// Добавляем файлы в запрос
imageBlobs.forEach(function(blob, index) {
payload["Files[" + index + "]"] = blob;
});
var options = {
"method": "post",
"headers": {
"Authorization": "Bearer " + apiKey
},
"payload": payload
};
// 3. Отправляем запрос
var response = UrlFetchApp.fetch(apiUrl, options);
var result = JSON.parse(response.getContentText());
// 4. Получаем URL объединенного изображения
var mergedImageUrl = result.Files[0].Url;
// 5. Вставляем URL изображения в активную ячейку
cell.setFormula('=IMAGE("' + mergedImageUrl + '")');
}
// Добавляем пользовательское меню
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Флаги')
.addItem('Склеить флаги', 'promptForFlags')
.addToUi();
}
// Функция для ввода кодов стран
function promptForFlags() {
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Введите коды стран через запятую', 'Пример: RU,BY,US', ui.ButtonSet.OK_CANCEL);
if (response.getSelectedButton() == ui.Button.OK) {
var codes = response.getResponseText();
mergeFlagsAndInsert(codes);
}
}
if img:
print(f"Сохраняю изображение в {output_file}")
img.save(output_file)
print(f"Изображение успешно сохранено в {output_file}")
output_file
лежит путь до xlsx, что приводит к: >>> Ошибка при работе с листом: unknown file extension: .xlsx
img.save(output_file+'.png')
>>> Изображение успешно сохранено в LaserCut_price.xlsx
Строка исходная от автора вопроса. Почему и для чего он так писал - спросите у него.
. *
- span плюс возможные пробелы - вероятно ему нужно.У него не работало его выражение так как ему надо - я поправил чтобы работало. Не вижу смысла переписывать или вторгаться в понятную ему логику.