function suggestHeader()

in excel-addin/src/taskpane/taskpane.js [338:368]


function suggestHeader() {
    var topic = try_fetch_topic();
    if (topic === null) {
        showToast("Please specify a topic (or click \"Generate a Random Topic\")")
        return;
    }
    showToast(`Suggesting headers for ${topic}`);
    Excel.run(async function (context) {
        var sheet = context.workbook.worksheets.getActiveWorksheet();
        var range = context.workbook.getSelectedRange();
        range.load("values,rowIndex,columnIndex,rowCount,columnCount");
        await context.sync();

        range.numberFormat = "@";
        const boldProps = {
            format: {
                font: {
                    bold: true
                }
            }
        };
        range.set(boldProps);

        // TODO check length == 1
        const fields = range.values;
        var fields_obj = await suggest_fields({topic: topic, fields: fields[0].filter(x => String(x).length)});
        var result_fields = _merge_field_suggestions(fields_obj, fields[0].length);
        sheet.getRangeByIndexes(range.rowIndex, range.columnIndex, 1, result_fields.length).values = [result_fields];
        return context.sync();
    }).catch(errorHandlerFunction);
}