336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

목차 (작성 예정)

(1) 100% 만족할 파이썬 엑셀 사무 자동화, 회사에서 안 된다면?

(2) 엑셀 보안 한 방에 뚫기

(3) 시간 50배 단축, 실무 엑셀 함수 구현 (vlookup, index match 등)

(4) 실무 엑셀 함수 응용

(5) 엑셀 실무용 유용한 함수 및 기능들 파이썬으로 해결

(6) 언제까지 수작업할래? 크롤링과 사진 자동으로 캡쳐, 스샷

 


1
2
import pandas as pd
df = pd.read_csv('111.csv')
cs

전 글에서 pip install 문제 때문에 ipykernel이 설치가 안 돼서 print(1)도 되지 않았다. 이후 문제를 해결하고 1이 출력 됐을 때의 기쁨은 엄청났다. 하지만 그 기쁨도 잠시뿐. 행복한 마음으로 csv 데이터 파일을 열었더니 오류가 이렇게나 길게 나왔다.

 

 

 

문제는 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9b in position 32: invalid start byte 라고 한다.  codec 문제라고 하는데, 예전에도 이런 문제와 부딪혀 봐서 금방 해결할거라 생각했다. 

 

 

 

encodig = 'utf-8' / 'euc-kr' / 'cp949' / 'utf-8-sig' 이 중에 한 놈이라도 걸려라 했는데, 한 명도 걸리지 않았다. 그 어떤 것도 되지 않아서.. csv 파일이 문제라고 생각해서 xlsx 확장자를 열어봤는데

 

 

 

 

ValueError: Excel file format cannot be determined, you must specify an engine manually. 라는 에러 메시지가 출력됐다. 그래서 또 열심히 구글링을 하기 시작했는데 도움이 되지 않았다. 그래도 참고하실 분은 봐주세요.

 

 

 

 

 

 

 

PANDAS & glob - Excel file format cannot be determined, you must specify an engine manually

I am not sure why I am getting this error although sometimes my code works fine! Excel file format cannot be determined, you must specify an engine manually. Here below is my code with steps: 1- li...

stackoverflow.com

 

How to read SharePoint Online (Office365) Excel files in Python with Work or School Account?

I am a university student and I have registered as an Office 365 Education user via my university Email address. I usually log into https://www.office.com with my Email account: alice@abc.edu. The ...

stackoverflow.com

열심히 찾아봤는데 해결책은 의외로 간단했다.

 

openpyxl가 아닌,  xlwings을 설치하면 된다.

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import openpyxl
wb = openpyxl.load_workbook('파일명')
 
#sheet 열기
sheet = wb['sheet1'
 
#workbook 생성
wb = openpyxl.Workbook() # 기본 시트 생성됨 sheet1
sheet2 = wb.create_sheet('sheet2'#마지막에 추가
sheet3 = wb.create_sheet('sheet3'1#sheet1 자리에 삽입 하여 추가
 
#시트 이름 변경
sheet2.title = '업무자동화'
 
#저장
wb.save('./new_test_file.xlsx')
wb.close()
cs

openpyxl 같은 경우 시트별로 불러와서 작업이 가능하지만, 애초에 회사 사내망 때문에 보안이 걸린 엑셀의 경우는 xlwings로만 불러 올 수 있었다. 하지만 xlwings를 사용하는 사람들이 많이 없어서 참고 자료를 찾기 어려워서 다른 방법을 선택했다.

 

 

 

1
2
3
4
import xlwings as xw
book = xw.Book('실습1.csv')
df = book.sheets(1).used_range.options(pd.DataFrame).value
df
cs

자료는 회사와 관련이 없는 자료다. 이런 식으로 작업을 하면 바로 엑셀이 실행돼서 동시 작업이 된다. 엑셀 실행이 돼서 기뻤지만 작업을 하지 못 해서 다른 방법이 뭐가 있을까 찾아봤다.

 

 

 

 

사내망 엑셀파일에 걸린 자물쇠를 뚫고 코딩하기

엑셀 자동화 (1) - xlwings 라이브러리 시작하기

maeng-gun.github.io

그래도 혹시 궁금해하실 분들을 위해서 관련 링크 걸어놓습니다.

 

저는 xlwings 대신에 pd.read_clipboard()를 사용하였습니다. 이게 참 훌륭한 기능이라는 걸 깨달았네요. 그냥 가져오고자 하는 데이터를 드래그해서 복사하시면 dataframe이 만들어집니다. 자동으로 행, 열도 생성되고 이거 아니었으면 자동화는 힘들었을거 같네요 ㅠㅠ

 

그리고 이걸로 긁어와서 만든 파일의 경우 세션(?)이 끊기기 전까지는 csv로 불러서 읽을 수 있습니다! 다만 csv 파일을 열어서 수정을 하게 되면 다시 못 쓴다는 치명적인 단점이... 그래도 수작업을 할 시간에 코드로 자동화를 한다면 훨씬 더 편하니까 이렇게 삥삥 돌아서 갑니다. 

 

다 같이 화이팅 합시다!

 

 

 

 

 

 

 

 

 

+ Recent posts