1. openpyxl 라이브러리 설치 (pip install openpyxl)
2. 작성 코드 실행

from openpyxl import Workbook

#result는 worksheet명 series
result = df_temp['page'].value_counts()

#column_names는 컬럼명
column_names = [table_index[0][0], table_index[1][0], table_index[2][0], table_index[3][0], table_index[4][0], table_index[5][0], table_index[6][0]]

write_wb = Workbook() 
for i in result.index:
	write_wb.create_sheet(i)
    write_ws = write_wb[i]
    for seq, name in enumerate(column_names):
    	write_ws.cell(row=1, column=seq+1, value=name)
    sql_contents = "select * from pythondb.appendix_table where page ='{}' and item_value <> ''".format(i)
    conn = pymysql.connect(host='', users='root', password='', db='pythondb', charset='utf8')
    cur = conn.cursor()
    cur.execute(sql_contents)
    contents = cur.fetchall()
    row_num = 2
    for n, rows in enumerate(contents):
    	for seq, value in enumerate(rows):
        	write_ws.cell(row=row_num+n, column=seq+1, value=value)
write_wb.remove_sheet(write_wb['Sheet'])

3. 읽는 코드

from openpyxl import load_workbook 

# data_only=True로 해줘야 수식이 아닌 값으로 받아온다. 
load_wb = load_workbook("읽은 엑셀 파일 경로", data_only=True) 

# 시트 이름으로 불러오기 
load_ws = load_wb['Sheet1'] 

# 셀 주소로 값 출력 
print(load_ws['B2'].value) 

# 셀 좌표로 값 출력 
print(load_ws.cell(3, 2).value) 

# 지정한 셀의 값 출력 
get_cells = load_ws['B3' : 'B6'] 
for row in get_cells: 
	for cell in row: print(cell.value) 
    
# 모든 행 단위로 출력 
for row in load_ws.rows: 
	print(row) 
    
# 모든 열 단위로 출력 
for column in load_ws.columns: 
	print(column) 
    
# 모든 행과 열 출력 
all_values = [] 
for row in load_ws.rows: 
	row_value = [] 
    for cell in row: 
    	row_value.append(cell.value) 
    all_values.append(row_value) 
    print(all_values) 
    
load_ws.cell(3, 3, 51470) 
load_ws.cell(4, 3, 21470) 
load_ws.cell(5, 3, 1470) 
load_ws.cell(6, 3, 6470) 

load_wb.save("저장 파일 경로")
반응형

+ Recent posts