flask打开Excel文件,并传给luckysheet显示

flask是个很好的网站框架,luckysheet的是一个很好的采用JS编写的表格框架,由于我一直采用flask,没有学习过javascript,所以想利用方便的lucksheet,如何结合呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#coding:utf8
from flask import Flask
from flask import request,render_template
import pandas as pd
import numpy as np
# from werkzeug import secure_filename
import os

app=Flask(__name__)

# 以下函数把一个excel表格读出,然后把数据转换成luckysheet的celldata,以便采用luckysheet显示在网页上
def pands_to_luckysheet(file_name):
sheet_data=[] # 定义一个空列表

data_f = pd.read_excel(file_name)

none_nan=(data_f.isnull()) | (data_f.apply(lambda x: str(x).isspace())) # 找到所有的None
data_f=data_f[~none_nan] # 把所有的None替换为nan
# print("data_f2=",data_f)
data_f=data_f.fillna("") # 把所有的nan替换为空字符
# print("data_f3=",data_f)
row=len(data_f) # 行数
col=len(data_f.columns) #列数
# 打算把数据转换为luckysheet的celldata数据
for i in range(row):
for j in range(col):
# sheet_data[k]=[{"r":i,"c":j,"v":{"v":data_f.iloc[i,j]}}]
# k=k+1
sheet_data.append({"r":i,"c":j,"v":{"v":data_f.iloc[i,j],"m":data_f.iloc[i,j]}}) # 添加列表项
return sheet_data
# print("测试luckckyshee数据转换")
# print(sheet_data)

@app.route("/table_channel")
def table_channel():
sheet_data=pands_to_luckysheet("/home/mywork/2021/汇总.xlsx")
# print("sheet_data=",sheet_data)
return render_template("index.html" ,lucky_data=sheet_data)