我正在开发一个内部系统,其目的与Google文档非常类似。我正在执行的主要部分模仿他们基于Web的电子表格实现。由于多种原因,我无法使用Google Docs或ZK,它具有非常强大的Spreadsheet API。我选择POI 3.7作为我的Excel电子表格处理的起点。将单个POI SS表转换为字节[] - Java
当前用户上传Excel电子表格时,我将文件byte []存储在我们的数据库中作为blob。当用户想要查看电子表格时,我拉出字节[],构建工作簿,并将其推送到客户端UI进行编辑。推向用户界面并不是我关心的问题。当用户对电子表格进行编辑时,我将编辑推送到服务器并将其存储在堆栈中,并且只在用户按下“保存”按钮时才应用更新。保存时,我将工作簿拉出数据库,进行更改并将工作簿推回到数据库。这样,我不会记住它。毫不奇怪,除了多个用户开始执行此操作之外,所有这些都非常快,显然,Workbooks会像其他帖子中描述的那样使用内存。
用户每次只会更新一个选项卡,为什么我需要打开整个工作簿?当用户最初上载excel电子表格时,我可以拉出每张表格,将每个表格转换为一个字节[]并将每个表格保存为独立的“工作表”数据库记录? POI表有受保护的“#write(Stream)”方法,但我不想进入重新编译POI的业务。我也不想将每个单元格分解为新的数据库条目。你们会首先做这个不同吗?
后端是java/spring/jdbc。出于内部原因,这些是我坚持使用的技术。
欢迎来到SO,Eric! “我被卡住了。” < - 某种程度上听起来很负面:-) – Wivani