기존 통합 문서를 열 수 있지만 해당 통합 문서 내에서 기존 워크 시트를 열 수있는 방법이 없습니다. 이 일을 할 수있는 방법이 있습니까?xlsxwriter : 내 통합 문서에 기존 워크 시트를 여는 방법이 있습니까?
답변
xlsxwriter
으로 기존 xlsx 파일에 추가 할 수 없습니다.
기존의 엑셀 파일을 읽고 쓸 수있는 openpyxl 모듈이 있지만, 그렇게하는 방법은 모든 정보를 어떻게 든 저장하는 (데이터베이스 또는 배열), 엑셀 파일을 읽는 것과 관련이 있습니다. workbook.close()
으로 전화를 걸면 모든 정보를 xlsx 파일에 씁니다.
마찬가지로, xlsx 문서에 "추가"하는 방법을 사용할 수 있습니다. 저는 최근에 xlsx 파일을 추가해야했습니다. 왜냐하면 GPS 데이터가 메인 워크 시트에 들어오는 여러 가지 테스트가 있었기 때문에 xlsx 파일을 추가해야했기 때문에 테스트가 시작될 때마다 새 시트를 추가해야했습니다. 내가 openpyxl없이이 문제를 얻을 수있는 유일한 방법은 ... xlrd와 엑셀 파일을 읽고 다음 행과 열을 통해 실행하는 것이 었습니다
즉cells = []
for row in range(sheet.nrows):
cells.append([])
for col in range(sheet.ncols):
cells[row].append(workbook.cell(row, col).value)
당신은하지만, 배열이 필요하지 않습니다. 예를 들어, 이것은 완벽하게 잘 작동 그러나
import xlrd
import xlsxwriter
from os.path import expanduser
home = expanduser("~")
# this writes test data to an excel file
wb = xlsxwriter.Workbook("{}/Desktop/test.xlsx".format(home))
sheet1 = wb.add_worksheet()
for row in range(10):
for col in range(20):
sheet1.write(row, col, "test ({}, {})".format(row, col))
wb.close()
# open the file for reading
wbRD = xlrd.open_workbook("{}/Desktop/test.xlsx".format(home))
sheets = wbRD.sheets()
# open the same file for writing (just don't write yet)
wb = xlsxwriter.Workbook("{}/Desktop/test.xlsx".format(home))
# run through the sheets and store sheets in workbook
# this still doesn't write to the file yet
for sheet in sheets: # write data from old file
newSheet = wb.add_worksheet(sheet.name)
for row in range(sheet.nrows):
for col in range(sheet.ncols):
newSheet.write(row, col, sheet.cell(row, col).value)
for row in range(10, 20): # write NEW data
for col in range(20):
newSheet.write(row, col, "test ({}, {})".format(row, col))
wb.close() # THIS writes
, I는 그것이 I 데이터를 조작 되었기 때문에, 데이터를 판독하는 2 차원 배열로 저장하기 쉬운 것을 발견하고 또 다시 입력을 수신하고, 테스트가 끝날 때까지 Excel 파일에 쓰고 싶지 않았습니다. xlsxwriter와 마찬가지로 쉽게 할 수 있습니다. 어쨌든 .close()
에 전화하기 전까지는 xlsxwriter와 마찬가지로 쉽게 할 수 있습니다.
정말 같으면 참조 "매우 복잡한 구조"라고 말하지 않습니다. 이 구조는 각 시트가 셀 내용이있는 XML 파일 인 시트의 zipfile 아카이브 일뿐입니다. XlsxWriter는 ** writer **가되기 위해 액세스, 읽기 및 편집하기가 쉽습니다. ** 독자가 아니 **. –
@AlexanderHuszagh 감사합니다! – dylnmc
굉장한데, 지금은 훌륭한 대답입니다. +1. –
[xlsxwriter] (https://pypi.python.org/pypi/XlsxWriter) 라이브러리는 Excel 파일을 작성하기위한 것으로서 읽을 수 없습니다. – alecxe
이 http://stackoverflow.com/questions/18849535/how-to-write-update-data-into-cells-of-existing-xlsx-workbook-using-xlsxwriter-i – shellbye