Google电子表格脚本 - 如何测试Cell是否大胆

Hel*_*ton 5 google-docs google-apps-script google-drive-api

我需要测试给定的电子表格单元格是否为粗体字体.到目前为止,这是我的脚本代码.

function ifBold(cell, val1, val2) {
    if(cell.getFontWeight() == 'bold')
        return val1;
    return val2;
}
Run Code Online (Sandbox Code Playgroud)

它错误,告诉我'cell'没有函数getFontWeight().我怎样才能做到这一点?

Ruc*_*t88 6

您必须将单元格作为字符串传递.ifBold("A1",1,0)

function ifBold(a1Notation, val1, val2) {
    var cell = SpreadsheetApp.getActiveSpreadsheet().getRange(a1Notation);

    if(cell.getFontWeight() == 'bold')
        return val1;
    return val2;
}
Run Code Online (Sandbox Code Playgroud)

如果传入单元格或范围而不将其作为字符串发送,则它将分别作为字符串或数组接收.它将无法作为范围对象处理.有关此问题的详细信息,请参阅以下链接:
http://code.google.com/p/google-apps-script-issues/issues/detail
?id = 354如何将单元格参数从电子表格传递到custum作为范围的功能?

编辑:
要以动态方式编写函数,需要使用内置函数ROW和COLUMN.
= ifBold(行(A1),列(A1),1,0)

function ifBold(row, column, val1, val2) {
    var range = SpreadsheetApp.getActiveSpreadsheet().getDataRange().getCell(row, column);

    if(range.getFontWeight() == 'bold')
        return val1;
    return val2;
}
Run Code Online (Sandbox Code Playgroud)