파이썬으로 폴더의 ~ .xlsx 내용을 HTML로 출력

6651 단어 파이썬Excel

하고 싶은 일



폴더 안에 대량으로 Excel로 만든 파일이 있어 어느 것이 무엇인지 모르게 되었을 때에 「하나씩 조사하는 것은 까다롭다」라고 하는 기분이 되지 않습니다?
거기서 폴더내의 ~.xlsx의 파일 모두의 머리 쪽만 HTML로 해 출력해 줍니다.


이것으로 찾고 있는 파일이 어떤지 알고 수고도 다소는 생략할 수 있을…

이용하는 라이브러리 등



Windows 10에서 Python 3.8에서 실행 중입니다.

os
폴더 이동에 사용
glob
폴더의 파일을 확인하는 데 사용
io
파일에 쓰는 데 사용
pandas
.xlsx를 읽고 HTML로 변환
webbrowser
출력 된 HTML을 브라우저에서 열기 위해 사용

소스 코드



소스 코드는 다음과 같습니다.
import glob
import io
import os
import webbrowser
import pandas as pd

folder = input('フォルダパスを入力してください\n')
os.chdir(folder)

files_in_folder = [i.lstrip('.\\') for i in glob.glob("./*")]
xlsx_in_folder = [i for i in files_in_folder if i.endswith('.xlsx')]  # .xlsx終わりだけ残す

with io.StringIO() as s:
    s.write('<!DOCTYPE html>\n<html lang="jp">\n<head>\n\t<meta '
            'charset="UTF-8">\n\t<title>.xlsxサマリ</title>\n</head>\n<body>\n')
    s.write('<h1>.xlsxサマリ</h1>\n')

    # .xlsxを読み込んで頭5行・頭3列をhtmlにしたものを出力--ここから
    for i in xlsx_in_folder:
        s.write('<br>\n')
        s.write(i)  # ファイル名
        s.write(pd.read_excel(i, header=None, usecols=[0, 1, 2]).head().to_html(header=None, index=None))
    # .xlsxを読み込んで頭5行・頭3列をhtmlにしたものを出力--ここまで

    s.write('</body>\n</html>')
    output = s.getvalue()

with open("output.html", mode='w', encoding='utf-8') as f:
    f.write(output)

webbrowser.open("output.html")


출력



이런 식으로 HTML이 출력되어 기본 브라우저에서 열립니다.

좋은 웹페이지 즐겨찾기