win32com_pdf_dataworkshop.py--------------------
#pip install pywin32
import win32com.client
import os
#Excel 프로그램 객체 생성
excel=win32com.client.Dispatch("Excel.Application")
# excel.Visible = True
# Read Excel File
current_path = os.getcwd().replace('\\','/') + '/'
# current_path = os.getcwd()+ '/'
# print(current_path)
filename = "급여1.xlsx"
FName = current_path + filename
# FName = "급여1.xlsx"
wb = excel.Workbooks.Open(FName)
# for s in wb.Sheets:
# print(s.name)
# sheet = wb.Worksheets[1]
sh = wb.Sheets('급여명세서')
# print(sheet.name)
# 셀 값 변경/입력하기, 셀 1개 or 여러개 셀의 값 입력 가능
sh.Range("B4").value = "자기"
# # sheet.range('A1:A5').value = [1,2,3,4,5] # 복수의 값 입력 가능
# # # sheet.range('A1').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]] # 2차원 입력 가능
wb.Save()
# pdf 로 저장하기
current_work_dir = os.getcwd() # 현재 작업중인 폴더에 저장하기
# 절대경로로 파일 위치 입력
pdf_path = os.path.join(current_work_dir, "pdf파일명.pdf")
# PDF 로 저장할 시트 선택하기(본 예제에서는 첫 번째 시트 선택하기)
# report_sheet = wb.sheets[1]
# PDF 로 저장하기
sh.ExportAsFixedFormat(0, pdf_path)
# [출처] 엑셀 레포트 → PDF 저장 자동화하기(feat.파이썬)|작성자 데이터공방
wb.Close(False)
excel.Quit()
====================
xlwings_pdf_dataworkshop.py--------------------
#pip install xlwings
import xlwings as xw
import os
# 파일 불러오기
filename = "급여1.xlsx"
book = xw.Book(filename)
# Read Excel File
# current_path = os.getcwd().replace('\\','/') + '/'
# current_path = os.getcwd()+ '/'
# current_path = os.getcwd()
# print(current_path)
# FName = current_path + filename
# FName = os.path.join(current_path,filename)
# FName = "급여1.xlsx"
# wb = excel.Workbooks.Open(FName)
# for s in wb.Sheets:
# print(s.name)
# sheet = wb.Worksheets[1]
sh = book.sheets('급여명세서')
# print(sh.name)
# 셀 값 변경/입력하기, 셀 1개 or 여러개 셀의 값 입력 가능
sh["B4"].value = "명유석"
# # sheet.range('A1:A5').value = [1,2,3,4,5] # 복수의 값 입력 가능
# # # sheet.range('A1').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]] # 2차원 입력 가능
# book.Save()
# pdf 로 저장하기
current_work_dir = os.getcwd() # 현재 작업중인 폴더에 저장하기
# 절대경로로 파일 위치 입력
pdf_path = os.path.join(current_work_dir, "pdf파일명.pdf")
# PDF 로 저장할 시트 선택하기(본 예제에서는 첫 번째 시트 선택하기)
# report_sheet = book.sheets[1]
report_sheet = sh
# PDF 로 저장하기
# report_sheet.ExportAsFixedFormat(0, pdf_path)
report_sheet.api.ExportAsFixedFormat(0, pdf_path)
# [출처] 엑셀 레포트 → PDF 저장 자동화하기(feat.파이썬)|작성자 데이터공방
# wb.Close(False)
# book.Quit()
====================
xlwings_pdf_pandas_index_match--------------------
#pip install pandas
#pip install xlrd
#pip install pywin32
#pip install openpyxl
import pandas as pd
import xlwings as xw
import os
filename = "급여1.xlsx"
name = '홍길동'
df = pd.read_excel(filename, sheet_name='4대급여')
df = df.fillna(0)
df_employee = pd.read_excel(filename, sheet_name='직원현황')
index_df_employee = df_employee.index[df_employee['성명']==name].tolist()
# print(index_df_employee[0])
jobposition = df_employee.loc[index_df_employee[0],['직위']]
# print(f[0])
# 엑셀 인스턴스 생성
app = xw.App(visible=False)
book = xw.Book(filename)
sh = book.sheets('급여명세서')
sh["B4"].value = name
sh["D4"].value = jobposition[0]
# pdf 로 저장하기
current_work_dir = os.getcwd() # 현재 작업중인 폴더에 저장하기
# 절대경로로 파일 위치 입력
pdf_path = os.path.join(current_work_dir, "pdf파일명.pdf")
# PDF 로 저장할 시트 선택하기(본 예제에서는 첫 번째 시트 선택하기)
# report_sheet = book.sheets[1]
report_sheet = sh
# PDF 로 저장하기
# report_sheet.ExportAsFixedFormat(0, pdf_path)
report_sheet.api.ExportAsFixedFormat(0, pdf_path)
book.save()
app.kill()
====================
openpyxl_pdf_pandas_dataworkshop.py--------------------
#pip install openpyxl
import pandas as pd
import openpyxl
import os
#Excel 프로그램 객체 생성
current_path = os.getcwd()
fname = "급여1.xlsx"
df_data = pd.read_excel(fname, sheet_name='4대급여')
df_data = df_data.fillna(0)
df_employee = pd.read_excel(fname, sheet_name='직원현황')
name = '밀10'
# print(df_data)
idx_df_data = df_data.index[df_data['성명']==name].tolist()[0]
# print("4대급여 인덱스 :",idx_df_data)
normal = df_data.loc[idx_df_data,['기본급']][0]
overtime = df_data.loc[idx_df_data,['연장수당']][0]
holiday = df_data.loc[idx_df_data,['휴일수당']][0]
holidayovertime = df_data.loc[idx_df_data,['휴일연장수당']][0]
extra = df_data.loc[idx_df_data,['추가수당']][0]
meals = df_data.loc[idx_df_data,['식대']][0]
bonus = df_data.loc[idx_df_data,['상여금']][0]
normal_calculation = df_data.loc[idx_df_data,['기']][0]
overtime_calculation = df_data.loc[idx_df_data,['연']][0]
holiday_calculation = df_data.loc[idx_df_data,['휴']][0]
holidayovertime_calculation = df_data.loc[idx_df_data,['휴연']][0]
extra_calculation = df_data.loc[idx_df_data,['추']][0]
nationalpension = df_data.loc[idx_df_data,['국민연금']][0]
healthinsurance = df_data.loc[idx_df_data,['건강보험']][0]
longtermcareinsurance = df_data.loc[idx_df_data,['장기요양보험']][0]
employmentinsurance = df_data.loc[idx_df_data,['고용보험']][0]
healthsettlement = df_data.loc[idx_df_data,['정산건강']][0]
longtermcaresettlement = df_data.loc[idx_df_data,['정산장기요양']][0]
advancepayment = df_data.loc[idx_df_data,['선지급']][0]
etc = df_data.loc[idx_df_data,['기타']][0]
incometax = df_data.loc[idx_df_data,['소득세']][0]
localincometax = df_data.loc[idx_df_data,['지방소득세']][0]
idx_df_employee = df_employee.index[df_employee['성명']==name].tolist()[0]
# print("직원현황 인덱스 :",idx_df_employee)
jobposition = df_employee.loc[idx_df_employee,['직위']][0]
department = df_employee.loc[idx_df_employee,['부서']][0]
birthday = df_employee.loc[idx_df_employee,['생일']][0]
wb = openpyxl.load_workbook(fname)
sh_paystub = wb["급여명세서사대보험"]
# sh_paystub = excelfile.get_sheet_by_name('급여명세서사대보험')
sh_paystub["B4"].value = name
sh_paystub["D4"].value = jobposition
sh_paystub["B5"].value = department
sh_paystub["D5"].value = birthday
sh_paystub["B8"].value = normal
sh_paystub["B9"].value = overtime
sh_paystub["B10"].value = holiday
sh_paystub["B11"].value = holidayovertime
sh_paystub["B12"].value = extra
sh_paystub["B13"].value = meals
sh_paystub["D8"].value = nationalpension
sh_paystub["D9"].value = healthinsurance
sh_paystub["D10"].value = longtermcareinsurance
sh_paystub["D11"].value = employmentinsurance
sh_paystub["D12"].value = healthsettlement
sh_paystub["D13"].value = longtermcaresettlement
sh_paystub["D14"].value = advancepayment
sh_paystub["D15"].value = etc
sh_paystub["D16"].value = incometax
sh_paystub["D17"].value = localincometax
sh_paystub["B23"].value = normal_calculation
sh_paystub["B24"].value = overtime_calculation
sh_paystub["B25"].value = holiday_calculation
sh_paystub["B26"].value = holidayovertime_calculation
sh_paystub["B27"].value = extra_calculation
sh_paystub["D23"].value = normal
sh_paystub["D24"].value = overtime
sh_paystub["D25"].value = holiday
sh_paystub["D26"].value = holidayovertime
sh_paystub["D27"].value = extra
wb.save(fname)
# print(idx_df_employee)
# # FName = current_path + filename
# # FName = openpyxl.load_workbook(filename)
# FName = os.path.join(current_path,filename)
# # FName = "급여1.xlsx"
# wb = openpyxl.load_workbook(FName)
# # for s in wb.Sheets:
# # print(s.name)
# # sheet = wb.Worksheets[1]
# # sh = wb.Sheets('급여명세서사대보험')
# sh = wb['급여명세서사대보험']
# # print(sh)
# # 셀 값 변경/입력하기, 셀 1개 or 여러개 셀의 값 입력 가능
# sh["B4"].value = "밀1"
# # sh.Range("B4").value = "정용만"
# # # sheet.range('A1:A5').value = [1,2,3,4,5] # 복수의 값 입력 가능
# # # # sheet.range('A1').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]] # 2차원 입력 가능
# wb.save('급여1.xlsx')
# # pdf 로 저장하기
# current_work_dir = os.getcwd() # 현재 작업중인 폴더에 저장하기
# # 절대경로로 파일 위치 입력
# pdf_path = os.path.join(current_work_dir, "pdf파일명.pdf")
# # print(pdf_path)
# # PDF 로 저장할 시트 선택하기(본 예제에서는 첫 번째 시트 선택하기)
# # report_sheet = wb.sheets[1]
# # PDF 로 저장하기
# wb["급여명세서"].ExportAsFixedFormat(0, pdf_path)
# # [출처] 엑셀 레포트 → PDF 저장 자동화하기(feat.파이썬)|작성자 데이터공방
# wb.close()
# # wb.Close(False)
# # excel.Quit()
====================
'컴퓨터 > Python' 카테고리의 다른 글
python selenium chromedriver 다운 안받아도 되네요 (0) | 2022.09.08 |
---|---|
excel pandas pyqt5 qtablewidget email 급여명세서 (0) | 2022.09.05 |
AI코인 email (0) | 2022.08.28 |
코딩나우-pandas (0) | 2022.08.27 |
프로그래머 김플 스튜디오 (0) | 2022.08.26 |