一次Excel表格的快速Web化過程
時間:2023-07-26 00:15:01 | 來源:網站運營
時間:2023-07-26 00:15:01 來源:網站運營
一次Excel表格的快速Web化過程:?需求:裝三臺液晶電視,用于展示各級部每天的日常檢查評比結果。
任務:將各年級上傳的xlsx文件,動態(tài)發(fā)布到網站,電視定時刷新訪問。
分析:幾乎無并發(fā),只涉及幾臺機器聯網,適合最輕量級的方案。
方向:用輕量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。
總結一下經驗,也做為將來課堂上程序教學的培養(yǎng)方向:
- 效率優(yōu)先:盡量設計簡單高效的步驟,讀入數據庫就是舍近求遠。
- 知識檢索:先學習,再改進,就是新課標倡導的數字化學習與創(chuàng)新。
- 夯實基礎:更多精力解決新問題,而非文件讀寫、字符串替換等基礎。
更多技術文章,請關注: