線文檔,顧名思義就是通過(guò)在線的方式對(duì)文檔進(jìn)行操作,實(shí)現(xiàn)如數(shù)據(jù)填報(bào)、數(shù)據(jù)計(jì)算、可視化、在線導(dǎo)入導(dǎo)出 Excel 文件、自定義系統(tǒng)外觀、工具欄、在網(wǎng)頁(yè)內(nèi)滿足單人或多人編輯并將文件上傳至服務(wù)端保存的功能。
國(guó)內(nèi)外常見(jiàn)的在線文檔,包括:微軟Office Online、Google文檔、石墨文檔、騰訊文檔、飛書(shū)、語(yǔ)雀等。
通過(guò)對(duì)比這些軟件產(chǎn)品,可以將它們的主要功能點(diǎn),概括為三個(gè)層面:數(shù)據(jù)填報(bào)、協(xié)同編輯和類(lèi)Excel的呈現(xiàn)方式。
可以說(shuō),只要滿足了上述需求,就可以開(kāi)發(fā)出一款優(yōu)秀的在線文檔。
而SpreadJS純前端表格控件,恰好滿足。
下面,我們就通過(guò)Spring Boot + Vue.js的前后分離開(kāi)發(fā)技術(shù),演示如何借助 SpreadJS 搭建一款簡(jiǎn)單的在線文檔系統(tǒng)。
在線文檔系統(tǒng)示例
該系統(tǒng)集成了SpreadJS表格控件,目前已經(jīng)實(shí)現(xiàn)了在線讀取、編輯Excel 文檔的功能,文末提供了示例代碼下載,大家可以按照 Readme文檔中的步驟運(yùn)行。
PS:歡迎大家前往SpreadJS 產(chǎn)品官網(wǎng),了解并學(xué)習(xí)這款純前端表格組件,以實(shí)現(xiàn)更多在線文檔的功能。
如下是系統(tǒng)運(yùn)行截圖。
進(jìn)入頁(yè)面(File List的展示文件均為服務(wù)器上的文件):
單擊 Excel文件,右側(cè)會(huì)顯示該文件的詳細(xì)信息:
雙擊文件夾:
點(diǎn)擊某個(gè) Excel文件,打開(kāi)編輯文件的彈框:
在線對(duì)Excel文件進(jìn)行修改、刪除:
技術(shù)棧
關(guān)鍵步驟
1、 實(shí)現(xiàn)該系統(tǒng)的相關(guān)依賴包都寫(xiě)在package.json里,執(zhí)行命令 npm install 即可安裝,主要有:
"@grapecity/spread-sheets": "^13.0.5",
"@grapecity/spread-sheets-resources-zh": "^13.0.5",
"@grapecity/spread-sheets-vue": "^13.0.5",
"@grapecity/spread-sheets-pdf": "^13.0.5",
"@grapecity/spread-sheets-print": "^13.0.5",
"@grapecity/spread-sheets-charts": "^13.0.5",
"@grapecity/spread-sheets-shapes": "^13.0.5",
2、 在SpreadJS.vue文件中引入 SpreadJS 相關(guān)安裝包:
import "@grapecity/spread-sheets-vue";
import * as GC from "@grapecity/spread-sheets";
import "@grapecity/spread-sheets-charts";
import "@grapecity/spread-sheets-shapes";
3、 在App.vue文件中引入 SpreadJS 的樣式文件、中文資源文件:
import '@grapecity/spread-sheets-resources-zh'
import '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css'
4、 List.vue文件中是主要的頁(yè)面邏輯,雙擊文件時(shí)彈出彈框,彈框中引入了自定義的組件:
<MySpreadJS :mySpread="mySpread" :filePath="filePath" @done="childDone" :closeSpread='closeSpread'>
</MySpreadJS>
5、 mySpread變量中是從后臺(tái)返回的文件流,傳給MySpreadJS組件,子組件接收到數(shù)據(jù)后,調(diào)用excelIO.open方法打開(kāi)Excel 文件流,
spreadInitHandle: function(spread) {
this.spread=spread;
let self=this;
let excelIO=new ExcelIO.IO();
excelIO.open(
this.spreadblob as Blob,
function(json) {
let workbookObj=json;
self.spread.fromJSON(workbookObj);
},
function(e) {
alert(e.errorMessage);
});
},
6、 在線編輯Excel文件,并保存。借助excelIO.save方法可以將修改后的文件流傳給后臺(tái),實(shí)現(xiàn)文件的修改功能:
excelIO.save(
curjson,
function(fileblob) {
let formData=new FormData();
formData.append("filePath", self.filePath);
formData.append("type", "update");
formData.append("excelFile", fileblob);
httpUtils.post("/filemanager/savefile", formData).then(response=> {
self.$message({
type: "success",
message: "保存成功!"
});
self.$emit("done");
});},
function(e) {
//process error
console.log(e);
}
);
后臺(tái)接口介紹
獲取某路徑下的文件集合:getfolder
獲取Excel文件內(nèi)容:getFile
保存文件:savefile
刪除文件:deletefile
以上就是Vue+SpringBoot+SpreadJS 實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的在線文檔,如需了解詳細(xì)的實(shí)現(xiàn)步驟。
SpreadJS除提供示例中在線讀取、編輯Excel 文檔的功能外,還提供了Web Excel 組件開(kāi)發(fā)、數(shù)據(jù)填報(bào)、Excel 類(lèi)報(bào)表設(shè)計(jì)等功能。除此之外,您還可通過(guò)調(diào)用API對(duì)SpreadJS進(jìn)一步擴(kuò)展,滿足協(xié)同編輯、多級(jí)上報(bào)、填報(bào)暫存等更多場(chǎng)景的業(yè)務(wù)需要,歡迎下載試用。
今天的內(nèi)容就到這了,不要忘了在評(píng)論區(qū)留下的意見(jiàn)和建議!
點(diǎn)擊“了解更多”即可立即免費(fèi)體驗(yàn)!
見(jiàn)即所得,不是很熟悉這個(gè)詞嗎?所見(jiàn)即所得代表什么,你看到的就是你得到這通常意味著一個(gè)編輯應(yīng)用程序使用,以說(shuō)明正在編輯的內(nèi)容將完全一樣的最終結(jié)果。與其他文本編輯器相比,“所見(jiàn)即所得” 文本編輯器非常友好。
它指已操作的軟件或應(yīng)用程序所擁有的功能,以及它們具有的許多其他功能。在使用中,此文本編輯器不需要像其他文本編輯器中那樣編寫(xiě)語(yǔ)法,因?yàn)樗鋫淞藞D標(biāo),只需要單擊將要使用并自動(dòng)格式化的圖標(biāo)之一即可。
此外,該文本編輯器還具有其他優(yōu)勢(shì),例如能夠顯示一頁(yè)文本,與圖形,電子表格集成,在一個(gè)文檔中顯示照片,自動(dòng)更正,超媒體,超文本等等。下面是一些用于網(wǎng)頁(yè)的所見(jiàn)即所得文本編輯器:
CKEditor是一個(gè)HTML 文本編輯器,用于并旨在幫助您創(chuàng)建和管理內(nèi)容布局。該文本編輯器中有許多完整的功能,如可以從Microsoft Word移動(dòng),還有額外的部件或工具,能夠拖動(dòng)和下降圖片和上傳文件,以及更多。
TinyMCE是一個(gè)基于Javascript的獨(dú)立Web平臺(tái),該文本編輯器根據(jù)LGPL許可作為開(kāi)源應(yīng)用程序發(fā)布。該文本編輯器旨在與JavaScript 庫(kù)(例如React,Vue.js,AngularJS)和內(nèi)容管理系統(tǒng)(例如Joomla和WordPress)輕松集成。另外,一個(gè)文本編輯器它還具有許多完整功能,包括4個(gè)軟件包,其中Community是免費(fèi)的,Premium,Pro和Enterprice是收費(fèi)的。相對(duì)而言Community實(shí)際上非常完整,但是沒(méi)有上傳圖像的功能。
Summernote是一個(gè)非常簡(jiǎn)單且免費(fèi)的文本編輯器。該文本編輯器使用base64編碼,因此它不僅可以用于編輯文本,而且還可以直接上傳圖像,而無(wú)需進(jìn)行任何圖像處理。該文本編輯器由jQuery和Bootstrap組成,這是一個(gè)簡(jiǎn)單的UI,因此你可以更輕松地自定義外觀或添加和刪除工具欄。
Froala是HTML WYSIWYG 編輯器,它易于集成且易于使用,而無(wú)需鍵入大量代碼。此插件需要jQuery 1.11.0或更高版本以及Font Awesome 4.4.0。該插件提供了用于PHP,Node.JS,.NET,Java和Python的服務(wù)器端SDK。該插件有4種許可,分別是:?jiǎn)蝹€(gè)網(wǎng)站許可,開(kāi)發(fā)者許可,商業(yè)許可和OEM許可。這個(gè)插件還有一個(gè)帶有多個(gè)開(kāi)發(fā)框架的連接器,例如:CakePHP,Joomla,Symfony,Yii,Django,Ruby on Rails,AngularJS,Meteor。
Redactor是一個(gè)內(nèi)容編輯器,可提供流暢,整潔,靈活的設(shè)計(jì),并為其用戶提供無(wú)限的支持。該內(nèi)容編輯器與MODX緊密集成,提供簡(jiǎn)單的用戶界面,并配有清晰易懂的圖標(biāo),調(diào)制解調(diào)器和功能。可以根據(jù)需要激活或停用可用的高級(jí)功能,以便它可以控制用戶活動(dòng)。
Quilljs是100%免費(fèi)的文本編輯器,它看起來(lái)簡(jiǎn)單而優(yōu)雅。該文本編輯器提供了一種配置,你可以在其中自定義外觀以及添加和刪除工具欄。該文本編輯器也受API驅(qū)動(dòng),因此可以使用JSON作為其輸入和輸出來(lái)始終如一地確定性地工作。此外,此文本編輯器是跨平臺(tái)的,因此它支持臺(tái)式機(jī),平板電腦或移動(dòng)設(shè)備上的所有現(xiàn)代瀏覽器。
自學(xué)的話,首先要理解html的作用。html,hypertext markup language,超文本標(biāo)記語(yǔ)言,用來(lái)展示網(wǎng)頁(yè)中的內(nèi)容。同時(shí) HTML 也是我們學(xué)習(xí)前端開(kāi)發(fā)的基礎(chǔ)。隨著 web 前端技術(shù)的飛速發(fā)展,HTML 和 CSS 也成為了編程者的必備技能。而要想做一個(gè)網(wǎng)頁(yè)光會(huì)這一門(mén)語(yǔ)言是不夠的,還需要自學(xué)css,JavaScript。其中html和css較JavaScript容易。
可以這樣理解,HTML,是一個(gè)文件類(lèi)型,可以被瀏覽器解析。如果不使用瀏覽器打開(kāi),我們看到的將是一行行代碼,在瀏覽器中打開(kāi)以后呢,就會(huì)出現(xiàn)一些靜態(tài)效果了。下面介紹一下初步的一些HTML語(yǔ)法知識(shí)。
HTML 標(biāo)簽非常注重語(yǔ)義化,很多標(biāo)簽都是通俗易懂的,大大降低了我們學(xué)習(xí)的難度。這套 HTML 教程更是為了避免初學(xué)者走太多的彎路,指出了許多其它 HTML 教程中沒(méi)有提到的學(xué)習(xí)誤區(qū),并且給初學(xué)者提供了一個(gè)具體的學(xué)習(xí)思路,除了注重 HTML 知識(shí)點(diǎn)的講解,更加注重 web 前端開(kāi)發(fā)技巧和思維。幫助大家快速入門(mén),其中包含大量的實(shí)踐經(jīng)驗(yàn),將知識(shí)系統(tǒng)化,濃縮為精華,用通俗易懂的語(yǔ)言直指網(wǎng)頁(yè)設(shè)計(jì)初學(xué)者的痛點(diǎn)。
學(xué)海無(wú)涯,苦做舟,學(xué)習(xí)如同修行,只有潛心才可以領(lǐng)悟真諦。HTML 中的每一個(gè)小知識(shí)點(diǎn)都可以讓頁(yè)面發(fā)生不同的變化,現(xiàn)在就讓我們行動(dòng)起來(lái),跟著 HTML 教程的步伐,讓我們一起走進(jìn) HTML 的世界。
超級(jí)文本標(biāo)記語(yǔ)言文檔制作不是很復(fù)雜,但功能強(qiáng)大,支持不同數(shù)據(jù)格式的文件鑲?cè)耄@也是萬(wàn)維網(wǎng)(WWW)盛行的原因之一,其主要特點(diǎn)如下:
● 簡(jiǎn)易性:超級(jí)文本標(biāo)記語(yǔ)言版本升級(jí)采用超集方式,從而更加靈活方便。
● 可擴(kuò)展性:超級(jí)文本標(biāo)記語(yǔ)言的廣泛應(yīng)用帶來(lái)了加強(qiáng)功能,增加標(biāo)識(shí)符等要求,超級(jí)文本標(biāo)記語(yǔ)言采取子類(lèi)元素的方式,為系統(tǒng)擴(kuò)展帶來(lái)保證。
● 平臺(tái)無(wú)關(guān)性:雖然個(gè)人計(jì)算機(jī)大行其道,但使用MAC等其他機(jī)器的大有人在,超級(jí)文本標(biāo)記語(yǔ)言可以使用在廣泛的平臺(tái)上,這也是萬(wàn)維網(wǎng)(WWW)盛行的另一個(gè)原因。
● 通用性:另外,HTML是網(wǎng)絡(luò)的通用語(yǔ)言,一種簡(jiǎn)單、通用的全置標(biāo)記語(yǔ)言。它允許網(wǎng)頁(yè)制作人建立文本與圖片相結(jié)合的復(fù)雜頁(yè)面,這些頁(yè)面可以被網(wǎng)上任何其他人瀏覽到,無(wú)論使用的是什么類(lèi)型的電腦或?yàn)g覽器。
B(Browser)/S(Server)架構(gòu)方向,也是我們以后主攻方向
我們以后主要為企業(yè)內(nèi)部提供解決方案,例如:企業(yè)內(nèi)部的辦公系統(tǒng)、供應(yīng)鏈管理系統(tǒng)、客戶關(guān)系管理系統(tǒng)等,而這些系統(tǒng)通常對(duì)界面的表現(xiàn)要求較低,對(duì)業(yè)務(wù)處理和數(shù)據(jù)處理要求較高,并且要求降低升級(jí)維護(hù)的成本,B/S架構(gòu)可以更好的被企業(yè)接受,所以我們以后主要的方向是開(kāi)發(fā)基于B/S架構(gòu)的應(yīng)用,B/S架構(gòu)的開(kāi)發(fā)通常又被叫做Web開(kāi)發(fā),Web開(kāi)發(fā)通常包括Browser瀏覽器端的開(kāi)發(fā)以及Server服務(wù)器端的開(kāi)發(fā)。
雖然我們是學(xué)習(xí)Java后臺(tái)服務(wù)器編程,但是前端頁(yè)面編寫(xiě)要了解,能看懂,簡(jiǎn)單的頁(yè)面效果可以實(shí)現(xiàn)即可;
創(chuàng)建一個(gè)以 .html或 .htm 結(jié)尾的文件,用文本編輯器打開(kāi)就可以開(kāi)發(fā)
用瀏覽器打開(kāi)以.html或.htm的文件就可以自上而下解析執(zhí)行,不需要編譯
● <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
● DTD文件的作用
● 幫助你編寫(xiě)合法的代碼
● 它讓瀏覽器正確地顯示器代碼,或者說(shuō)DTD只是寫(xiě)給檢查器看的
HTML規(guī)范是由w3c負(fù)責(zé)制定的,W3C是世界萬(wàn)維網(wǎng)聯(lián)盟(World Wide Web:www)
FireFox、Google、IE
<>表示開(kāi)始標(biāo)記
</>表示結(jié)束標(biāo)記
<html>開(kāi)始標(biāo)簽
</html>結(jié)束標(biāo)簽
html為元素
HTML 元素指的是從開(kāi)始標(biāo)簽(start tag)到結(jié)束標(biāo)簽(end tag)的所有代碼。
● HTML 元素以開(kāi)始標(biāo)簽起始
● HTML 元素以結(jié)束標(biāo)簽終止
● 元素的內(nèi)容是開(kāi)始標(biāo)簽與結(jié)束標(biāo)簽之間的內(nèi)容
● 某些 HTML 元素具有空內(nèi)容(empty content)
● 空元素在開(kāi)始標(biāo)簽中進(jìn)行關(guān)閉(以開(kāi)始標(biāo)簽的結(jié)束而結(jié)束)
● 大多數(shù) HTML 元素可擁有屬性
大多數(shù) HTML 元素可以嵌套(可以包含其他 HTML 元素)。
HTML 文檔由嵌套的 HTML 元素構(gòu)成。
上面的例子包含三個(gè) HTML 元素。
● <p> 元素:
這個(gè) <p> 元素定義了 HTML 文檔中的一個(gè)段落。
這個(gè)元素?fù)碛幸粋€(gè)開(kāi)始標(biāo)簽 <p>,以及一個(gè)結(jié)束標(biāo)簽 </p>。
元素內(nèi)容是:This is my first paragraph。
● <body> 元素:
<body> 元素定義了 HTML 文檔的主體。
這個(gè)元素?fù)碛幸粋€(gè)開(kāi)始標(biāo)簽 <body>,以及一個(gè)結(jié)束標(biāo)簽 </body>。
元素內(nèi)容是另一個(gè) HTML 元素(p 元素)。
這個(gè)元素?fù)碛幸粋€(gè)開(kāi)始標(biāo)簽 <html>,以及一個(gè)結(jié)束標(biāo)簽 </html>
元素內(nèi)容是另一個(gè) HTML 元素(body 元素)。
即使您忘記了使用結(jié)束標(biāo)簽,大多數(shù)瀏覽器也會(huì)正確地顯示 HTML:
上面的例子在大多數(shù)瀏覽器中都沒(méi)問(wèn)題,但不要依賴這種做法。忘記使用結(jié)束標(biāo)簽會(huì)產(chǎn)生不可預(yù)料的結(jié)果或錯(cuò)誤。
注釋?zhuān)何磥?lái)的 HTML 版本不允許省略結(jié)束標(biāo)簽。
有一些元素必須使用單個(gè)標(biāo)簽表示。這些被稱(chēng)為空元素。
一個(gè)這樣的元素是 hr 。
hr 是一個(gè)分組元素,用于表示一個(gè)段落級(jí)別的內(nèi)容。
您可以使用以下兩種方式之一使用void元素 - 第一種方法是僅指定開(kāi)始標(biāo)記,如以下代碼所示。
瀏覽器知道hr是一個(gè)void元素,因此不希望看到結(jié)束標(biāo)記。
您可以使元素與空元素一致,如下面的代碼所示。
注釋是關(guān)于HTML元素的有用信息。注釋使HTML文檔更易讀和可理解。
HTML中的注釋以標(biāo)簽<!-- 開(kāi)頭,并以 --> 結(jié)尾。
瀏覽器將忽略您在這些標(biāo)記中放置的任何內(nèi)容。
以下代碼具有HTML注釋。
超文本標(biāo)記語(yǔ)言(外國(guó)語(yǔ)簡(jiǎn)稱(chēng):HTML)標(biāo)記標(biāo)簽通常被稱(chēng)為HTML標(biāo)簽,HTML標(biāo)簽是HTML語(yǔ)言中最基本的單位,HTML標(biāo)簽是HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)最重要的組成部分。
HTML標(biāo)簽的大小寫(xiě)無(wú)關(guān)的,例如“主體”<body>跟<BODY>表示的意思是一樣的,推薦使用小寫(xiě)。
實(shí)例
<html> 標(biāo)簽告知瀏覽器這是一個(gè) HTML 文檔。
<html> 標(biāo)簽是 HTML 文檔中最外層的元素。
<html> 標(biāo)簽是所有其他 HTML 元素(除了 <!DOCTYPE> 標(biāo)簽)的容器。
所有瀏覽器都支持 <html> 標(biāo)簽。
段落標(biāo)簽:<p></p>
定義:可以把 HTML 文檔分割為若干段落
標(biāo)題字:<h1></h1>至<h6></h6>
標(biāo)題是通過(guò) <h1> - <h6> 等標(biāo)簽進(jìn)行定義的
<h1>定義最大標(biāo)簽,<h6>定義最小標(biāo)簽
換行:<br>
定義:<br> 可插入一個(gè)簡(jiǎn)單的換行符
<br> 標(biāo)簽是空標(biāo)簽,它沒(méi)有結(jié)束標(biāo)簽
注釋?zhuān)?lt;!-- 這是HTML注釋 -->
水平線:<hr/>
預(yù)留格式<pre>內(nèi)容</pre>
定義:頁(yè)面中輸入什么樣式就顯示什么樣式
實(shí)例:< >
搭配視頻效果更佳~~
https://www.ixigua.com/690746767030039398
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。