2013-12-19 2 views
4

В VBA можно назначить массив диапазон ячеек, так что каждая ячейка в диапазоне получает соответствующее значение из массива:Присвоить несколько значений в диапазоне

Range("A1:D1").Value = Array(1, 2, 3, 4) 

Я пытался сделать то же самое с openpyxl:

import openpyxl 

wb = openpyxl.Workbook() 
ws = wb.worksheets[0] 
ws.range['A1:D1'].value = [1, 2, 3, 4] 

но без успеха.

Есть ли способ сделать назначение диапазона с помощью openpyxl без повторения каждой ячейки?

ответ

2

Нет, это не возможно, диапазон в openpyxl просто диапазон ячеек, но зацикливание достаточно легко (openpyxl 1.8 синтаксис)

for v,c in zip([1, 2, 3, 4], ws['A1':'D1']): 
    c.value = v 
+0

Это еще предлагаемый синтаксис (с использованием 2,3-2,4)? –

+0

Да: 1.8 введена возможность использования среза для получения диапазона ячеек. Метод «range» был устаревшим. –

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