kimpro82 / MyBizApps

Business? ??
MIT License
1 stars 0 forks source link

VBA : Load CSV file generated by Python #29

Closed kimpro82 closed 1 year ago

kimpro82 commented 1 year ago

Written By ChatGPT

import csv

# 테스트용 2차원 배열 데이터 생성
data = [
    ['이름', '나이', '성별'],
    ['Alice', 28, '여성'],
    ['Bob', 35, '남성'],
    ['Charlie', 22, '남성'],
    ['David', 30, '남성']
]

# CSV 파일로 데이터 저장
with open('file.csv', 'w', newline='', encoding='utf-8') as csvfile:
    csvwriter = csv.writer(csvfile)
    csvwriter.writerows(data)

print('CSV 파일 생성이 완료되었습니다.')
Sub LoadCSVFromPython()
    Dim pythonScriptPath As String
    Dim pythonExe As String
    Dim pythonArgs As String
    Dim csvFilePath As String
    Dim startCell As Range

    ' 파이썬 스크립트의 경로 설정
    pythonScriptPath = "C:\path\to\your\python\script.py"

    ' 파이썬 실행 파일과 인자 설정
    pythonExe = "C:\path\to\python\python.exe" ' 파이썬 실행 파일 경로
    pythonArgs = pythonScriptPath ' 파이썬 스크립트 경로를 인자로 전달

    ' .csv 파일 저장 경로 설정 (파이썬 스크립트가 .csv 파일을 생성할 경로)
    csvFilePath = "C:\path\to\your\output\file.csv"

    ' 데이터를 불러올 시작 셀 지정
    Set startCell = ThisWorkbook.Sheets("Sheet1").Range("A1") ' A1 셀부터 데이터를 불러옴

    ' 파이썬 스크립트 실행
    Shell pythonExe & " " & pythonArgs

    ' .csv 파일을 엑셀로 불러와서 시작 셀에 붙여넣기
    Workbooks.Open csvFilePath
    ActiveSheet.UsedRange.Copy Destination:=startCell

    ' 열린 워크북 닫기
    ActiveWorkbook.Close SaveChanges:=False
End Sub