반응형
xlrd 및 xlwt로 기존 Excel 워크북 및 시트 편집
다음에 대한 설명서에서xlrd
그리고.xlwt
저는 다음을 배웠습니다.
기존 워크북/시트에서 읽는 방법:
from xlrd import open_workbook
wb = open_workbook("ex.xls")
s = wb.sheet_by_index(0)
print s.cell(0,0).value
#Prints contents of cell at location a1 in the first sheet in the document called ex.xls
새 워크북/시트를 만드는 방법:
from xlwt import Workbook
wb = Workbook()
Sheet1 = wb.add_sheet('Sheet1')
Sheet1.write(0,0,'Hello')
wb.save('ex.xls')
#Creates a document called ex.xls with a worksheet called "Sheet1" and writes "Hello" to the cell located at a1
제가 지금 하고 싶은 것은 기존 워크북에서 기존 워크시트를 열고 해당 시트에 쓰는 것입니다.
저는 다음과 같은 것을 시도했습니다.
from xlwt import open_workbook
wb = open_workbook("ex.xls")
s = wb.sheet_by_index(0)
print s.cell(0,0).value
그렇지만open_workbook
의 일부일 뿐입니다.xlrd
모듈, 아님xlwt
.
아이디어 있어요?
Edit1: 올리버스의 제안 후에 알아봤습니다.xlutils
그리고 다음을 시도했습니다.
from xlrd import open_workbook
from xlwt import Workbook
from xlutils.copy import copy
wb = open_workbook("names.xls")
s = wb.get_sheet(0)
s.write(0,0,'A1')
wb.save('names.xls')
그러나 이 경우 다음 오류 메시지가 표시됩니다.
File "C:\Python27\lib\site-packages\xlrd\book.py", line 655, in get_sheet
raise XLRDError("Can't load sheets after releasing resources.")
xlrd.biffh.XLRDError: Can't load sheets after releasing resources.
편집 2: 오류 메시지는 부적절한 사용으로 인해 발생했습니다.get_sheet
기능.드디어 사용 방법을 알게 되었습니다.
from xlrd import open_workbook
from xlwt import Workbook
from xlutils.copy import copy
rb = open_workbook("names.xls")
wb = copy(rb)
s = wb.get_sheet(0)
s.write(0,0,'A1')
wb.save('names.xls')
제가 op의 편집에서 썼듯이, 기존 엑셀 문서를 편집하려면, 당신은 다음을 사용해야 합니다.xlutils
모듈(Thanks Oliver)
올바른 방법은 다음과 같습니다.
#xlrd, xlutils and xlwt modules need to be installed.
#Can be done via pip install <module>
from xlrd import open_workbook
from xlutils.copy import copy
rb = open_workbook("names.xls")
wb = copy(rb)
s = wb.get_sheet(0)
s.write(0,0,'A1')
wb.save('names.xls')
이렇게 하면 "names.xls"의 첫 번째 시트에서 a1에 위치한 셀 내용이 "a1" 텍스트로 바뀐 다음 문서를 저장합니다.
다음은 위의 코드를 사용하는 다른 방법입니다.openpyxl
xlsx와 호환되는 모듈입니다.제가 지금까지 본 바로는, 그것도 계속 포맷됩니다.
from openpyxl import load_workbook
wb = load_workbook('names.xlsx')
ws = wb['SheetName']
ws['A1'] = 'A1'
wb.save('names.xlsx')
언급URL : https://stackoverflow.com/questions/26957831/edit-existing-excel-workbooks-and-sheets-with-xlrd-and-xlwt
반응형
'source' 카테고리의 다른 글
아키텍처 암64에 대한 정의되지 않은 기호 (0) | 2023.04.27 |
---|---|
Angular 2+ - 기본 href를 동적으로 설정합니다. (0) | 2023.04.27 |
Linkq 목록에서 존재하는 개체 선택(A,B,C) (0) | 2023.04.27 |
빠른 출발방법으로? (0) | 2023.04.27 |
asp.net mvc 보기에서 문자열을 html로 표시 (0) | 2023.04.27 |