2016-07-18 2 views
0

В xlrd и xlwt для добавления строки листа в массив можно сделать:Что такое эквивалентная функция в openpyxl?

Stuff = [] 

column_count = sheet.ncols - 1 

for i in range (0, column_count): 
    Stuff.append([sheet.cell_value(row, i) for row in range(sheet.nrows)]) 

Как сделать эквивалент в openpyxl?

+0

Что вы хотите сделать? –

+0

Добавить все от одного листа до другого листа –

+0

Пожалуйста, отредактируйте этот вопрос, чтобы более четко проиллюстрировать, что вы хотите сделать. Цикл через один рабочий лист и копирование значений ячеек в другое легко сделать в openpyxl. –

ответ

2

Вы можете перемещаться по строкам листа:

stuff = [[cell.value for cell in row] for row in sheet] 

Или, если вы предпочитаете сгруппируйте его по столбцам, используйте .columns:

stuff = [[cell.value for cell in column] for column in sheet.columns] 

Столбцы свойство не доступно для чтения - только рабочие листы, поскольку данные хранятся в строках.

+0

Как бы добавить этот массив в документ excel в openpyxl? –

+0

@nickm есть метод 'sheet.append()', который может помочь вам сделать это легко. Он добавит массив значений в конец листа. Попробуйте. Благодарю. – alecxe

+1

На самом деле, листы являются непосредственно итерабельными, а openpyxl 2.4 также предоставляет свойство '.values'. 'for row in sheet' или' for row in sheet.values' –

Смежные вопросы