2015-05-12 4 views
1

Я использую openpyxl в первый раз. Я должен прочитать файл excel, а затем после манипуляции заполнить результат на трех разных листах excel -> sheet_T, sheet_D и sheet_U. Я создал три листа с использованием openpyxl следующим образом-Openpyxl - как заполнять данные на конкретном листе

sheet_T = filename2.create_sheet(0) 
sheet_T.title = "Target First" 
sheet_D = filename2.create_sheet(1) 
sheet_D.title = "Distractor First" 
sheet_U = filename2.create_sheet(2) 
sheet_U.title = "Unclassified" 

Я использовал xlwt, чтобы сделать это, но существует ограничение 256 столбцов. Следовательно, я использовал openpyxl. Нижеприведенный код написан с использованием xlwt-

sheet_T.write(row_first, col_target, Name_Target) 
sheet_D.write(row_first, col_target, Name_Target) 
sheet_U.write(row_first, col_target, Name_Target) 

Как написать то же самое, используя openpyxl? Вся документация, которую я читаю, заключается в том, как писать на определенной ячейке, а не в листе.

Большое спасибо за помощь!

ответ

0

Вам нужно создать еще один лист:

from openpyxl.workbook import Workbook 
from openpyxl.writer.excel import ExcelWriter 

wb = Workbook() 
ws0 = wb.worksheets[0] 
ws0.title = 'My Sheet 1' 
ws1 = wb.create_sheet() 
ws1.title = 'My Sheet 2' 
ws2 = wb.create_sheet() 
ws2.title = 'My Sheet 3' 

Теперь вы можете писать на разных листах:

cell_ws0_a1 = ws0.cell('A1') 
cell_ws0_a1.value = 'Wrote to cell in 1st sheet.' 

cell_ws1_a1 = ws1.cell('A1') 
cell_ws1_a1.value = 'Wrote to cell in 2nd sheet.' 

cell_ws2_a1 = ws2.cell('A1') 
cell_ws2_a1.value = 'Wrote to cell in 3rd sheet.' 

writer = ExcelWriter(workbook=wb) 
writer.save('example.xlsx') 

Существует только один лист в книге по умолчанию. wb.create_sheet() создает второй лист.

+0

Я не думаю, что мне нужно создать лист. У меня есть файл excel, там должны быть созданы три листа. В зависимости от критериев данные должны быть записаны либо на любом листе – prj

+0

. Вы создаете новый файл Excel с вашим выходом, правильно? По умолчанию 'openpyxl' создает только один лист. Вы попробовали мой ответ? –

+0

Спасибо, Майк, за вашу помощь. Я получаю сообщение об ошибке при извлечении данных из листа excel. wb = load_workbook (имя_файла, use_iterators = True) sheet = wb.get_sheet_by_name ('Sheet1') print 'Value =', sheet.cell (row = 1, column = 1) .value – prj

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