fix excel error

This commit is contained in:
RainSun 2020-02-16 16:20:51 +08:00
parent b93bcc39e3
commit a45ea1e1d1
2 changed files with 37 additions and 16 deletions

39
api.py
View File

@ -1,27 +1,29 @@
# 将lib里边的文件加到路由中
import sys
sys.path.append('./lib')
from flask import Flask, escape, url_for, request, render_template, redirect, abort, send_from_directory, Response
from flask import Flask, escape, url_for, request, render_template, redirect, abort, send_from_directory, Response, make_response
from allFunction import manageGet, managePost, manageInsertKeyword, manageDelKeyword, manageGetKeyword, manageMaterial, replySomething, manageUpdateKeyword, manageExcelAdd, manageExcelReset, manageExcelGet
from flask_apscheduler import APScheduler
from wxRequest import requestsAccessToken
from flask_cors import CORS
scheduler = APScheduler()
cors = CORS()
# Response XML自动格式设置
class MyResponse(Response):
def __init__(self, response, **kwargs):
if 'mimetype' not in kwargs and 'contenttype' not in kwargs:
if response.startswith('<?xml'):
kwargs['mimetype'] = 'application/xml'
return super(MyResponse, self).__init__(response, **kwargs)
# class MyResponse(Response):
# def __init__(self, response, **kwargs):
# if 'mimetype' not in kwargs and 'contenttype' not in kwargs:
# if response.startswith('<?xml'):
# kwargs['mimetype'] = 'application/xml'
# return super(MyResponse, self).__init__(response, **kwargs)
# 创建子类覆写Response
class MyFlask(Flask):
response_class = MyResponse
# class MyFlask(Flask):
# response_class = MyResponse
# 创建app创建定时函数
def create_app():
app = MyFlask(__name__)
app = Flask(__name__)
app.config.update(
{"SCHEDULER_API_ENABLED": True,
"JOBS": [{"id": "requestsAccessToken", # 任务ID
@ -33,6 +35,7 @@ def create_app():
)
scheduler.init_app(app)
scheduler.start()
cors.init_app(app=app, resources={r"/excel/*": {"origins": "*"}})
requestsAccessToken()
return app
@ -41,6 +44,20 @@ app = create_app()
if __name__ == '__main__':
app.run()
# 在所有请求加上跨域允许
# @app.after_request
# def af_request(resp):
# """
# #请求钩子在所有的请求发生后执行加入headers。
# :param resp:
# :return:
# """
# resp = make_response(resp)
# resp.headers['Access-Control-Allow-Origin'] = '*'
# resp.headers['Access-Control-Allow-Methods'] = 'GET,POST'
# resp.headers['Access-Control-Allow-Headers'] = 'x-requested-with,content-type'
# return resp
# 测试用根路由
@app.route('/')
def sayHello():
@ -106,6 +123,8 @@ def excelAdd():
@app.route('/excel/reset', methods=['PUT'], strict_slashes=False)
def excelReset():
res = manageExcelReset(request)
resp = make_response(res)
resp.headers["Access-Control-Allow-Origin"] = "*"
return res
# excel获取当前数据

View File

@ -47,8 +47,10 @@ def upload_excel(request):
# 加载excel文件
def loadData(file_name, sheet_index):
# 根据文件名加载图片
wb = load_workbook('../upload' + file_name)
# 根据文件名加载文件
addr_cache = '/data/api/upload/' + file_name
print(addr_cache)
wb = load_workbook(addr_cache)
# 根据参数获取sheet
ws = wb[wb.sheetnames[sheet_index]]
# 计数器
@ -113,12 +115,13 @@ def createWorkBook(data_list):
# 第一列放关键词
ws.cell(row=index, column= 1).value = keywords
# 第二列放内容
ws.cell(row=index, column= 2).value = data[keywords]
ws.cell(row=index, column= 2).value = data_list[keywords]
index += 1
# 获取一个唯一的文件名
new_filename = create_uuid() + '.xlsx'
addr_cache = '/data/api/saveExcel/' + new_filename
# 保存到指定地址用nginx暴露这个文件夹映射到/excel/get
wb.save('../saveExcel' + new_filename)
wb.save(addr_cache)
# 返回给前端的相对地址
addr = '/excel/get/' + new_filename
except Exception as e:
@ -136,8 +139,7 @@ def getkeywordsList():
arr = res_list['arr']
# 最终数据集
data_list = {}
for i in arr:
data = arr[i]
for data in arr:
# 形成键值对方便遍历
data_list[data['keywords']] = data['content']
return {'errcode': 200, 'errmsg': 'ok', 'data_list': data_list}