Spaces:
Build error
Build error
import gradio as gr | |
import pulp | |
import pandas as pd | |
import openpyxl | |
import requests | |
w_style=""" | |
<style> | |
footer {visibility: hidden; } | |
</style> | |
""" | |
html_code=''' | |
<iframe src="https://web.powerva.microsoft.com/environments/Default-51a58d6c-4fcf-4b75-8608-d00bf7f244d5/bots/new_bot_830e155fc862429e89683426b31c9bd5/webchat" height="500" frameborder="1" style="width:100%"></iframe> | |
''' | |
ht_text=''' | |
<head> | |
<title>吹牛逼</title> | |
<link rel="stylesheet" href="https://powerquery.anvil.app/_/theme/pluginsCss.css" /> | |
<link rel="stylesheet" href="https://powerquery.anvil.app/_/theme/plugins.css" /> | |
<link rel="stylesheet" href="https://powerquery.anvil.app/_/theme/luckysheet.css" /> | |
<link rel="stylesheet" href="https://powerquery.anvil.app/_/theme/iconfont.css" /> | |
<script src="https://powerquery.anvil.app/_/theme/plugin.js"></script> | |
<script src="https://mengshukeji.github.io/LuckysheetDemo/luckysheet.umd.js"></script> | |
<script src="https://powerquery.anvil.app/_/theme/xlsx.full.min.js"></script> | |
<script> | |
$(function () { | |
var options = { | |
container: "pq", | |
functionButton: '<button id="download" class="btn btn-primary" style="padding:3px 6px;font-size: 12px;margin-right: 10px;" onclick="FX()">下载</button>', | |
title: "畅心测试", | |
lang: "zh", | |
userInfo: {userName:"畅心",userImage: "https://pbihub.cn/uploads/images/201809/12/44/LWNFWHW7Gj.png"}, | |
data: [{"name":"sheet1","index":0,"status":1,"order":0,"color":"#ff0066","row":18,"column":12,"celldata":luckysheet.transToCellData([["维度表","度量值名称","表达式"],])}] | |
} | |
luckysheet.create(options) | |
}); | |
function FX(){ | |
var data = that.luckysheet.getAllSheets()[0].data; | |
var out = XLSX.utils.book_new(),aoa = [[]]; | |
data.forEach(function(rows, index) { | |
aoa[index] = []; | |
for(var column = 0; column < rows.length - 1; column++) { | |
aoa[index][column] = rows[column] ? rows[column] : ''; | |
} | |
}); | |
var ws = XLSX.utils.aoa_to_sheet(aoa); | |
XLSX.utils.book_append_sheet(out, ws, 'sheet1'); | |
XLSX.writeFile(out, 'sheet1.xlsx', {}); | |
return true; | |
} | |
</script> | |
</head> | |
<body> | |
<div id="md" style="position: absolute;z-index: 1000000;left: 0px;top: 0px;bottom: 0px;right: 0px; background: rgba(255, 255, 255, 0.8); text-align: center;font-size: 40px;align-items:center;justify-content: center;display: none;">Downloading</div> | |
<p style="text-align:center;"> <input style="font-size:16px;" type="file" id="test" name="test" change="demoHandler" /></p> | |
<div id="pq" style="margin:0px;padding:0px;position:absolute;width:100%;left: 0px;top: 50px;bottom: 0px;outline: none;"></div> | |
<script src="https://powerquery.anvil.app/_/theme/luckyexcel.umd.js"></script> | |
<script> | |
function demoHandler(){ | |
let upload = document.getElementById("test"); | |
let mask = document.getElementById("md"); | |
if(upload){ | |
window.onload = () => { | |
upload.addEventListener("change", function(evt){ | |
var files = evt.target.files; | |
if(files==null || files.length==0){alert("没有待加载文件!");return;} | |
let name = files[0].name; | |
let suffixArr = name.split("."), suffix = suffixArr[suffixArr.length-1]; | |
if(suffix!="xlsx"){alert("目前只支持xlsx文档导入!");return;} | |
LuckyExcel.transformExcelToLucky(files[0], function(exportJson, luckysheetfile){ | |
if(exportJson.sheets==null || exportJson.sheets.length==0){alert("读取失败, 目前不支持xls文件!");return;} | |
console.log(exportJson, luckysheetfile); | |
window.luckysheet.destroy(); | |
window.luckysheet.create({ | |
container: 'pq', | |
showinfobar:false, | |
data:exportJson.sheets, | |
title:exportJson.info.name, | |
userInfo:exportJson.info.name.creator | |
}); | |
}); | |
}); | |
} | |
} | |
} | |
demoHandler(); | |
</script> | |
</body> | |
''' | |
demo = gr.Blocks() | |
def fx1(x): | |
return f"欢迎练习Gradio, {x}!" | |
def fx2(x,y): | |
m=pulp.LpProblem() | |
x=list(map(int,x.split(','))) | |
t=[pulp.LpVariable('t'+str(i),cat=pulp.LpBinary) for i in range(len(x))] | |
m+=pulp.lpDot(x,t) | |
m+=(pulp.lpDot(x,t)==y) | |
m.solve() | |
resu={'data':[x[i] for i in range(len(t)) if pulp.value(t[i])]} | |
return resu | |
def fx3(x): | |
df=pd.read_excel(x,header=0,engine='openpyxl') | |
return df | |
def fx4(x): | |
url_s="https://tts.baidu.com/text2audio?tex="+x+"&cuid=baike&lan=ZH&ie=utf-8&ctp=1&pdt=301&vol=9&rate=32&per=0" | |
return "点击音频文件 [voice]("+url_s+")" | |
def fx5(): | |
return html_code | |
def fx6(): | |
return ht_text | |
with demo: | |
gr.Markdown( | |
""" | |
# WEB APP测试应用! | |
. | |
""") | |
with gr.Tabs(): | |
with gr.TabItem("测试1"): | |
text_input = gr.Textbox(placeholder='请输入测试字符串,如"畅心"',label="请输入测试内容",show_label=True) | |
text_output = gr.Textbox(label="输出结果",show_label=True) | |
tj_button = gr.Button("提交>>") | |
with gr.TabItem("凑数"): | |
val_input = [gr.Textbox(placeholder='请输入凑数序列,如"1,3,5,10,16,54,32,48,6,7"',label="请输入待凑数序列",show_label=True),gr.Number(value=80,label="请输入凑数和值",show_label=True)] | |
json_output = gr.JSON(label="输出运算结果",show_label=True) | |
cs_button = gr.Button("开始凑数>>") | |
with gr.TabItem("文件交互"): | |
file_input = gr.File(file_count="single",label="请选择需要读取的excel文件",show_label=True) | |
table_output = gr.Dataframe(label="输出读取的表格数据",show_label=True) | |
dq_button = gr.Button("开始读取>>") | |
with gr.TabItem("TTS"): | |
TS_input = gr.Textbox(placeholder='请输入测试字符串,如"欢迎测试字符串转语音功能模块"',label="请输入测试内容",show_label=True) | |
audio_output = gr.Markdown(label="点击生成音频文件",show_label=True) | |
tts_button = gr.Button("开始转换>>") | |
with gr.TabItem("Power Virtual Agents"): | |
pva_button = gr.Button("调用机器人对话>>") | |
pva_output=gr.HTML(label="机器人聊天窗口",show_label=True) | |
with gr.TabItem("Luckysheet交互"): | |
lk_button = gr.Button("调用Luckysheet>>") | |
lk_output=gr.HTML(label="国产开源表格工具",show_label=True) | |
tj_button.click(fx1, inputs=text_input, outputs=text_output) | |
cs_button.click(fx2, inputs=val_input, outputs=json_output) | |
dq_button.click(fx3, inputs=file_input, outputs=table_output) | |
tts_button.click(fx4, inputs=TS_input, outputs=audio_output) | |
pva_button.click(fx5, inputs=[],outputs=pva_output) | |
lk_button.click(fx6, inputs=[],outputs=lk_output) | |
demo.launch() |