컴퓨터/Python

Combining Excel Sheets with Python 엑셀 파일 병합

풍경소리^^ 2019. 6. 1. 08:49

https://www.youtube.com/watch?v=kWaerL6-OiU 추천

https://www.youtube.com/watch?v=4_BPNnKEMn8

https://www.youtube.com/watch?v=sspFLy0ju8E

 

https://blog.naver.com/jangsam24/221521900032

import pandas as pd

filepath='d:\data\hometax\\'
excel1=filepath+'data1.xlsx'
excel2=filepath+'data2.xlsx'
excel3=filepath+'data3.xlsx'

df1=pd.read_excel(excel1,skiprows=5)
df1.to_excel(filepath+'dataframe1.xlsx',index=None)
df2=pd.read_excel(excel2,skiprows=5)
df2.to_excel(filepath+'dataframe2.xlsx',index=None)
df3=pd.read_excel(excel3,skiprows=5)
df3['세액']=0
df3['품목세액']=0
# print(df3.columns)
df3.to_excel(filepath+'dataframe3.xlsx',columns=['작성일자', '승인번호', '발급일자', '전송일자', '공급자사업자등록번호', '종사업장번호', '상호', '대표자명',
       '주소', '공급받는자사업자등록번호', '종사업장번호.1', '상호.1', '대표자명.1', '주소.1', '합계금액',
       '공급가액', '세액', '전자세금계산서분류', '전자세금계산서종류', '발급유형', '비고', '영수/청구 구분', '공급자 이메일',
       '공급받는자 이메일1', '공급받는자 이메일2', '품목일자', '품목명', '품목규격', '품목수량', '품목단가',
       '품목공급가액', '품목세액', '품목비고'],index=None)

from glob import glob
# filenames=glob(filepath+'dataframe*.xlsx')
# dataframes=[pd.read_excel(f) for f in filenames]

dfexcel1=filepath+'dataframe1.xlsx'
dfexcel2=filepath+'dataframe2.xlsx'
dfexcel3=filepath+'dataframe3.xlsx'

dataframe1=pd.read_excel(dfexcel1)
dataframe2=pd.read_excel(dfexcel2)
dataframe3=pd.read_excel(dfexcel3)

values1=dataframe1[['작성일자', '승인번호', '발급일자', '전송일자', '공급자사업자등록번호', '종사업장번호', '상호', '대표자명',
       '주소', '공급받는자사업자등록번호', '종사업장번호.1', '상호.1', '대표자명.1', '주소.1', '합계금액',
       '공급가액', '세액', '전자세금계산서분류', '전자세금계산서종류', '발급유형', '비고', '영수/청구 구분', '공급자 이메일',
       '공급받는자 이메일1', '공급받는자 이메일2', '품목일자', '품목명', '품목규격', '품목수량', '품목단가',
       '품목공급가액', '품목세액', '품목비고']]
values2=dataframe2[['작성일자', '승인번호', '발급일자', '전송일자', '공급자사업자등록번호', '종사업장번호', '상호', '대표자명',
       '주소', '공급받는자사업자등록번호', '종사업장번호.1', '상호.1', '대표자명.1', '주소.1', '합계금액',
       '공급가액', '세액', '전자세금계산서분류', '전자세금계산서종류', '발급유형', '비고', '영수/청구 구분', '공급자 이메일',
       '공급받는자 이메일1', '공급받는자 이메일2', '품목일자', '품목명', '품목규격', '품목수량', '품목단가',
       '품목공급가액', '품목세액', '품목비고']]
values3=dataframe3[['작성일자', '승인번호', '발급일자', '전송일자', '공급자사업자등록번호', '종사업장번호', '상호', '대표자명',
       '주소', '공급받는자사업자등록번호', '종사업장번호.1', '상호.1', '대표자명.1', '주소.1', '합계금액',
       '공급가액', '세액', '전자세금계산서분류', '전자세금계산서종류', '발급유형', '비고', '영수/청구 구분', '공급자 이메일',
       '공급받는자 이메일1', '공급받는자 이메일2', '품목일자', '품목명', '품목규격', '품목수량', '품목단가',
       '품목공급가액', '품목세액', '품목비고']]
df0=[values1,values2,values3]
join=pd.concat(df0)
join.to_excel(filepath+"df0.xlsx",index=None)
import pandas as pd
import numpy as np
import os
import glob
import time
import win32api

# location = os.getcwd()
location = 'b:/python/hometax/data'
os.chdir(location)
excels = glob.glob('*.xls*')

excel_list = []
for excel in excels:
    if excel == "hometax_pandas_xlsxWriter.xlsx":
        continue
    excel_list.append(excel)

# start = time.time()  # 시작 시간 저장
dropcols=['전자세금계산서분류', '전자세금계산서종류', '발급유형', '비고', '영수/청구 구분',
       '공급자 이메일', '공급받는자 이메일1', '공급받는자 이메일2', '품목일자', '품목명', '품목규격', '품목수량',
       '품목단가', '품목공급가액', '품목세액', '품목비고']
if len(excel_list) !=0:
    df_total = pd.read_excel(excel_list[0], skiprows=5)
    cnt = df_total.shape[0] # 행
#     df_total.loc[cnt+1] = np.nan # 빈행 추가
    for item in excel_list[1:]:
        df = pd.read_excel(item, skiprows=5)
        cnt = df.shape[0] # 행
#         df.loc[cnt+1] = np.nan # 빈행 추가
        
        df_total = pd.concat([df_total, df],axis=0)
        
    df_total = df_total.drop(columns=dropcols)
    
    df_total.to_excel(location + "/hometax_pandas_xlsxWriter.xlsx",index=False, sheet_name="Sheet1")
    win32api.MessageBox(0, "통합파일 생성 완료!", "파일 생성")
#     print("time :", time.time() - start)  # 현재시각 - 시작시간 = 실행 시간

else:
    print("통합할 파일이 없습니다.")

'컴퓨터 > Python' 카테고리의 다른 글

ping  (0) 2019.06.01
opencv 배우기 같은이미지찾기  (0) 2019.06.01
pandas excel columns duplicate  (0) 2019.06.01
pandas row delete  (0) 2019.05.31
파이썬 pyautogui.typewrite 한글 입력  (0) 2019.05.30