2014-10-12 3 views
3

약 5 개의 워크 시트가있는 새로운 Excel 통합 문서를 작성하고 작성해야합니다. 내 코드의 목적은 데이터베이스를 읽고이를 특정 기준에 따라 다른 시트로 분할하는 것입니다. 내가 사용 파이썬 2.7에서 다음 코드를 사용했다openpyxl을 사용하여 한 장의 통합 문서에 두 장을 동시에 쓰는 방법

openpyxl-1.1.0

from openpyxl.workbook import Workbook 
dest_filename = 'D:\\Splitted.xlsx' 

wb = Workbook() 
ws1 = wb.worksheets[0] 
ws1.title = 'Criterion1' 

ws2 = wb.worksheets[1] 
ws2.title = 'Criterion2' 

## Read Database, get criterion 
if criterion == Criterion1: 
    ws1.cell('A1').value = 'A1' 
    ws1.cell('B1').value = 'B1' 
elif criterion == Criterion2: 
    ws2.cell('A1').value = 'A2' 
    ws2.cell('B1').value = 'B2' 

wb.save(filename = dest_filename) 

내가 한 장을 쓸 수 있어요,하지만 난 두번째 워크 시트를 만들려고하면, 내가 "라는 오류를 얻고있다 인덱스 범위 초과 "코드 ws2 = wb.worksheets [1]

하나의 통합 문서에 두 개 이상의 워크 시트를 동시에 작성하는 솔루션이 있습니까?

답변

4

색인으로 워크 시트에 액세스하지 마십시오. 두 번째 워크 시트가 만들어지지 않았기 때문에 오류가 발생합니다 (모든 통합 문서에는 자동으로 만들어진 단일 워크 시트가 있음).

ws1 = wb.active 
ws2 = wb.create_sheet() 

문제를 해결해야합니다.

+0

예 이제 작동합니다. 고마워요 찰리 :) – Mallikarjun

관련 문제