Gnumeric / LO Calc - как получить цвет фона ячейки? - PullRequest
2 голосов
/ 13 марта 2012

У меня есть большая электронная таблица, строки которой окрашены в соответствии с правилом, которые нельзя извлечь из доступных данных ячейки - такой информации нет.Поэтому я хочу найти цвет ячейки и присвоить ему значение.

Таблица выглядит следующим образом:

----------
data|data| <-- background colored row in red
----------
data|data| <-- background colored row in blue
----------
data|data| <-- background colored row in yellow
----------

, и я хочу создать новый столбец, который будет иметь значение в соответствии с этим цветом.
Excel / Gnumeric / LO Calc имеют функцию поиска информации под названием cell и атрибут «цвет», который, к сожалению, не возвращает полезного значения:

cell("color", A2)

возвращает 0 или 1, и это единственная функция, предлагающая функцию, аналогичную той, которая мне нужна.

Как я могу вернуть цвет фона ячейки в Gnumeric или LO Calc любым способом - через плагин или что-нибудь еще?

1 Ответ

3 голосов
/ 04 октября 2012

В LibreOffice Calc:

  1. Выберите Инструменты> Макросы> Упорядочить макросы> LibreOffice Basic>
    Мои макросы> Стандарт> Модуль 1

  2. Выберите «Main» и нажмите «Edit».

  3. Он будет содержать пустой трехстрочный шаблон:

    REM  *****  BASIC  *****
    
    Sub Main
    
    End Sub
    

    Добавьте это после шаблона:

    Function bgcolor(c,r)
      Dim oDoc  As Object   ' define variables
      Dim oSheet As Object
      Dim oCell As Object
      oDoc  = ThisComponent
      oSheet= oDoc.getSheets().getByIndex(0)
      oCell = oSheet.getCellByPosition(c-1,r-1)
      bgcolor = oCell.CellBackColor
    End Function
    

    Вы должны увидеть нечто похожее на это в редакторе:

    BGColor Macro in LibreOffice Calc

  4. Закройте органайзер, и теперь вы можете использовать эту функцию, как и любую другую функцию:

Примеры:

bgcolor(3,1)
bgcolor(3, CELL("Row",A1))
bgcolor(CELL("COL", A1), CELL("ROW", A1))
...