0

複数のテーブルから特定の列を名前で取得する方法を探しています。私のデータは、最大 38 列までの異なる列数の複数のシートに含まれているため、使用できませんgetColumnById。これから7列だけが必要です。

最初にすべてのシート範囲をテーブルに変換してから、すべてのテーブルを取得しています。私が望むのは、特定の列を名前で取得し、すべてを新しいシートの 1 つのテーブルにマージすることです。

Docs の例に従いましたが、各テーブルの列名を取得することに行き詰まっています。

以下の例に示すように、ヘッダーの値を知っています。

function main(workbook: ExcelScript.Workbook) {
    let sheets = workbook.getWorksheets();
    for (let sheet of sheets) {
        sheet.getTables()[0].convertToRange();
        sheet.addTable(sheet.getRange('A1').getUsedRange().getAddress(),true)
    }
    workbook.getWorksheet('Combined')?.delete();
    const newSheet = workbook.addWorksheet('Combined');
    const tables = workbook.getTables();
    const headerValues = [['Column1', 'Column6', 'Column8', 'Column9','Column11', 'Column16', 'Column18', 'Column19']];
    const targetRange = newSheet.getRange('A1').getResizedRange(headerValues.length - 1, headerValues[0].length - 1);
    targetRange.setValues(headerValues);
    const combinedTable = newSheet.addTable(targetRange.getAddress(), true);
    for (let table of tables) {
        let dataValues = table.getColumnByName( // this where am stuck //).getRangeBetweenHeaderAndTotal().getTexts();
        let rowCount = table.getRowCount();

        // If the table is not empty, add its rows to the combined table.
        if (rowCount > 0) {
            combinedTable.addRows(-1, dataValues);
        }
    }

}

ご協力いただきありがとうございます。ジョージ

4

1 に答える 1