Я пытаюсь просмотреть рабочие листы в файле Excel и получить строки таблицы данных с каждого листа в Power Automate.
Я пробую это в своем сценарии, но мне нужно:
function main(workbook: ExcelScript.Workbook) {
let ws = workbook.getWorksheet("Sheet1");
let tables = ws.getTables();
tables.forEach((table) => {
return(table);
}
}
Однако это не работает, и я не знаю, как это сделать.
На каждом листе файла Excel есть одна таблица данных, и мне нужно пройтись по листам и вернуть строки таблицы, добавив их все в один главный массив, который возвращается в Power Automate.
Заранее спасибо за любую помощь по этому поводу
У них есть метод getWorksheets:
function main(workbook: ExcelScript.Workbook) {
let sheets = workbook.getWorksheets();
sheets.forEach((sheet) => {
let tables = sheet.getTables();
if (tables.length > 0) {
// Get the first table in the worksheet
let firstTable = tables[0];
let tableRange = firstTable.getRange();
let tableData = tableRange.getValues();
// Log the table data (you can modify this to do whatever you want with the data)
console.info(`First table data of worksheet '${sheet.getName()}': `, tableData);
} else {
console.info(`No tables found in worksheet '${sheet.getName()}'`);
}
});
}
Дополнительную информацию о доступе к данным таблицы можно найти здесь: https://learn.microsoft.com/en-us/javascript/api/office-scripts/excelscript/excelscript.table?view=office-scripts
Привет, спасибо, моя проблема не в получении имен рабочих листов, а в получении строк таблицы данных с каждого листа, что я не могу сделать
Обновив приведенный выше код, вы можете просто перебирать листы и использовать интерфейс таблицы для доступа к нужным значениям.
Хорошо, похоже, это работает. Знаете ли вы, как я могу вернуть это в Power Automate, а не вести журнал консоли? Спасибо, это тоже хорошо :)
В каком формате вы хотите, чтобы строки были? Массив объектов или двумерный массив? У вас есть пример желаемой структуры возврата?