赞
踩
- import request from "@/utils/request";
-
-
- //导出
- export function importVolunteer(data) {
- return request({
- method: 'post',
- url: '/volunteer/download_excel',
- data,
- responseType: 'blob'
- })
- }
- // 导出按钮点击事件处理
- async importHandle() {
- try {
- // 调用导出的接口
- const res = await importVolunteer();
- // 处理导出的Excel文件
-
- const blob = new Blob([res], {type:'application/vnd.ms-excel;charset=utf-8'});
- const url = window.URL.createObjectURL(blob);
- const link = document.createElement('a');
-
- link.href = url;
- link.setAttribute('download', '志愿者导出表');
- document.body.appendChild(link);
- link.click();
-
- document.body.removeChild(link);
- window.URL.revokeObjectURL(url);
- } catch (error) {
- console.error(error);
- }
- }
- import io
-
- import xlwt as xlwt
- from flask import make_response
-
- from flask_backend.models import Volunteer
-
-
- @volunteer_blue.route('/download_excel', methods=['POST'])
- def exportData():
- wb = xlwt.Workbook()
- ws = wb.add_sheet('志愿者报表')
- first_col = ws.col(0) # xlwt中是行和列都是从0开始计算的
- second_col = ws.col(1)
- third_col = ws.col(2)
- four_col = ws.col(3)
- five_col = ws.col(4)
- six_col = ws.col(5)
- seven_col = ws.col(6)
- first_col.width = 128 * 20
- second_col.width = 230 * 20
- third_col.width = 230 * 20
- four_col.width = 128 * 20
- five_col.width = 230 * 20
- six_col.width = 230 * 20
- seven_col.width = 230 * 20
- ws.write(0, 0, "id")
- ws.write(0, 1, "姓名")
- ws.write(0, 2, "性别")
- ws.write(0, 3, "身份证号码")
- ws.write(0, 4, "电话号码")
- ws.write(0, 5, "审核状态")
- ws.write(0, 6, "注册时间")
- dataw = Volunteer.query.order_by(Volunteer.id).all()
- if dataw is not None:
- for i in range(0, len(dataw)):
- pet = dataw[i]
- repairDate = pet.register_time.strftime('%Y-%m-%d %Z %H:%M:%S') if pet.register_time else ''
- status = '已审核' if pet.check_status == 1 else '未审核' if pet.check_status == 0 else ''
- ws.write(i + 1, 0, pet.id)
- ws.write(i + 1, 1, pet.name)
- ws.write(i + 1, 2, pet.gender)
- ws.write(i + 1, 3, pet.id_card)
- ws.write(i + 1, 4, pet.phone)
- ws.write(i + 1, 5, status)
- ws.write(i + 1, 6, repairDate)
-
-
- # 创建一个内存中的文件对象
- file_obj = io.BytesIO()
- wb.save(file_obj)
- file_obj.seek(0)
-
- # 创建响应对象
- response = make_response(file_obj.getvalue())
-
- # 设置Content-Type和Content-Disposition头信息
- response.headers['Content-Type'] = 'application/vnd.ms-excel'
- response.headers['Content-Disposition'] = 'attachment; filename="repair.xls"'
-
- return response
- import os
- import time
-
- import xlwt as xlwt
- from flask import send_file, make_response
-
- from flask_backend.models import Volunteer
-
-
- @volunteer_blue.route('/download_excel', methods=['POST'])
- def exportData():
- wb = xlwt.Workbook()
- ws = wb.add_sheet('志愿者报表')
- first_col = ws.col(0) # xlwt中是行和列都是从0开始计算的
- second_col = ws.col(1)
- third_col = ws.col(2)
- four_col = ws.col(3)
- five_col = ws.col(4)
- six_col = ws.col(5)
- seven_col = ws.col(6)
- first_col.width = 128 * 20
- second_col.width = 230 * 20
- third_col.width = 230 * 20
- four_col.width = 128 * 20
- five_col.width = 230 * 20
- six_col.width = 230 * 20
- seven_col.width = 230 * 20
- ws.write(0, 0, "id")
- ws.write(0, 1, "姓名")
- ws.write(0, 2, "性别")
- ws.write(0, 3, "身份证号码")
- ws.write(0, 4, "电话号码")
- ws.write(0, 5, "审核状态")
- ws.write(0, 6, "注册时间")
- dataw = Volunteer.query.order_by(Volunteer.id).all()
- if dataw is not None:
- for i in range(0, len(dataw)):
- pet = dataw[i]
- repairDate = pet.register_time.strftime('%Y-%m-%d %Z %H:%M:%S') if pet.register_time else ''
- status = '已审核' if pet.check_status == 1 else '未审核' if pet.check_status == 0 else ''
- ws.write(i + 1, 0, pet.id)
- ws.write(i + 1, 1, pet.name)
- ws.write(i + 1, 2, pet.gender)
- ws.write(i + 1, 3, pet.id_card)
- ws.write(i + 1, 4, pet.phone)
- ws.write(i + 1, 5, status)
- ws.write(i + 1, 6, repairDate)
- now = str(time.time())
- path = "/static/excel/"
- fileName = "repair_" + now + ".xls"
- file_path = os.path.dirname(__file__) + path
- if not os.path.exists(file_path):
- os.makedirs(file_path)
- file_path = file_path + fileName
- try:
- f = open(file_path, 'r')
- f.close()
- except IOError:
- f = open(file_path, 'w')
- wb.save(file_path)
-
-
- # 创建响应对象
- response = make_response(send_file(file_path, as_attachment=True))
-
- # 设置Content-Type和Content-Disposition头信息
- response.headers['Content-Type'] = 'application/vnd.ms-excel'
- response.headers['Content-Disposition'] = 'attachment; filename="repair.xls"'
-
- return response
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。