[PYTHON] Python에서 Openpyxl을 사용하여 기존 Excel 파일 수정
PYTHONPython에서 Openpyxl을 사용하여 기존 Excel 파일 수정
기본적으로 CSV 파일에서 특정 열을 복사하여 붙여 넣으려고합니다. 기존 엑셀 파일 [*. xlsx]에서 파이썬을 사용하여. 예를 들어, 다음과 같은 CSV 파일이 있다고 가정 해보십시오.
col_1 col_2 col_3 col_4
1 2 3 4
5 6 7 8
9 10 11 12
그래서, 나는 col_3과 col_4를 모두 복사하여 기존 엑셀 파일 [.XLSX 형식]의 col_8과 col_9에 붙여 넣기를 원했습니다. 나는 이것을 여러 가지 방법으로 시도해 보았지만 정확한 방법을 찾을 수 없었다. 나는 이런 식으로 시도 :
with open( read_x_csv, 'rb') as f:
reader = csv.reader(f)
for row in reader:
list1 = row[13]
queue1.append(list1)
list2 = row[14]
queue2.append(list2)
list3 = row[15]
queue3.append(list3)
list4 = row[16]
queue4.append(list4)
그리고
rb = open_workbook("Exact file path.....")
wb = copy(rb)
ws = wb.get_sheet(0)
row_no = 0
for item in queue1:
if(item != ""):
ii = int(item)
ws.write(row_no,12,ii)
row_no = row_no + 1
#ws.write(item)
print item
else:
ws.write(row_no,12,item)
row_no = row_no + 1
wb.save("Output.xls")
하지만이 솔루션의 문제점은 * .XLSX 형식으로 저장할 수 없다는 것입니다. 엄격히 나를 위해 필요합니다.
* .XLSX 형식을 처리 할 수있는 Openpyxl을 사용하려고했지만 기존 Excel 파일을 수정할 수있는 방법을 찾을 수 없습니다. 아무도 이것에 도움을받을 수 있습니까?
의심 : 1) CSV 파일에서 전체 열을 실제로 읽고 배열 / 목록에 저장할 수 있습니까? 파이썬 사용? 2) .XLSX 형식의 기존 Excel 파일을 수정할 수 있습니까? openpyxl 또는 다른 패키지?
해결법
-
==============================
1.다음 구현을 시도해 볼 수 있습니다.
다음 구현을 시도해 볼 수 있습니다.
from openpyxl import load_workbook import csv def update_xlsx(src, dest): #Open an xlsx for reading wb = load_workbook(filename = dest) #Get the current Active Sheet ws = wb.get_active_sheet() #You can also select a particular sheet #based on sheet name #ws = wb.get_sheet_by_name("Sheet1") #Open the csv file with open(src) as fin: #read the csv reader = csv.reader(fin) #enumerate the rows, so that you can #get the row index for the xlsx for index,row in enumerate(reader): #Assuming space separated, #Split the row to cells (column) row = row[0].split() #Access the particular cell and assign #the value from the csv row ws.cell(row=index,column=7).value = row[2] ws.cell(row=index,column=8).value = row[3] #save the csb file wb.save(dest)
-
==============================
2.
from openpyxl import load_workbook # Class to manage excel data with openpyxl. class Copy_excel: def __init__(self,src): self.wb = load_workbook(src) self.ws = self.wb.get_sheet_by_name("Sheet1") self.dest="destination.xlsx" # Write the value in the cell defined by row_dest+column_dest def write_workbook(self,row_dest,column_dest,value): c = self.ws.cell(row = row_dest, column = column_dest) c.value = value # Save excel file def save_excel(self) : self.wb.save(self.dest)
from https://stackoverflow.com/questions/13381384/modify-an-existing-excel-file-using-openpyxl-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Python을 통해 Windows 콘솔 응용 프로그램과 상호 작용 (0) | 2018.11.04 |
---|---|
[PYTHON] TFRecordReader가 매우 느리게 보이고 멀티 스레드 읽기가 작동하지 않습니다. (0) | 2018.11.03 |
[PYTHON] Matplotlib : 선택 영역을 마우스로 직사각형 모양으로 그립니다. (0) | 2018.11.03 |
[PYTHON] 어떻게 파이썬에서 @debuggable 데코레이터를 작성하겠습니까? (0) | 2018.11.03 |
[PYTHON] Windows에서 활성 Chrome 탭의 URL을 얻으려면 어떻게해야합니까? (0) | 2018.11.03 |