中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

贛州網(wǎng)站制作找哪家好seo技術(shù)培訓廣東

贛州網(wǎng)站制作找哪家好,seo技術(shù)培訓廣東,優(yōu)化大師app下載,下載重慶人社appSpreadJS 集成案例 介紹: SpreadJS 基于 HTML5 標準,支持跨平臺開發(fā)和集成,支持所有主流瀏覽器,無需預(yù)裝任何插件或第三方組件,以原生的方式嵌入各類應(yīng)用,可以與各類后端技術(shù)框架相結(jié)合。SpreadJS 以 純前…

SpreadJS 集成案例

介紹:

SpreadJS 基于 HTML5 標準,支持跨平臺開發(fā)和集成,支持所有主流瀏覽器,無需預(yù)裝任何插件或第三方組件,以原生的方式嵌入各類應(yīng)用,可以與各類后端技術(shù)框架相結(jié)合。SpreadJS 以 純前端、跨平臺的能力,讓應(yīng)用系統(tǒng)輕松獲得與原生
Excel 一致的交互體驗。 前端集成:

實現(xiàn)效果:

在這里插入圖片描述

代碼實現(xiàn):

1) : 創(chuàng)建項目

Cmd 依次執(zhí)行命令:

C:\Users\zhaoQiang\Desktop>vue create spreadjs

C:\Users\zhaoQiang\Desktop>cd spreadjs

安裝插件:

npm install 以下插件: 或根據(jù)使用需求安裝所需要的插件:

在這里插入圖片描述

Main.js引用:

在這里插入圖片描述

App.vue編寫界面:

在這里插入圖片描述

2) Ribbon工具欄添加測試菜單和事件

在這里插入圖片描述

3) 監(jiān)聽Excel單元格變化:

// SpreadJs 初始化完畢事件中獲取WorkBook對象。
this.designer = value;
this.spread = this.designer.getWorkbook();

監(jiān)聽單元格選中事件和單元格編輯結(jié)束事件:

在這里插入圖片描述

4) JSON數(shù)據(jù)轉(zhuǎn)換:

本地JSON數(shù)據(jù)轉(zhuǎn)換為界面上表格:

在這里插入圖片描述

表格界面獲取JSON數(shù)據(jù):

在這里插入圖片描述

代碼地址

https://gitee.com/zhaoqhero/spreadjs.

官方文檔

官網(wǎng)地址:https://www.grapecity.com.cn/developer/spreadjs

API文檔:https://demo.grapecity.com.cn/spreadjs/help/api/modules/GC.Data

官方案例:https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/quickstart/quickstart-vue

附圖

在這里插入圖片描述

主要代碼

Package.json

{"name": "spreadjs","version": "0.1.0","private": true,"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build","lint": "vue-cli-service lint"},"dependencies": {"@grapecity/spread-excelio": "^17.0.0","@grapecity/spread-sheets": "^17.0.0","@grapecity/spread-sheets-barcode": "^17.0.0","@grapecity/spread-sheets-charts": "^17.0.0","@grapecity/spread-sheets-designer": "^17.0.0","@grapecity/spread-sheets-designer-resources-cn": "^17.0.0","@grapecity/spread-sheets-designer-resources-en": "^17.0.0","@grapecity/spread-sheets-designer-vue": "^17.0.0","@grapecity/spread-sheets-io": "^17.0.0","@grapecity/spread-sheets-languagepackages": "^17.0.0","@grapecity/spread-sheets-pdf": "^17.0.0","@grapecity/spread-sheets-pivot-addon": "^17.0.0","@grapecity/spread-sheets-print": "^17.0.0","@grapecity/spread-sheets-shapes": "^17.0.0","@grapecity/spread-sheets-tablesheet": "^17.0.0","@grapecity/spread-sheets-vue": "^17.0.0","core-js": "^3.8.3","vue": "^3.2.13"},"devDependencies": {"@babel/core": "^7.12.16","@babel/eslint-parser": "^7.12.16","@vue/cli-plugin-babel": "~5.0.0","@vue/cli-plugin-eslint": "~5.0.0","@vue/cli-service": "~5.0.0","eslint": "^7.32.0","eslint-plugin-vue": "^8.0.3"},"eslintConfig": {"root": true,"env": {"node": true},"extends": ["plugin:vue/vue3-essential","eslint:recommended"],"parserOptions": {"parser": "@babel/eslint-parser"},"rules": {}},"browserslist": ["> 1%","last 2 versions","not dead","not ie 11"]
}

Main.js

import {createApp} from 'vue'
import App from './App.vue'
import Designer from "@grapecity/spread-sheets-designer-vue"let app = createApp(App);
app.component("gc-spread-sheets-designer", Designer);
app.mount('#app');

App.vue


<template><div id="gc-designer-container" style="display: flex;flex-direction: row"><div><gc-spread-sheets-designerid="designer":styleInfo="styleInfo":config="config":spreadOptions="spreadOptions"@designerInitialized="designerInitialized"></gc-spread-sheets-designer></div><div><div class="textarea-container">{{ changingText }}</div><div class="textarea-container">{{ currentTxt }}</div><button style="height: 40px;margin-left:20px;width: 100px" @click="fromJson">json數(shù)據(jù)添加</button><button style="height: 40px;margin-left:20px;width: 100px" @click="toJson">json數(shù)據(jù)獲取</button><div class="textarea-container" style="height: 400px">{{ sheetJsonStr }}</div></div></div>
</template><script>import '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2013white.css';
import "@grapecity/spread-sheets-designer/styles/gc.spread.sheets.designer.min.css";
import * as GC from "@grapecity/spread-sheets";
import "@grapecity/spread-sheets-print";
import "@grapecity/spread-sheets-shapes";
import "@grapecity/spread-sheets-pivot-addon";
import "@grapecity/spread-sheets-tablesheet";
import "@grapecity/spread-sheets-designer-resources-cn";
import "@grapecity/spread-sheets-designer";import demoJson from './demo.json';export default {name: "App",data: function () {var config = GC.Spread.Sheets.Designer.DefaultConfig;//ribbon添加測試菜單:config.ribbon.push({"id": "test","text": "測試菜單","buttonGroups": [{"label": "測試1","thumbnailClass": "button_class","commandGroup": {"children": [{"direction": "vertical","commands": ["save1","delete1",]}]}}, {"label": "測試2","commandGroup": {"children": []}}],// 其他項目內(nèi)容"contextMenu": ["designer.insertSignature",],});//聲明菜單事件config.commandMap = {save1: {title: "保存服務(wù)器",text: "",iconClass: "save1",bigButton: "true",commandName: "save1",execute: async (context, propertyName, fontItalicChecked) => {// 自定義操作符alert(context, propertyName, fontItalicChecked);}},delete1: {title: "刪除數(shù)據(jù)",text: "",iconClass: "delete1",bigButton: "true",commandName: "delete1",execute: async (context, propertyName, fontItalicChecked) => {// 自定義操作符alert(context, propertyName, fontItalicChecked);}},"designer.insertSignature": {text: "Insert Signature",commandName: "designer.insertSignature",visibleContext: "ClickRowHeader",execute:// execute_InsertSignature,后面是一個簡單的演示代碼片段() => {console.log("Insert Signature");}}}return {styleInfo: {height: "80vh", width: "50vw"},config: config,spreadOptions: {//表單工具欄的  基本配置sheetCount: 2,  //sheet 表格數(shù)量allowUserZoom: false,  //是否允許縮放tabEditable: false,  //tab是否允許編輯newTabVisible: false, //新tab是否可見showScrollTip: false,showVerticalScrollbar: false,showHorizontalScrollbar: false,allowUserResize: false,autoFitType: false,allowUserDragDrop: false,  //允許用戶拖拽單元格allowUserDragMerge: false, //允許用戶合并單元格},changingText: '',currentTxt: '',sheetJsonStr: '',designer: null,spread: null,};},methods: {designerInitialized(value) {this.designer = value;this.spread = this.designer.getWorkbook();this.spread.suspendPaint();let spreadNS = GC.Spread.Sheets;let thisObj = this;this.spread.bind(spreadNS.Events.SelectionChanging, function (e, args) {let selection = args.newSelections.pop();let sheetArea = args.sheetArea === 0 ? 'sheetCorner' : args.sheetArea === 1 ?'columnHeader' : args.sheetArea === 2 ? 'rowHeader' : 'viewPort';thisObj.changingText =`事件名稱:${GC.Spread.Sheets.Events.SelectionChanging}。` +`表單:${args.sheetName}。` +`表格區(qū)域:${sheetArea}。` +`行:${selection.row}。` +`列:${selection.col}。` +`行數(shù):${selection.rowCount}。` +`列數(shù):${selection.colCount}。`;});this.spread.bind(spreadNS.Events.EditEnded, function (e, args) {thisObj.currentTxt = `事件名稱:${GC.Spread.Sheets.Events.EditEnded}。` +`表單:${args.sheetName}。` +`行:${args.row}。` +`列:${args.col}。` +`文本:${args.editingText}。`;console.log(this.currentTxt)});this.spread.resumePaint();// spread.bind(spreadNS.Events.ActiveSheetChanged, function (e, args) {//   let eventLog =//       'SpreadEvent: ' + GC.Spread.Sheets.Events.ActiveSheetChanged + ' event called' + '\n' +//       'oldSheetName: ' + args.oldSheet.name() + '\n' +//       'newSheetName: ' + args.newSheet.name();//   console.log(eventLog)// });// spread.bind(spreadNS.Events.CellClick, function (e, args) {//   let sheetArea = args.sheetArea === 0 ? 'sheetCorner' : args.sheetArea === 1 ? 'columnHeader' : args.sheetArea === 2 ? 'rowHeader' : 'viewPort';//   let eventLog =//       'SpreadEvent: ' + GC.Spread.Sheets.Events.CellClick + ' event called' + '\n' +//       'sheetArea: ' + sheetArea + '\n' +//       'row: ' + args.row + '\n' +//       'col: ' + args.col;//   console.log(eventLog)// });// spread.bind(spreadNS.Events.SelectionChanging, function (e, args) {//   let selection = args.newSelections.pop();//   let sheetArea = args.sheetArea === 0 ? 'sheetCorner' : args.sheetArea === 1 ? 'columnHeader' : args.sheetArea === 2 ? 'rowHeader' : 'viewPort';//   let eventLog =//       'SpreadEvent: ' + GC.Spread.Sheets.Events.SelectionChanging + ' event called' + '\n' +//       'sheetArea: ' + sheetArea + '\n' +//       'row: ' + selection.row + '\n' +//       'column: ' + selection.col + '\n' +//       'rowCount: ' + selection.rowCount + '\n' +//       'colCount: ' + selection.colCount;////   console.log(eventLog)// });// spread.bind(spreadNS.Events.SelectionChanged, function (e, args) {//   let selection = args.newSelections.pop();//   if (selection.rowCount > 1 && selection.colCount > 1) {//     let sheetArea = args.sheetArea === 0 ? 'sheetCorner' : args.sheetArea === 1 ? 'columnHeader' : args.sheetArea === 2 ? 'rowHeader' : 'viewPort';//     let eventLog =//         'SpreadEvent: ' + GC.Spread.Sheets.Events.SelectionChanged + ' event called' + '\n' +//         'sheetArea: ' + sheetArea + '\n' +//         'row: ' + selection.row + '\n' +//         'column: ' + selection.col + '\n' +//         'rowCount: ' + selection.rowCount + '\n' +//         'colCount: ' + selection.colCount;//     console.log(eventLog)//   }// });// spread.bind(spreadNS.Events.EditStarting, function (e, args) {//   let eventLog =//       'SpreadEvent: ' + GC.Spread.Sheets.Events.EditStarting + ' event called' + '\n' +//       'row: ' + args.row + '\n' +//       'column: ' + args.col;////   console.log(eventLog)// });},toJson() {var serializationOption = {ignoreFormula: true, //忽略?ignoreStyle: true,   //忽略樣式rowHeadersAsFrozenColumns: true,columnHeadersAsFrozenRows: true,};this.sheetJsonStr = JSON.stringify(this.designer.getWorkbook().toJSON(serializationOption));console.log(this.sheetJsonStr)},fromJson() {let jsonOptions = {ignoreFormula: false,ignoreStyle: false,frozenColumnsAsRowHeaders: false,frozenRowsAsColumnHeaders: false,doNotRecalculateAfterLoad: false,};//FromJsonlet spread2 = this.designer.getWorkbook();spread2.fromJSON(JSON.parse(JSON.stringify(demoJson)), jsonOptions);},},
}
</script><style>.textarea-container {margin: 20px;width: calc(100vw - 60vw);height: 50px;border: 1px solid #000000;color: black;overflow: auto;
}.delete1 {width: 100px !important;height: 20px;background: red;
}.save1 {width: 100px !important;height: 20px;background: blue;
}
</style>
http://www.risenshineclean.com/news/53199.html

相關(guān)文章:

  • wordpress怎么使用新浪ajax網(wǎng)絡(luò)優(yōu)化軟件有哪些
  • h5做的網(wǎng)站如何連接數(shù)據(jù)庫如何創(chuàng)建一個網(wǎng)頁
  • 公司網(wǎng)站建設(shè)制作全包廣東病毒感染最新消息
  • 綠色做環(huán)保網(wǎng)站的好處外貿(mào)seo優(yōu)化
  • 抄襲網(wǎng)站后臺會侵權(quán)嗎瀏覽器打開網(wǎng)站
  • 網(wǎng)站建設(shè)的策劃灰色關(guān)鍵詞排名代做
  • 江西semseo設(shè)置是什么
  • 專業(yè)網(wǎng)站建設(shè)公司興田德潤簡介百度上做優(yōu)化一年多少錢
  • 建設(shè)網(wǎng)站物業(yè)經(jīng)理上崗證陳俊華2022年適合小學生的新聞
  • 賭博網(wǎng)站開發(fā)人員犯法嗎一個公司可以做幾個百度推廣
  • 網(wǎng)站搭建類型推廣平臺收費標準
  • 制作網(wǎng)站的登錄界面怎么做網(wǎng)站seo排名優(yōu)化價格
  • 電子商務(wù)主要干嘛seo怎么發(fā)布外鏈
  • 哪個設(shè)計網(wǎng)站做兼職好百度推廣賬戶登陸
  • 關(guān)于手機市場營銷的論文采集站seo賺錢輔導班
  • 做門戶網(wǎng)站賺錢嗎深圳營銷策劃公司十強
  • 規(guī)模以上工業(yè)企業(yè)如何認定成都seo網(wǎng)絡(luò)優(yōu)化公司
  • 全面的手機網(wǎng)站建設(shè)推廣營銷軟件app
  • 有用node.js做的網(wǎng)站嗎哪家培訓機構(gòu)學校好
  • 河北廊坊最新消息今天合肥seo網(wǎng)站管理
  • 廊坊網(wǎng)站建設(shè)公司企業(yè)文化ppt
  • php做的大型網(wǎng)站有哪些網(wǎng)站搭建費用
  • 有了域名之后怎么做網(wǎng)站網(wǎng)頁設(shè)計與制作代碼成品
  • 個人網(wǎng)站名稱 備案短視頻seo公司
  • 企業(yè)手機網(wǎng)站建設(shè)策劃怎么在網(wǎng)上做廣告宣傳
  • 武漢住建局官方網(wǎng)站使用最佳搜索引擎優(yōu)化工具
  • 電影題材網(wǎng)頁設(shè)計欣賞seo報名在線咨詢
  • 外匯申報在哪個網(wǎng)站上做如何做網(wǎng)站seo
  • 主機屋做淘寶客網(wǎng)站網(wǎng)絡(luò)服務(wù)包括哪些內(nèi)容
  • 做自己的網(wǎng)站的好處windows優(yōu)化大師和360哪個好