vue3+ts+vite項目中使用spreadjs,通過script標簽引入spreadjs可以提高打包速度

https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/quickstart/quickstart-js

右鍵另存這個官方的示例頁面可以下載全部js文件

https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html

spread.html:

<!DOCTYPE html>
<html lang="zh"><head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="spreadjs culture" content="zh-cn" /><title>SpreadJS Designer</title><linkhref="./public/spread/gc.spread.sheets.excel2013white.css"rel="stylesheet"type="text/css"/><linkhref="./public/spread/gc.spread.sheets.designer.17.0.2.min.css"rel="stylesheet"type="text/css"/></head><body unselectable="on"><divid="gc-designer-container"role="application"style="height: 600px"></div><script src="./public/spread/gc.spread.sheets.all.min.js"></script><script async src="./public/spread/gc.spread.sheets.shapes.min.js"></script><script async src="./public/spread/gc.spread.sheets.charts.min.js"></script><scriptasyncsrc="./public/spread/gc.spread.sheets.slicers.min.js"></script><script async src="./public/spread/gc.spread.sheets.print.min.js"></script><scriptasyncsrc="./public/spread/gc.spread.sheets.barcode.min.js"></script><script async src="./public/spread/gc.spread.sheets.pdf.min.js"></script><scriptasyncsrc="./public/spread/gc.spread.pivot.pivottables.min.js"></script><scriptasyncsrc="./public/spread/gc.spread.sheets.tablesheet.min.js"></script><scriptasyncsrc="./public/spread/gc.spread.sheets.ganttsheet.min.js"></script><scriptasyncsrc="./public/spread/gc.spread.report.reportsheet.min.js"></script><scriptasyncsrc="./public/spread/gc.spread.sheets.formulapanel.min.js"></script><script async src="./public/spread/gc.spread.excelio.min.js"></script><script async src="./public/spread/gc.spread.sheets.io.min.js"></script><scriptasyncsrc="./public/spread/gc.spread.sheets.resources.zh.min.js"></script><scriptasyncsrc="./public/spread/gc.spread.sheets.designer.resource.cn.17.0.2.min.js"></script><scriptasyncsrc="./public/spread/gc.spread.sheets.designer.all.17.0.2.min.js"></script><script type="text/javascript">window.onload = function () {//Apply License//GC.Spread.Sheets.LicenseKey = 'sjs-distribution-key';//GC.Spread.Sheets.Designer.LicenseKey = 'designer-component-distribution-key';var config = GC.Spread.Sheets.Designer.DefaultConfigconfig.commandMap = {Welcome: {title: 'Welcome',text: 'Welcome',iconClass: 'ribbon-button-welcome',bigButton: 'true',commandName: 'Welcome',execute: function (context, propertyName, fontItalicChecked) {alert('Welcome to new designer.')},},}config.ribbon[0].buttonGroups.unshift({label: 'NewDesigner',thumbnailClass: 'welcome',commandGroup: {children: [{direction: 'vertical',commands: ['Welcome'],},],},})var designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById('gc-designer-container'),config)}</script></body>
</html>

index.html:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><link rel="icon" href="/favicon.ico" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Vite App</title><linkhref="/spread/gc.spread.sheets.excel2013white.css"rel="stylesheet"type="text/css"/><linkhref="/spread/gc.spread.sheets.designer.17.0.2.min.css"rel="stylesheet"type="text/css"/></head><body><div id="app"></div><script type="module" src="/src/main.ts"></script><script src="/spread/gc.spread.sheets.all.min.js"></script><script src="/spread/gc.spread.sheets.shapes.min.js"></script><script src="/spread/gc.spread.sheets.charts.min.js"></script><script src="/spread/gc.spread.sheets.slicers.min.js"></script><script src="/spread/gc.spread.sheets.print.min.js"></script><script src="/spread/gc.spread.sheets.barcode.min.js"></script><script src="/spread/gc.spread.sheets.pdf.min.js"></script><script src="/spread/gc.spread.pivot.pivottables.min.js"></script><script src="/spread/gc.spread.sheets.tablesheet.min.js"></script><script src="/spread/gc.spread.sheets.ganttsheet.min.js"></script><script src="/spread/gc.spread.report.reportsheet.min.js"></script><script src="/spread/gc.spread.sheets.formulapanel.min.js"></script><script src="/spread/gc.spread.excelio.min.js"></script><script src="/spread/gc.spread.sheets.io.min.js"></script><script src="/spread/gc.spread.sheets.resources.zh.min.js"></script><script src="/spread/gc.spread.sheets.designer.resource.cn.17.0.2.min.js"></script><script src="/spread/gc.spread.sheets.designer.all.17.0.2.min.js"></script></body>
</html>

designer/Index.vue:

<template><div id="gc-designer-container" style="height: 600px"></div>
</template><script setup lang="ts">
import { onMounted } from 'vue'const init = () => {//Apply License//GC.Spread.Sheets.LicenseKey = 'sjs-distribution-key';//GC.Spread.Sheets.Designer.LicenseKey = 'designer-component-distribution-key';//@ts-ignorelet config = GC.Spread.Sheets.Designer.DefaultConfigconfig.commandMap = {Welcome: {title: 'Welcome',text: 'Welcome',iconClass: 'ribbon-button-welcome',bigButton: 'true',commandName: 'Welcome',// @ts-ignoreexecute: function (context, propertyName, fontItalicChecked) {alert('Welcome to new designer.')},},}config.ribbon[0].buttonGroups.unshift({label: 'NewDesigner',thumbnailClass: 'welcome',commandGroup: {children: [{direction: 'vertical',commands: ['Welcome'],},],},})//@ts-ignorelet designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById('gc-designer-container'),config)let sheet = designer.Spread.getActiveSheet()sheet.getCell(0, 0)//@ts-ignore.vAlign(GC.Spread.Sheets.VerticalAlign.center).value('Hello')console.log('success')
}onMounted(() => {init()
})
</script>

sheet/Index.vue:

<template><div id="gc-sheet-container" style="height: 600px"></div>
</template><script setup lang="ts">
import { onMounted } from 'vue'const init = () => {//Apply License//GC.Spread.Sheets.LicenseKey = 'sjs-distribution-key';//GC.Spread.Sheets.Designer.LicenseKey = 'designer-component-distribution-key';//@ts-ignorelet spread = new GC.Spread.Sheets.Workbook(document.getElementById('gc-sheet-container'),{ sheetCount: 1 })let sheet = spread.getSheet(0)sheet.setText(0, 0, 'hello')console.log('success')
}onMounted(() => {init()
})
</script>

package.json:

{"name": "m-spread","version": "0.0.0","private": true,"type": "module","scripts": {"dev": "vite","build": "run-p type-check \"build-only {@}\" --","build1": "node --max-old-space-size=8096 ./node_modules/vite/bin/vite.js build","preview": "vite preview","build-only": "vite build","type-check": "vue-tsc --build --force","lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore"},"dependencies": {"pinia": "^2.1.7","rollup-plugin-visualizer": "^5.12.0","vue": "^3.4.29","vue-router": "^4.3.3"},"devDependencies": {"@rushstack/eslint-patch": "^1.8.0","@tsconfig/node20": "^20.1.4","@types/node": "^20.14.5","@vitejs/plugin-vue": "^5.0.5","@vue/eslint-config-typescript": "^13.0.0","@vue/tsconfig": "^0.5.1","eslint": "^8.57.0","eslint-plugin-vue": "^9.23.0","npm-run-all2": "^6.2.0","typescript": "~5.4.0","vite": "^5.3.1","vite-plugin-vue-devtools": "^7.3.1","vue-tsc": "^2.0.21"}
}

vite.config.js:

import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import { visualizer } from 'rollup-plugin-visualizer'// https://vitejs.dev/config/
export default defineConfig({server: {port: 3006},plugins: [vue(),vueDevTools(),visualizer()],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}}
})

人工智能學習網站

https://chat.xutongbao.top

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38359.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38359.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38359.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

共識機制深度解析:PoW、PoS、DPoS和PBFT

區塊鏈的世界里&#xff0c;有一個非常重要的概念叫做“共識機制”。它就像是區塊鏈的心臟&#xff0c;保證大家在這條鏈上的信息是可靠的、不可篡改的。今天&#xff0c;我們就來通俗易懂地聊聊區塊鏈里的四大共識機制&#xff1a;工作量證明&#xff08;PoW&#xff09;、權益…

數據產品經理知識庫構建

概述 數據產品經理是企業中負責管理和推動數據產品的專業人員。他們利用數據來輔助決策&#xff0c;優化產品&#xff0c;提升用戶體驗。用STAR法則&#xff08;Situation, Task, Action, Result&#xff09;來介紹數據產品經理的角色&#xff0c;應該學習的數據產品&#…

Rust-11-錯誤處理

Rust 將錯誤分為兩大類&#xff1a;可恢復的&#xff08;recoverable&#xff09;和 不可恢復的&#xff08;unrecoverable&#xff09;錯誤。對于一個可恢復的錯誤&#xff0c;比如文件未找到的錯誤&#xff0c;我們很可能只想向用戶報告問題并重試操作。不可恢復的錯誤總是 b…

Labview_網絡流

網絡流的介紹 網絡流是一種易于配置、緊密集成的動態通信方法&#xff0c;用于將數據從一個應用程序傳輸到另一個應用程序&#xff0c;其吞吐量和延遲特性可與 TCP 相媲美。但是&#xff0c;與 TCP 不同的是&#xff0c;網絡流直接支持任意數據類型的傳輸&#xff0c;而無需先…

Java虛擬機調優技巧及性能監控

Java虛擬機調優技巧及性能監控 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 引言 Java虛擬機&#xff08;JVM&#xff09;作為Java程序的核心執行環境&…

忙忙碌碌的混沌之中差點撲了個空而錯過年中這條線

文章目錄 前言初見端倪混沌初始力不從心心力交瘁拾遺補缺總結 前言 突然意識到過完這個周末已經7月份了&#xff0c;他預示著我的2024年已經過半了&#xff0c;過年回家仿佛還是昨天的事情&#xff0c;怎么轉眼間已經到了年中了。心里還是不愿承認這件事&#xff0c;翻開自己2…

cpu,緩存,輔存,主存之間的關系及特點

關系圖 示意圖&#xff1a; ------------------- | CPU | | ------------- | | | 寄存器 | | | ------------- | | | L1緩存 | | | ------------- | | | L2緩存 | | | ------------- | | | L3緩存 | | | ------------- | ----…

每日一題——Python實現PAT乙級1073 多選題常見計分法(舉一反三+思想解讀+逐步優化)9千字好文

一個認為一切根源都是“自己不夠強”的INTJ 個人主頁&#xff1a;用哲學編程-CSDN博客專欄&#xff1a;每日一題——舉一反三Python編程學習Python內置函數 Python-3.12.0文檔解讀 目錄 初次嘗試 再次嘗試 有何不同 版本一&#xff08;原始版本&#xff09;&#xff1a;…

ISO 19110全局要求類中的/req/global/binding-constraints詳細解釋

/req/global/binding-constraints 要求: 如果模型中包含對綁定實體的約束&#xff0c;則這些約束必須由一個具有字符串值的描述屬性的約束實體&#xff08;Constraints entity&#xff09;表示。綁定實體必須通過“constrainedBy”角色鏈接到這個約束實體。 具體解釋 定義 …

修復vcruntime140.dll方法分享

修復vcruntime140.dll方法分享 最近在破解typora的時候出現了缺失vcruntime140.dll文件的報錯導致軟件啟動失敗。所以找了一番資料發現都不是很方便的處理&#xff0c;甚至有的dll處理工具還需要花錢&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff0c;我本來就是為…

python實現網頁自動化(自動登錄需要驗證的網頁)

引言: python作為實現網頁自動化的一個重要工具,其強大的各種封裝的庫使得程序運行更加簡潔,只需要下載相應的庫,然后調用庫中的函數就可以簡便的實現我們想要的網頁相關操作。 正文: 我的前幾篇文章寫了關于初學爬蟲中比較容易上手的功能,例如爬取靜態網頁的數據、動…

ThreadPoolExecutor 工作線程Worker自身鎖設計

個人博客 ThreadPoolExecutor 工作線程Worker自身鎖設計 | iwts’s blog 總集 想要完整了解下ThreadPoolExecutor&#xff1f;可以參考&#xff1a; 基于源碼詳解ThreadPoolExecutor實現原理 | iwts’s blog Worker-工作線程管理 線程池設計了內部類Worker&#xff0c;主…

【python】python知名品牌調查問卷數據分析可視化(源碼+調查數據表)【獨一無二】

&#x1f449;博__主&#x1f448;&#xff1a;米碼收割機 &#x1f449;技__能&#x1f448;&#xff1a;C/Python語言 &#x1f449;公眾號&#x1f448;&#xff1a;測試開發自動化【獲取源碼商業合作】 &#x1f449;榮__譽&#x1f448;&#xff1a;阿里云博客專家博主、5…

CleanShot X - 超好用蘋果電腦截圖錄屏工具

Mac 自帶的截圖工具十分雞肋&#xff0c;不僅功能少&#xff0c;無法長截圖外&#xff0c;也不支持 GIF 制作&#xff0c;很難滿足日常做圖需求。 CleanShot X 是一款 Mac 平臺近乎無可挑剔的專業截圖錄屏工具 &#xff0c;能完美代替 Mac 自帶截圖。它提供超過 50 項功能&…

嵌入式學習——硬件(s3c2440外部中斷、定時器中斷)——day54

1. start.s preserve8area reset, code, readonlycode32entryldr pc, startnopnopnopnopnop ldr pc, interrupt_handlernopstartldr sp, 0x40001000mrs r0, cpsrbic r0, r0, #0x1Forr r0, r0, #0x12;IRQbic r0, r0, #(1 << 7);打開IRQ中斷允許msr cpsr_c, r0ldr …

【ARM CoreLink 系列 7.1 -- TZC-400 控制器 programmers model】

請閱讀【ARM CoreLink 文章專欄導讀】 文章目錄 TZC-400 programmers modelBuild configuration registerAction registerGate keeper registerSpeculation control registerInterrupt status registerTZC-400 programmers model ARM TZC-400(TrustZone地址空間控制器)是一種…

Nacos配置中心客戶端源碼分析(一): 客戶端如何初始化配置

本文收錄于專欄 Nacos 推薦閱讀&#xff1a;Nacos 架構 & 原理 文章目錄 前言一、NacosConfigBeanDefinitionRegistrar二、NacosPropertySourcePostProcessor三、AbstractNacosPropertySourceBuilder總結「AI生成」 前言 專欄前幾篇文章主要講了Nacos作為服務注冊中心相關…

zram壓縮機制看swapon系統調用

1.swapon開啟zram交換分區 swapon /dev/block/zram0 mkswap /dev/block/zram0 上面命令調用了linux的swapon系統調用啟動zram0交換分區;mkswap命令向塊設備文件/dev/block/zram0寫入了swap_header信息 問題:實際安卓平臺是哪里觸發swapon和mkswap調用的,我們已MTK8195平臺…

平衡三進制類腦計算

PS:用來記錄一些新奇又有趣的想法。。。 1、量子的世界 1.1薛定諤的貓 這感覺是個有趣的話題。 在宏觀中可以觀測到的&#xff0c;是穩定的兩種狀態&#xff0c;但隨著尺寸不斷縮小&#xff0c;直至達到微觀尺度&#xff0c;這一切都變的有趣了起來&#xff0c;一只“既死又活…

zabbix server client 安裝配置

Zabbix Server 采用源碼包部署&#xff0c;數據庫采用 MySQL8.0 版本&#xff0c;zabbix-web 使用 nginxphp 來實現。具體信息如下&#xff1a; 軟件名 版本 安裝方式 Zabbix Server 6.0.3 源碼安裝 Zabbix Agent 6.0.3 源碼安裝 MySQL 8.0.28 yum安裝 Nginx 1.20…