В пандах к столбцам Excel можно получить доступ, используя имена, которые назначаются в первой строке листа. Как этого можно добиться в xlwings?
Доступ к столбцам Excel по именам в xlwings
Ответы (2)
Вы можете использовать Pandas в качестве конвертера начиная с xlwings 0.7.0. для примера книги, как это:
A B C
1 4 7
2 5 8
3 6 9
Этот код прочитает таблицу и позволит вам получить доступ к данным через заголовки столбцов. Ключ — бит .options(pd.DataFrame, index=False)
. Этот конкретный вызов вернет Pandas DataFrame с индексом по умолчанию.
Подробнее о конвертерах xlwings здесь.
import xlwings as xw
import pandas as pd
def calc():
# Create a reference to the calling Excel xw.Workbook
wb = xw.Workbook.caller()
table = xw.Range('A1').table.options(pd.DataFrame, index=False).value
# Access columns as attributes of the Pandas DataFrame
print table.A
print table.B
# Access columns as column labels of the Pandas DataFrame
print table['A']
print table['B']
if __name__ == '__main__':
path = "test.xlsm"
xw.Workbook.set_mock_caller(path)
calc()
person
schoolie
schedule
28.04.2016
Вы можете использовать квадратные скобки для доступа к столбцам, как предлагается здесь< /а>:
import xlwings as xw
wb = xw.Workbook.active()
xw.Range('TableName[ColumnName]').value
person
tobspr
schedule
28.04.2016
Что вы подразумеваете под «TableName», потому что все, что у меня есть, это один лист Excel с первой строкой, заполненной именами столбцов.
- person Amani; 28.04.2016