# [개발이야기#026] 내가 해보고 싶은 것 - 엑셀파일을 이용해서 다중 이체 해보기 [postingcuration]

in kr •  10 hours ago 

안녕하세요 가야태자 @talkit 입니다.

웹 사이트는 주말에 이어서 조금씩 만들어 볼 생각 입니다.

오늘 100코인을 보내는게 규칙이어서 보내려고 합니다.

보내는 금액은

계정명전송금액메모
epitt9251.5postingcuration 같이 참여해주셔서 감사합니다.
etainclub10postingcuration 같이 참여해주셔서 감사합니다.
happycoachmate1.5postingcuration 같이 참여해주셔서 감사합니다.
hirue1.5postingcuration 같이 참여해주셔서 감사합니다.
june06201.5postingcuration 같이 참여해주셔서 감사합니다.
jungjunghoon1.5postingcuration 같이 참여해주셔서 감사합니다.
kimyg181.5postingcuration 같이 참여해주셔서 감사합니다.
maikuraki1.5postingcuration 같이 참여해주셔서 감사합니다.
parisfoodhunter1.5postingcuration 같이 참여해주셔서 감사합니다.
parkname10postingcuration 같이 참여해주셔서 감사합니다.
peterpa1.5postingcuration 같이 참여해주셔서 감사합니다.
powerego1.5postingcuration 같이 참여해주셔서 감사합니다.
prettyjoo1.5postingcuration 같이 참여해주셔서 감사합니다.
pyiol121.5postingcuration 같이 참여해주셔서 감사합니다.
soosoo1.5postingcuration 같이 참여해주셔서 감사합니다.
ssglanders1.5postingcuration 같이 참여해주셔서 감사합니다.
tsf-leejgn10postingcuration 같이 참여해주셔서 감사합니다.
yann031.5postingcuration 같이 참여해주셔서 감사합니다.
seraphim5021.5postingcuration 같이 참여해주셔서 감사합니다.

위와 같습니다.

지난 번에 이야기 한 제기준을 지켜서 일단 드렸습니다.

이것도 파이썬으로 만들어 보았습니다. ^^

import pandas as pd
from steem import Steem
from steem.transactionbuilder import TransactionBuilder
from steembase import operations

def send_steem_from_excel(file_path, steem_username, steem_private_key):
    # 엑셀 파일 로드
    df = pd.read_excel(file_path)

    # Steem 인스턴스 생성
    steem = Steem(nodes=["https://api.steemit.com"], keys=[steem_private_key])

    # 각 행에 대하여 스팀 전송
    for index, row in df.iterrows():
        account = row['계정명']
        amount = row['전송금액']
        memo = row['메모']
        amount_str = f"{amount:.3f} STEEM"  # 3자리 소수로 금액 포맷
        
        # Transaction 생성
        tb = TransactionBuilder()
        tb.appendOps(operations.Transfer(
            **{
                "from": steem_username,
                "to": account,
                "amount": amount_str,
                "memo": memo
            }
        ))
        tb.appendSigner(steem_username, 'active')
        tb.sign()
        tb.broadcast()
        
        print(f"Transferred {amount_str} STEEM to {account} with memo: {memo}")

if __name__ == '__main__':
    # 스팀 계정과 개인 액티브 키 설정
    username = 'your_steem_username'
    private_key = 'your_private_active_key'
    
    # 엑셀 파일 경로
    excel_path = 'path_to_your_excel_file.xlsx'
    
    # 함수 실행
    send_steem_from_excel(excel_path, username, private_key)

파이썬 코드는 위와 같습니다.

엑셀 은 A,B,C 열에 가각 계정명, 전송금액, 메모으로 되어 있어야 합니다.

저는 파일이름을 스팀전송내역.xlsx 로 저장 했습니다.

your_steem_username 본인 스팀 아이디 입니다.

your_private_active_key 본인 스팀 아이디의 액티브키입니다.

path_to_your_excel_file.xlsx 엑셀파일 위치이고, 엑셀 파일이 프로그램과 같이 있으면 파일 명만 적으면 되고, 혹시 다른 폴더에 있으면 해당 폴더와 함께 절대 경로를 적어 주세요.

일단 처음에 엑셀파일을 제대로 읽는지가 궁금 했습니다.

Transferred 1.500 STEEM STEEM to epitt925 with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 10.000 STEEM STEEM to etainclub with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to happycoachmate with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to hirue with memo: postingcuration  같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to june0620 with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to jungjunghoon with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to kimyg18 with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to maikuraki with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to parisfoodhunter with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 10.000 STEEM STEEM to parkname with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to peterpa with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to powerego with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to prettyjoo with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to pyiol12 with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to soosoo with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to ssglanders with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 10.000 STEEM STEEM to tsf-leejgn with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to yann03 with memo: postingcuration 같이 참여해주셔서 감사합니다.
Transferred 1.500 STEEM STEEM to seraphim502 with memo: postingcuration 같이 참여해주셔서 감사합니다.

오 상다히 잘 읽어 줍니다.

그럼 이제 실제로 주석을 풀고 전송해 보겠습니다.


실제로 제 계좌에서도 맨 마지막에 보내 드린 분꼐까지 잘 보내졌습니다.

이제 실행할 수 있는 방법을 알려 드리겠습니다.

  1. 윈도우즈에 아나콘다는 설치 하십시오.

리눅스 라면 https://steemit.com/blog/@talkit/015-linux-anaconda-python 글을 참조하시면 됩니다.

윈도우즈라면 https://talkit.tistory.com/731 제 블로그 글을 참조 하시면 됩니다.

  1. 위에 보이는 아나콘다 콘솔에 접속을 하시고

개발 환경을 구성 합니다.

conda create -n steemit python=3.12

그리고, 필요한 라이버러리를 설치 합니다.

conda activate steemit
pip install pandas openpyxl steem
cd c:\
mkdir dev
cd dev
mkdir steemit

위 명령어를 이용해서 steemit 폴더를 만들고 이동 합니다.

아직 git에 안올려서

윈도우즈에서 아무 편집기나 여시고 ^^

저위에 있는 소스코드를 복사 해 줍니다.

그리고, 메모장에 넣고

다른 이름으로 저장 합니다.

send_steem_users_from_excel.py

저는 파일명을 위와 같이 했습니다.

메모장에 넣으시고 수정하라고 말씀 드린 코드는 수정 하셔야 합니다.

^^

그리고, 엑셀 파일을 작성 하십시오.

저장하실때 되도록이면 c:\dev\steemit 폴더에 소스 파일도 엑셀파일도 만드십시오 ^^

그리고 다시 아나콘다 콘솔로 돌아가서 아래 명령어를 실행하시면 됩니다.

python send_steem_users_from_excel.py

이게 혹시 안되신다면

python3 send_steem_users_from_excel.py

위와 같이 실행해주시면

제가 실행한 것 처럼 나오실 껍니다. ^^

혹시 실행하실 엑셀 파일에 ^^

계정명전송금액메모
talkit1프로그램 만들어 주셔서 감사합니다.

위와 같이 만들어 주시면 감사감사 ^^

재미 없는 글 읽어 주셔서 감사합니다.



Posted through the ECblog app (https://blog.etain.club)

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

이벤트 열었을 때
당첨자들에게 스팀 하나 하나 전송하려면 힘들었는데
이제 이걸 이용하면 되겠네요 'ㅡ' ㅎㅎ
(아직 사용법의 감이 잡히진 않지만 ㅋㅋㅋ)

시간될 때 찬찬히 테스트해보겠습니다~!! ㅎㅎ

한번 만들어 두시면 ^^ 다음에는 엑셀 파일만 계속 바꾸시면 됩니다.
시간 되실때 찬찬히 테스트 해보십시오.

오~ 너무 멋진 프로그램이에요! 저에게는 최고의 개발자이십니다~ 👍👍👍
한 번 따라해볼께요~!
좋은, 그리고 유용한 코드를 친절한 설명과 함께 공유해 주셔서 고맙습니다!

요거트님은 잘 따라 하실 수 있을 겁니다. ^^

코드를 한번 PC에 만들어 두면 이벤트나 여러가지 전송하고 싶은 내용이 있으실때 그냥 python 실행만 해주시면 될 듯 합니다 ^^

당연히 엑셀은 수정하구요 ^^