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.mzph.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…