iT邦幫忙

0

【PHP】利用PHPExcel套件,在上傳檔案後,線上編輯該Excel內容,最後存入資料庫

不好意思,因為對PHPExcel不熟,目前只有實作到上傳XLSX檔案到主機上,然後利用PHPExcel讀取資料出來。

但是主管的需求是希望能在線上編輯該Excel檔案,然後將編輯過的Excel檔案儲存到資料庫中。

請問有沒有先進做過類似的功能呢?如果有,該利用那些方式實作?或者是網路上有沒有技術文件可以參考(我目前找了兩天都沒找到)

在此先感謝各位先進以及大神!

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2021-10-05 14:01:39 檢舉
google sheet + google api...
自己幹excel會不會太硬了點?

真要自幹的話
https://github.com/rockboom/SheetJS-docs-zh-CN
連城 iT邦新手 5 級 ‧ 2021-10-05 14:49:22 檢舉
請問 為甚麼不先把excel 資料丟進去DB
再用web 去實作線上編輯的功能?
alan0219 iT邦新手 5 級 ‧ 2021-10-05 14:54:57 檢舉
線上編輯的功能哪邊有範例可以參考呢?
froce iT邦大師 1 級 ‧ 2021-10-05 15:29:13 檢舉
線上編輯這個要求太龐大了,一般來說像PHPExcel這種後端套件都是讓你做同樣的動作批次處理,並不是讓使用者進行線上操作。
你要讓使用者進行UI操作,那你必須在前端建立相關的複雜操作,關聯PHPExcel的對應函式,這工作量不是一個人可以完成的。

真的建議用google sheet之類,人家寫好的共同協做平台,再寫入資料庫。
或根本就不要用excel,直接網頁input,反正基本上都是輸入資料而已。
ckp6250 iT邦好手 1 級 ‧ 2021-10-05 15:43:50 檢舉
https://nextcloud.com/collaboraonline/

不知合用否?

另外,https://handsontable.com/demo
我有用過,有點像又不太像 excel,但可以編輯。
如果你的需求僅是讀取資料再回寫,PHPExcel 已經可以應付你的需求,讀出 excel 動態產生欄位及資料,最後在將編輯後的資料回寫 excel
froce iT邦大師 1 級 ‧ 2021-10-05 16:18:20 檢舉
> 如果你的需求僅是讀取資料再回寫,PHPExcel 已經可以應付你的需求,讀出 excel 動態產生欄位及資料,最後在將編輯後的資料回寫 excel

不是啊,這樣的話根本不需要這麼麻煩,直接網頁化就好。XD
alan0219 iT邦新手 5 級 ‧ 2021-10-05 16:26:27 檢舉
> 如果你的需求僅是讀取資料再回寫,PHPExcel 已經可以應付你的需求,讀出 excel 動態產生欄位及資料,最後在將編輯後的資料回寫 excel

有沒有線上可以參考的編輯範例呢?
alan0219 iT邦新手 5 級 ‧ 2021-10-05 16:27:04 檢舉
> 不是啊,這樣的話根本不需要這麼麻煩,直接網頁化就好。XD

對,有點像是網頁化的方式編輯,就像是Google文件這樣
2
小魚
iT邦大師 1 級 ‧ 2021-10-05 19:31:08

讀跟寫Excel都不難,
線上編輯這功能聽起來就不明確,
在功能不明的情況下,
保守估計一年...也不一定可以完成.

不過看能不能串Google的試算表,
直接在Google上編輯再想辦法抓下來,
這個就沒有試過了.

看更多先前的回應...收起先前的回應...
alan0219 iT邦新手 5 級 ‧ 2021-10-05 20:16:02 檢舉

這麼困難!?如果只是可以在線上新增儲存格編輯存檔或者拉公式呢?

小魚 iT邦大師 1 級 ‧ 2021-10-05 20:25:49 檢舉

你可以寫看看,
因為不知道需求要到甚麼樣的程度,
而且公式你全部都要自己處理喔.

alan0219 iT邦新手 5 級 ‧ 2021-10-05 20:47:26 檢舉

我現在連怎麼在網頁上顯示可編輯的表格都不懂,請問有參考的範例嗎?

froce iT邦大師 1 級 ‧ 2021-10-06 09:23:19 檢舉

你要自己做到像excel那樣的介面基本上是不可能的,有套件(就是sheet.js/spread.js),但要錢。

最簡單的方法就是用google的google sheet,然後下載來分析。
或是建立網頁,讓使用者輸入數據,公式由資訊建立,放在後端。(網頁化)

小魚 iT邦大師 1 級 ‧ 2021-10-06 13:13:10 檢舉

也不是不可能,
只是不實際

2
erictaiwan
iT邦新手 1 級 ‧ 2021-10-06 08:41:49

以下連結是 Excel like 的js套件,在業界很有名,但不是 php 套件。
這個工具只是給你一個參考,但老實建議不要給你的主管看,原因是這套工具要花錢採購但貴公司不會花錢買,主管還要你去想個不採購的方式作出來。
因為你的主管會認為都有現成品了,那自己公司花錢請來的人哪會作不出來,付薪水就是要員工想辦法作出來。但作出這種東西遠比我們想的還要難。光是花錢買工具後再好好實際上線應用,就可以讓我們忙很久很久了。

https://www.grapecity.com/spreadjs/designer/index.html

Kert iT邦新手 1 級 ‧ 2021-10-06 09:20:01 檢舉

老IT覺悟高 非IT出生的主管 都認為寫程式是同一種程式

1
chan15
iT邦新手 5 級 ‧ 2021-10-06 09:30:37

請你主管花錢,不然就不要異想天開了,這東西超難,難到 excel 是從微軟起家,自己的 office 365 線上 excel 卻比 Google 的 sheets 還難用,這也不是 PHP 的範疇,是前端功力要極高的團隊才刻的出來

0
gmlin
iT邦新手 5 級 ‧ 2021-10-06 15:49:16
1
犬千賀
iT邦新手 4 級 ‧ 2021-10-09 10:44:06

這些問題我都經歷過… 你的無奈我懂

極簡做法:SL大法!開放上傳下載Excel,供線下編輯檔案,完全不用管老闆喜歡用什麼介面。
趕時間的話這方式最快,後面慢慢開發。

簡單做法:檔案上傳到Share Cloud,然後給老闆Google sheets的Link。注意用戶權限問題

一般做法:可編輯的表格… 不用想太複雜
其實就是 form,欄位就是input,要做的就是 submit而已

技術點做法:承上,再搭配Js, Ajax 做些簡易的Filter、還有背景即時更新資料。就差不多像了

華麗點做法:承上,CSS style 處理的好,保證老闆愛用你的系統勝過Office系統!之後就不會一直用Excel要求你了

其實根本不難,公司用的就是我自己寫的。問題是能花多少時間而已。
也不用糾結在和Excel一模一樣,畢竟老闆平常使用的功能只有Edit、Sort、Filter,而其他Function 、Highlight、Total… 都是程式能處理掉的

我要發表回答

立即登入回答