这种情况我应该采用哪种 gui 方案最简单

2023-03-26 10:21:23 +08:00
 zjsxwc
情况是这样的:
公司内部有个导出 Excel 的功能,
Excel 文件里每行包括一个图片,
目前是直接服务端生成 Excel 文件,
但是运行了一段时间后要导出的 Excel 文件越来越大,
极端情况单文件大小会到 2G 多,而且生成 Excel 时服务器压力也越来越大,
主要问题是 Excel 里图片越来越多,

我现在考虑不提供导出 Excel ,只提供导出 json 文件,然后用一个 gui 程序让用户在自己的电脑上把 json 转化为 Excel 文件,gui 程序就是解析 json ,下载图片,最后转化成一个 Excel 文件。

那么这种情况我应该采用哪种 gui 方案最简单,要求是能 win 、macos 支持,双击就能运行,体积越小越好。
1662 次点击
所在节点    程序员
13 条回复
zyxk
2023-03-26 10:36:29 +08:00
看这要求也没有用到 gui 啊, 用 golang 直接写一就行了吧. 解析 json, 下载图片, 转换为 excel , 命令行输出显示个进度就行了.
coderluan
2023-03-26 10:48:29 +08:00
janus77
2023-03-26 13:26:39 +08:00
如果你服务端压力很大,那挪到客户端应该也很大吧,甚至客户端的配置不行的情况下,对于用户来说的体验就是更慢了。你有巨型 json ,解析本来就非常花时间的,又是多一部分开销。。。
Al0rid4l
2023-03-26 16:36:01 +08:00
Tauri?
或者 https://github.com/bramblex/niva 可以看看
EscYezi
2023-03-26 17:38:52 +08:00
看起来主要是因为图片太多导致 excel 过大,进而导致服务器内存压力过大,担心影响其他业务?
其实可以考虑改成异步的方式,提交导出请求后将任务加入队列,等文件生成好在网页上下载。还可再进一步将该生成任务单独部署。
如果要做单独客户端的话可能要考虑的更多,比如版本更新如何维护等等
zjsxwc
2023-03-26 21:14:23 +08:00
@janus77
@EscYezi
啊,公司只给了一个云服务器,2c8g ,3m 带宽,
搞个异步队列服务器条件不允许。
虽然访问频率低,但多个人下载几百兆的文件带宽也吃不消。
员工自己电脑来合成一个 Excel 文件,不会有员工电脑配置低的问题。
lawsiki
2023-03-26 21:55:57 +08:00
我用的 go 的 fyne 写的 gui ,用起来还行,也是一个导 excel 的工具
duan602728596
2023-03-27 13:03:10 +08:00
这个搞个 html 网页不就好了,
1. js 有成熟的库比如 xlsx.js 、sheet.js 来处理 excel
2. 解析 json so easy
3. 浏览器请求图片可以有强缓存,不需要每次都下载,节省带宽,节省时间
4. 浏览器可以多线程处理,不用担心处理的时候无响应
zjsxwc
2023-03-27 14:56:41 +08:00
@duan602728596
我也考虑过这个方案,但是我看了一个 js 的 excel 库,都不支持在 excel 文件 cell 里插入图片。
zjsxwc
2023-03-27 14:57:07 +08:00
@duan602728596
我也考虑过这个方案,但是我考察了几个 js 的 excel 库,都不支持在 excel 文件 cell 里插入图片。
duan602728596
2023-03-27 15:21:19 +08:00
@zjsxwc exceljs 就可以啊
zjsxwc
2023-03-27 16:16:38 +08:00
zjsxwc
2023-03-27 16:21:34 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/927220

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX