Jihye's records

<–– Back

[work] Excel 파일 업로드해서 읽기

Date: June 16, 2021

HTML

<form enctype="multipart/form-data" action="test.py" method="post">
	<input type="file" class="file" accept=".xlsx" name="File" value="">
	<input type="submit" value="제출">
</form>
  • form 태그와 input type=”file”을 이용함.
  • form의 enctype을 꼭 “multipart/form-data”로 지정해 주어야 file이나 img를 서버로 전송할 수 있다.
  • input의 accept 속성은 업로드 될 파일의 형식을 결정한다.

Python

import pandas as pd

form = cgi.FieldStorage()
File = form['File']

if File.filename:
    file_name = os.path.basename(File.filename)
    open('/tmp/'+file_name, 'wb').write(File.file.read())
    # open한 결과를 변수에 담지는 X
    # 파일이 임시 업로드 되었기 때문에 /tmp/ 경로에 쌓인다.
    # open 안의 경로를 열고 안의 내용을 읽어온 내용으로 채운다. (overwrite)
    
    SO_excel = pd.read_excel('/tmp/'+file_name)
    print(SO_excel.to_html(justify='center', index=False)
  • pandas, xlrd(pandas.read_excel 시 필요) 모듈 별도 설치 필요.
  • read_excel에 매우 많은 옵션(속성)이 필요함. 알아보기.
  • excel을 읽어오면 dataframe 형식으로 저장함. to_html함수를 이용해 웹에 <table> 형식으로 뿌려준다.

work server database db