我正在開發一個內部系統,其目的與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