Формула Google Sheets для определения курсива текста в ячейке - PullRequest
0 голосов
/ 22 января 2019

Возможно ли в Google Sheets запустить формулу, чтобы определить, является ли текст в ячейке курсив ?

Что-то вроде isItalic(a1), которое вернуло бы TRUE / FALSE, чтобы можно было отфильтровать столбец?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Вы также можете сделать что-то вроде следующего в Google Sheets.

Метод .getFontStyle () может быть тем, что вы ищете.

var ID = 'yourDocumentID';
var name = 'nameOfYourSheet';

function myFunction() {
  
    var sourceSheet = SpreadsheetApp.openById(ID); // Selects your Source Spreadsheet by its ID
    var ssheet = sourceSheet.getSheetByName(name); // Selects your Source Sheet by its Name
    var range = ssheet.getRange(6, 10) // Selects J6 (just as an example)
   
    var fontStyle = range.getFontStyle(); // Tells you the font style
    ssheet.getRange(1,1).setValue(fontStyle); // writes the font style into A1

   var returnBoolean = range.getFontStyle() === 'italic' ? true : false; // checks if getFontStyle is true or false
ssheet.getRange(2,1).setValue(returnBoolean); // writes the boolean into A2 
}

Ссылку на документы можно найти здесь .

0 голосов
/ 22 января 2019

=CHECKSTYLE(A1, "italic")

function CHECKSTYLE(range, styleElement) {
    var arr = [],
        ret;
    var styleEl = ["line-through", "underline", "italic", "bold"]
    var range = SpreadsheetApp.getActiveSheet()
        .getRange(range);
    var styles;
    if (styleEl.indexOf(styleElement) == 2) {
        styles = range.getFontStyles()
    } else if (styleEl.indexOf(styleElement) == 3) {
        styles = range.getFontWeights()
    } else if (styleEl.indexOf(styleElement) != -1) {
        styles = range.getFontLines();
    } else {
        throw "the 2nd parameter can only be " + styleEl.toString()
            .replace(",", ", ")
    }
    styles.reduce(function (a, b) {
        return a.concat(b);
    })
        .forEach(function (el) {
            el === styleElement ? arr.push(["TRUE"]) : arr.push(["FALSE"])
        });
    range.getNumRows() == 1 ? ret = transpose(arr) : ret = arr;
    return ret;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...