Формат таблицы в xlwings - PullRequest
0 голосов
/ 31 мая 2018

Как отформатировать таблицу в xlwings ?Например, если я хочу добавить стиль Excel «Light Blue, Table Style Light 2» к объекту Range из xlwings.

Так как его нет в документации по xlwings, я считаю, что это будет выглядеть примерно такэто (после подключения к wb и всем остальному):

xw.Range('A1').api. #Something goes here

В качестве дополнительного вопроса, как узнать, какие у вас есть варианты после захвата объекта api?Единственные места, где я видел это, - это другие вопросы SO и здесь , что, по сути, просто компиляция ответов SO на такие вопросы.

(Таким образом, у нас нетпродолжать беспокоить тебя, Феликс;))

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

выполнение sheet.range('D1').select() первым поможет вам перейти от A1 к другой ячейке (например, с помощью мыши), чтобы вы могли поставить свой стол куда угодно, а не только A1

0 голосов
/ 07 июня 2018

Я нашел решение.Поделиться с сообществом на тот случай, если кто-то заинтересован в том же.Решение основано на вопросе, заданном и отвеченном им самим здесь .

import xlwings as xw

wb = xw.('filename.xlsx')            # Initialize a WorkBook
sht = wb.sheets['sheet_name']        # Grab the desired Sheet
tbl = sht.api.ListObjects.add()      # Adds table to Excel (returning a Table)
tbl.TableStyle = "TableStyleMedium5" # Set table styling

ПРИМЕЧАНИЕ. Странная часть этого заключается в том, что в этом случае таблица начинается с того места, где был курсор в документе Excel.(в прошлый раз вы сохранили его, пока открыты? Не уверены в этом).Мне не повезло, пытаясь изменить расположение курсора через Python.Так что, если кто-нибудь выяснит, как это сделать, мне определенно будет интересно.Например, если вы не можете изменить местоположение курсора, вы не сможете использовать мое решение для создания двух отдельных таблиц на одном листе.

«Обходной путь» (AKA hack): я решил сохранить данные с листа, удалите и переделайте лист и верните данные обратно.На новых листах ваш курсор автоматически помещается в A1, поэтому вызов вышеуказанного кода после перемещения курсора таким образом приведет к тому, что A1 (и окружающие ячейки) попадут в таблицу, а это то, что мне нужно.

...