2016-08-26 8 views
4

Я знаю, как выбрать диапазон ячеек в Openpyxl:Python Openpyxl, копировать и вставлять диапазон ячеек

cell_range = sheet['A1':'C3'] 

Как я могу вставить CELL_RANGE выше другого диапазона, как sheet['A11':'C13']?

+0

AFAIK Вы не можете копировать определенные ячейки, но я мог ошибаться. Я думаю, что можно скопировать весь рабочий лист. – Harrison

ответ

2

Я не думаю, что есть нотация для резки, как описано в вашем примере, главным образом потому, что openpyxl использует списки Cell s, а не списки простых значений.

Вот основной поток, который я бы использовал, чтобы захватить только часть листа.

>>> wb = openpyxl.load_workbook(file_name) 
>>> sheet = wb.worksheets[0] 
>>> rows = sheet.rows[1:3]          # slice rows 
>>> foobar = [cell.value for row in rows for cell in row[3:10]] # slice row 

EDIT: От this question это выглядит, как вы можете сделать что-то вроде этого:

foo = [row[start_col:end_col] for row in sheet.rows[start_row:end_row]] 

который даст вам список списков клеток. Не забудьте использовать foo[i][j].value, чтобы получить содержимое cell.

0

Для некоторых идей вы можете посмотреть на this snippet. Обратите внимание, что это полностью не поддерживается.

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