整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

在spreadjs中利用vue框架实现在线文档,竟如

在spreadjs中利用vue框架实现在线文档,竟如此简单

线文档,顾名思义就是通过在线的方式对文档进行操作,实现如数据填报、数据计算、可视化、在线导入导出 Excel 文件、自定义系统外观、工具栏、在网页内满足单人或多人编辑并将文件上传至服务端保存的功能。

国内外常见的在线文档,包括:微软Office Online、Google文档、石墨文档、腾讯文档、飞书、语雀等。

通过对比这些软件产品,可以将它们的主要功能点,概括为三个层面:数据填报、协同编辑和类Excel的呈现方式。

  • 数据填报:支持在线导入导出 Excel、大数据量填报、填报暂存、多 sheet 填报、多级上报
  • 协同编辑:支持多人协作、实时编辑、数据同步、多级上报、历史查询
  • 类Excel的呈现方式:提供类Excel的操作模式和使用体验,兼容Excel数据结构

可以说,只要满足了上述需求,就可以开发出一款优秀的在线文档。

而SpreadJS纯前端表格控件,恰好满足。

下面,我们就通过Spring Boot + Vue.js的前后分离开发技术,演示如何借助 SpreadJS 搭建一款简单的在线文档系统。

在线文档系统示例

该系统集成了SpreadJS表格控件,目前已经实现了在线读取、编辑Excel 文档的功能,文末提供了示例代码下载,大家可以按照 Readme文档中的步骤运行。

PS:欢迎大家前往SpreadJS 产品官网,了解并学习这款纯前端表格组件,以实现更多在线文档的功能。

如下是系统运行截图。

进入页面(File List的展示文件均为服务器上的文件):

单击 Excel文件,右侧会显示该文件的详细信息:

双击文件夹:

点击某个 Excel文件,打开编辑文件的弹框:

在线对Excel文件进行修改、删除:

技术栈

  • 后端:SpringBoot
  • 前端:SpreadJS、Vue、ElementUI、Typescript

关键步骤

1、 实现该系统的相关依赖包都写在package.json里,执行命令 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 相关安装包:

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文件中是主要的页面逻辑,双击文件时弹出弹框,弹框中引入了自定义的组件:


 <MySpreadJS :mySpread="mySpread" :filePath="filePath" @done="childDone" :closeSpread='closeSpread'>
</MySpreadJS> 


5、 mySpread变量中是从后台返回的文件流,传给MySpreadJS组件,子组件接收到数据后,调用excelIO.open方法打开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方法可以将修改后的文件流传给后台,实现文件的修改功能:

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);
    }
);

后台接口介绍

获取某路径下的文件集合:getfolder

  • 参数:path(指明文件夹路径)

获取Excel文件内容:getFile

  • 参数:filePath(指明文件路径)

保存文件:savefile

  • 参数:filePath(指明文件路径)、type(create创建文件、update更新文件)

删除文件:deletefile

  • 参数:filePath(指明文件路径)

以上就是Vue+SpringBoot+SpreadJS 实现的一个简单的在线文档,如需了解详细的实现步骤。

SpreadJS除提供示例中在线读取、编辑Excel 文档的功能外,还提供了Web Excel 组件开发、数据填报、Excel 类报表设计等功能。除此之外,您还可通过调用API对SpreadJS进一步扩展,满足协同编辑、多级上报、填报暂存等更多场景的业务需要,欢迎下载试用。

今天的内容就到这了,不要忘了在评论区留下的意见和建议!

点击“了解更多”即可立即免费体验!

见即所得,不是很熟悉这个词吗?所见即所得代表什么,你看到的就是你得到这通常意味着一个编辑应用程序使用,以说明正在编辑的内容将完全一样的最终结果。与其他文本编辑器相比,“所见即所得” 文本编辑器非常友好。

它指已操作的软件或应用程序所拥有的功能,以及它们具有的许多其他功能。在使用中,此文本编辑器不需要像其他文本编辑器中那样编写语法,因为它配备了图标,只需要单击将要使用并自动格式化的图标之一即可。

此外,该文本编辑器还具有其他优势,例如能够显示一页文本,与图形,电子表格集成,在一个文档中显示照片,自动更正,超媒体,超文本等等。下面是一些用于网页的所见即所得文本编辑器:

1. CKEditor

CKEditor是一个HTML 文本编辑器,用于并旨在帮助您创建和管理内容布局。该文本编辑器中有许多完整的功能,如可以从Microsoft Word移动,还有额外的部件或工具,能够拖动和下降图片和上传文件,以及更多。

2. TinyMCE


TinyMCE是一个基于Javascript的独立Web平台,该文本编辑器根据LGPL许可作为开源应用程序发布。该文本编辑器旨在与JavaScript 库(例如React,Vue.js,AngularJS)和内容管理系统(例如Joomla和WordPress)轻松集成。另外,一个文本编辑器它还具有许多完整功能,包括4个软件包,其中Community是免费的,Premium,Pro和Enterprice是收费的。相对而言Community实际上非常完整,但是没有上传图像的功能。

3. Summernote

Summernote是一个非常简单且免费的文本编辑器。该文本编辑器使用base64编码,因此它不仅可以用于编辑文本,而且还可以直接上传图像,而无需进行任何图像处理。该文本编辑器由jQuery和Bootstrap组成,这是一个简单的UI,因此你可以更轻松地自定义外观或添加和删除工具栏。

4. Froala

Froala是HTML WYSIWYG 编辑器,它易于集成且易于使用,而无需键入大量代码。此插件需要jQuery 1.11.0或更高版本以及Font Awesome 4.4.0。该插件提供了用于PHP,Node.JS,.NET,Java和Python的服务器端SDK。该插件有4种许可,分别是:单个网站许可,开发者许可,商业许可和OEM许可。这个插件还有一个带有多个开发框架的连接器,例如:CakePHP,Joomla,Symfony,Yii,Django,Ruby on Rails,AngularJS,Meteor。

5.Redactor

Redactor是一个内容编辑器,可提供流畅,整洁,灵活的设计,并为其用户提供无限的支持。该内容编辑器与MODX紧密集成,提供简单的用户界面,并配有清晰易懂的图标,调制解调器和功能。可以根据需要激活或停用可用的高级功能,以便它可以控制用户活动。

6.Quilljs

Quilljs是100%免费的文本编辑器,它看起来简单而优雅。该文本编辑器提供了一种配置,你可以在其中自定义外观以及添加和删除工具栏。该文本编辑器也受API驱动,因此可以使用JSON作为其输入和输出来始终如一地确定性地工作。此外,此文本编辑器是跨平台的,因此它支持台式机,平板电脑或移动设备上的所有现代浏览器。

HTML从哪入手?

自学的话,首先要理解html的作用。html,hypertext markup language,超文本标记语言,用来展示网页中的内容。同时 HTML 也是我们学习前端开发的基础。随着 web 前端技术的飞速发展,HTML 和 CSS 也成为了编程者的必备技能。而要想做一个网页光会这一门语言是不够的,还需要自学css,JavaScript。其中html和css较JavaScript容易。

可以这样理解,HTML,是一个文件类型,可以被浏览器解析。如果不使用浏览器打开,我们看到的将是一行行代码,在浏览器中打开以后呢,就会出现一些静态效果了。下面介绍一下初步的一些HTML语法知识。

HTML 标签非常注重语义化,很多标签都是通俗易懂的,大大降低了我们学习的难度。这套 HTML 教程更是为了避免初学者走太多的弯路,指出了许多其它 HTML 教程中没有提到的学习误区,并且给初学者提供了一个具体的学习思路,除了注重 HTML 知识点的讲解,更加注重 web 前端开发技巧和思维。帮助大家快速入门,其中包含大量的实践经验,将知识系统化,浓缩为精华,用通俗易懂的语言直指网页设计初学者的痛点。

学海无涯,苦做舟,学习如同修行,只有潜心才可以领悟真谛。HTML 中的每一个小知识点都可以让页面发生不同的变化,现在就让我们行动起来,跟着 HTML 教程的步伐,让我们一起走进 HTML 的世界。


HTML语言特点

超级文本标记语言文档制作不是很复杂,但功能强大,支持不同数据格式的文件镶入,这也是万维网(WWW)盛行的原因之一,其主要特点如下:

● 简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便。

● 可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超级文本标记语言采取子类元素的方式,为系统扩展带来保证。

● 平台无关性:虽然个人计算机大行其道,但使用MAC等其他机器的大有人在,超级文本标记语言可以使用在广泛的平台上,这也是万维网(WWW)盛行的另一个原因。

● 通用性:另外,HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。

什么时候用HTML

B(Browser)/S(Server)架构方向,也是我们以后主攻方向

为什么要学HTML

我们以后主要为企业内部提供解决方案,例如:企业内部的办公系统、供应链管理系统、客户关系管理系统等,而这些系统通常对界面的表现要求较低,对业务处理和数据处理要求较高,并且要求降低升级维护的成本,B/S架构可以更好的被企业接受,所以我们以后主要的方向是开发基于B/S架构的应用,B/S架构的开发通常又被叫做Web开发,Web开发通常包括Browser浏览器端的开发以及Server服务器端的开发。

虽然我们是学习Java后台服务器编程,但是前端页面编写要了解,能看懂,简单的页面效果可以实现即可;

怎么开发HTML

创建一个以 .html或 .htm 结尾的文件,用文本编辑器打开就可以开发

怎么运行HTML

用浏览器打开以.html或.htm的文件就可以自上而下解析执行,不需要编译

DTD:Document Type Definition

● <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

● DTD文件的作用

● 帮助你编写合法的代码

● 它让浏览器正确地显示器代码,或者说DTD只是写给检查器看的

HTML与W3C(World Wide Web:www)

HTML规范是由w3c负责制定的,W3C是世界万维网联盟(World Wide Web:www)

安装浏览器

FireFox、Google、IE


HTML元素

HTML标签

<>表示开始标记

</>表示结束标记

<html>开始标签

</html>结束标签

html为元素

HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码。

HTML 元素语法

● HTML 元素以开始标签起始

● HTML 元素以结束标签终止

● 元素的内容是开始标签与结束标签之间的内容

● 某些 HTML 元素具有空内容(empty content)

● 空元素在开始标签中进行关闭(以开始标签的结束而结束)

● 大多数 HTML 元素可拥有属性

嵌套 HTML 元素

大多数 HTML 元素可以嵌套(可以包含其他 HTML 元素)。

HTML 文档由嵌套的 HTML 元素构成。

HTML 文档实例

上面的例子包含三个 HTML 元素。

HTML 实例解释

● <p> 元素:

这个 <p> 元素定义了 HTML 文档中的一个段落。

这个元素拥有一个开始标签 <p>,以及一个结束标签 </p>。

元素内容是:This is my first paragraph。

● <body> 元素:

<body> 元素定义了 HTML 文档的主体。

这个元素拥有一个开始标签 <body>,以及一个结束标签 </body>。

元素内容是另一个 HTML 元素(p 元素)。

<html> 元素:

这个元素拥有一个开始标签 <html>,以及一个结束标签 </html>

元素内容是另一个 HTML 元素(body 元素)。

不要忘记结束标签

即使您忘记了使用结束标签,大多数浏览器也会正确地显示 HTML:

上面的例子在大多数浏览器中都没问题,但不要依赖这种做法。忘记使用结束标签会产生不可预料的结果或错误。

注释:未来的 HTML 版本不允许省略结束标签。

空元素

有一些元素必须使用单个标签表示。这些被称为空元素。

一个这样的元素是 hr 。

hr 是一个分组元素,用于表示一个段落级别的内容。

您可以使用以下两种方式之一使用void元素 - 第一种方法是仅指定开始标记,如以下代码所示。

浏览器知道hr是一个void元素,因此不希望看到结束标记。

您可以使元素与空元素一致,如下面的代码所示。

HTML注释

注释是关于HTML元素的有用信息。注释使HTML文档更易读和可理解。

HTML中的注释以标签<!-- 开头,并以 --> 结尾。

浏览器将忽略您在这些标记中放置的任何内容。

以下代码具有HTML注释。

HTML标签

超文本标记语言(外国语简称:HTML)标记标签通常被称为HTML标签,HTML标签是HTML语言中最基本的单位,HTML标签是HTML(标准通用标记语言下的一个应用)最重要的组成部分。

HTML标签的大小写无关的,例如“主体”<body>跟<BODY>表示的意思是一样的,推荐使用小写。

实例

标签定义及使用说明

<html> 标签告知浏览器这是一个 HTML 文档。

<html> 标签是 HTML 文档中最外层的元素。

<html> 标签是所有其他 HTML 元素(除了 <!DOCTYPE> 标签)的容器。

浏览器支持

所有浏览器都支持 <html> 标签。

段落标签:<p></p>

定义:可以把 HTML 文档分割为若干段落

标题字:<h1></h1>至<h6></h6>

标题是通过 <h1> - <h6> 等标签进行定义的

<h1>定义最大标签,<h6>定义最小标签

换行:<br>

定义:<br> 可插入一个简单的换行符

<br> 标签是空标签,它没有结束标签

注释:<!-- 这是HTML注释 -->

水平线:<hr/>

预留格式<pre>内容</pre>

定义:页面中输入什么样式就显示什么样式

实例:< >

搭配视频效果更佳~~

https://www.ixigua.com/690746767030039398