一次Excel表格的快速Web化过程
时间:2023-07-26 00:15:01 | 来源:网站运营
时间:2023-07-26 00:15:01 来源:网站运营
一次Excel表格的快速Web化过程:需求:装三台液晶电视,用于展示各级部每天的日常检查评比结果。
任务:将各年级上传的xlsx文件,动态发布到网站,电视定时刷新访问。
分析:几乎无并发,只涉及几台机器联网,适合最轻量级的方案。
方向:用轻量Web框架,接受用户上传表格,然后转网页展示。
实现Excel转网页其实这一 步,可以用直接另存为的方式实现。但是微软生成的这个htm文件里面全是JS,纷繁芜杂,不利于二次修改和补充。理想的情况是,用html里面的table标签来生成。经过网络检索,我们选择用著名的pandas模块(依赖xlrd模块)来自动生成。
以上代码其实就是文件读写,最终我们是要往out文件夹写html文件,过程是分块拼起来的。
- 先写入头部的固定部分: 指定编码、定时刷新、表格样式控制
- 再写中间合并过的部分:通过替换部分表头解决pandas无单元格合并问题
- 后写网页底自定义部分:添加一点个性化文字的东西
html头、样式部分
替换合并单元格部分
实现Web响应既然都用Python来做了,就怎么省时省力怎么来,毕竟是义务劳动。早点忙完了这个活,然后,就可以:
开始忙下个活了……
所以直接上框架,Flask这样的轻量级框架走起,不过今天找到一个更轻量级的框架,写几句代码,就能实现Web交互-
bottle。
这货居然就一个py文件,所以你可以pip安装,也可以直接import这个bottle.py。用它的files.get方法就可以拿到用户提交,写python跑功能,最后把结果返回给用户了。
这种框架的好处是,不需要配置Tomcat、IIS这样的Web服务器,写出来的server.py本身,即能响应用户,部署起来飞快。
代码其实我基本是从CSDN照扒的,贴下出处:
https://bbs.csdn.net/topics/392190705最后这里比较关键,实现任意电脑可以访问本机的89端口打开站点。
最终运行效果如下:
服务器
自管会上传界面
电视刷新展示界面
以上就是本次问题解决的过程,还是走了一些弯路,大概耗时2h。
总结一下经验,也做为将来课堂上程序教学的培养方向:
- 效率优先:尽量设计简单高效的步骤,读入数据库就是舍近求远。
- 知识检索:先学习,再改进,就是新课标倡导的数字化学习与创新。
- 夯实基础:更多精力解决新问题,而非文件读写、字符串替换等基础。
更多技术文章,请关注: