본문 바로가기

Spring Boot

[Flask] 엑셀파일 생성/다운로드 처리

반응형

download_xls 함수는 플라스크 라이브러리의 make_response 함수를 사용하여 Excel 파일의 내용으로 응답을 생성합니다. build_xls 함수는 xlwt 라이브러리를 사용하여 Excel 파일을 만듭니다. 데이터가 워크시트에 추가되고 워크북이 바이트로 저장됩니다IO 개체입니다. 바이트의 내용그러면 IO 개체가 응답으로 반환됩니다.

Python Flask 응용 프로그램에서 xlwt를 사용하려면 pip을 사용하여 설치하십시오.

from flask import Flask, make_response
import xlwt

app = Flask(__name__)

@app.route("/download/xls")
def download_xls():
    response = make_response(build_xls())
    response.headers["Content-Disposition"] = "attachment; filename=data.xls"
    response.headers["Content-Type"] = "application/vnd.ms-excel"
    return response

def build_xls():
    workbook = xlwt.Workbook()
    worksheet = workbook.add_sheet("Data")

    # Add your data here
    data = get_data()

    for row_index, row in enumerate(data):
        for col_index, value in enumerate(row):
            worksheet.write(row_index, col_index, value)

    output = io.BytesIO()
    workbook.save(output)
    return output.getvalue()

def get_data():
    # Add your data here and return it as a list of lists
    return data

if __name__ == "__main__":
    app.run(debug=True)
반응형