• 목록
  • 아래로
  • 위로

안녕하세요?


아미나의 '티스탁' 님께서 정리하신 명언 엑셀파일을 


PHP 등에서 사용하기 위해 CSV 파일로 변환하는 스크립트입니다.


http://amina.co.kr/bbs/board.php?bo_table=skin_member&wr_id=4169


무료로 제공되고 있고, 열어보면 아시겠지만 굉장히 많은 명언이 잘 정리되어 있어요 ^^



XLS 파일로 저장되어 있는데 openpyxl 라이브러리로 읽으려면 우선 엑셀에서 xlsx 파일로 변환해야 합니다.


스크립트를 실행하면 원하는 구간의 B열에 담긴 명언만 추출해서 CSV 파일로 변환해줍니다.


delimiter로는 엔터를 사용했는데 작업에 따라서는 ';'가 더 편할 수도 있겠네요.


PHP에서는 fgetcsv() 함수로 불러오면 됩니다.



import openpyxl, csv

wb = openpyxl.load_workbook('파일명.xlsx')
ws = wb.active

start_row = 시작 열
end_row = 마지막 열

mylist = []
count = 1
for column in ws['B']:
     if count >= start_row and count <= end_row:
         mylist.append(column.value)
     count += 1

with open("파일명.csv", "w") as f:
    wr = csv.writer(f, delimiter='\n')
    wr.writerow(mylist)



openpyxl 라이브러리도 업데이트가 여러 번 진행되면서 꽤 많은 부분이 변했네요.


공식문서를 확인해보니 대체로 이전보다 간결하게 사용할 수 있는 방법으로 바뀐 것 같네요.


그래서 현재의 라이브러리는 "파이썬 프로그래밍으로 지루한 작업 자동화하기" 책에 실린 것과 차이가 조금 있더군요.


이 스크립트는 openpyxl 최신 버전을 기준으로 작성해서 구 버전에서는 돌아가지 않을 것 같네요.



그럼 편안한 저녁 되시고 무더위에 항상 건강하세요!


굿밤 되세요 ^^



+) 인코딩의 변환이 필요한 경우 아래 스크립트를 활용하시면 됩니다.


before = codecs.open('변환전파일명', 'r', encoding='euc_kr')
after = codecs.open('변환후파일명', 'w', encoding='utf-8')
for line in before:
     line = line.replace(u'\xa0', ' ') 
     out.write(line)
before.close()
after.close()


작성자
이니스프리 119 Lv. (0%) 1908520/115200000EXP

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [작업 완료] 설 명절 맞이 서버 업데이트 안내 3 마스터 마스터 24.02.11.17:21 728
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 마스터 23.01.14.02:23 4399
446 [Python] m3u8 파일의 목록에 있는 ts 파일들을 merge하는 방법 6 이니스프리 이니스프리 20.06.20.22:03 1345
445 [파이썬] 여러 개의 공백을 하나로 줄이는 방법 이니스프리 이니스프리 19.12.28.00:12 1320
444 빠르고 간단한 인터넷 속도 측정기 14 망할윈도우미 망할윈도우미 18.05.28.20:05 1307
443 [Python] 이차원 리스트에서의 다중조건 정렬 이니스프리 이니스프리 20.02.08.23:00 1299
442 [Python] wav, mp3 재생하기 이니스프리 이니스프리 20.03.15.13:43 1295
441 [파이썬] 폴더 및 하위 폴더 내의 파일에서 문자열을 일괄적으로 replace하는 스크립트 이니스프리 이니스프리 19.12.25.13:01 1240
440 그누보드 캡챠(KCaptcha)의 설정을 변경하는 방법 이니스프리 이니스프리 18.11.14.21:22 1239
439 GitHub에서 학생계정 얻고 Private Repo 사용하기 5 Seia Seia 18.06.23.22:34 1232
[파이썬] 명언 엑셀파일 to CSV 변환 스크립트 이니스프리 이니스프리 19.07.09.23:19 1221
437 [Python] Requests에서 SSLError 발생 시 대처 방법 이니스프리 이니스프리 21.09.19.15:12 1216
436 [Python] 엑셀 파일에 암호 설정 (Set password for Excel file using Python) 3 image 이니스프리 이니스프리 21.07.09.21:21 1196
435 [할인정보] 핫스팟쉴드 엘리트 VPN 평생 이용권 99.99달러 3 이니스프리 이니스프리 17.02.09.23:25 1185
434 [건강/의학] 허리디스크,목디스크 혹은 허리,목아프신분들을 위한 팁. 2 image death death 17.01.25.21:25 1178
433 masonry 라이브러리 사용시 세로방향 이미지 겹침 문제에 대한 해결방법 이니스프리 이니스프리 19.07.20.23:39 1166
432 레노버 랩탑에서 Fn 키 설정 및 Ctrl 키와의 상호전환에 대하여 이니스프리 이니스프리 20.01.02.22:22 1104
431 Programmers에서 비메오 오류로 강의가 재생되지 않을 때 해결방법 이니스프리 이니스프리 19.12.10.19:22 1095
430 미국 내 주별 세일즈 택스에 대한 정리 (펌) 이니스프리 이니스프리 18.12.09.10:43 1090
429 [Python] 영어로 표기된 날짜를 숫자로 변환 이니스프리 이니스프리 21.05.30.11:39 1072
428 더현대닷컴 vs Hmall의 차이 이니스프리 이니스프리 20.01.26.20:10 1072
427 [Python] 2개의 리스트를 딕셔너리로 변환하는 3가지 방법 이니스프리 이니스프리 20.10.25.15:34 1056