找回密码
 立即注册

QQ登录

只需一步,快速开始

Winny

超级版主

141

主题

261

帖子

1682

积分

超级版主

Rank: 8Rank: 8

积分
1682
Winny
超级版主   /  发表于:2024-10-29 13:44  /   查看:115  /  回复:0
本帖最后由 Winny 于 2024-10-29 15:46 编辑

SpreadJS作为一款纯前端的表格控件,提供基础产品js、css资源包,支持打造BS端、CS端产品应用。本文以安卓开发为例,介绍如何使用安卓平台嵌入SpreadJS能力。

在安卓中,SpreadJS并不能使用原生安卓标签形式,需要使用webview混合开发模式。因此,集成的基础步骤如下:
(1)构建SpreadJS应用
这里,我们可以采用任何一种开发框架来继承SpreadJS,例如React、Vue、原生JS等等。本文以原生js为例,集成了SpreadJS,详细代码如下:
  1. <!DOCTYPE html>
  2. <html lang="zh">

  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>SpreadJS V17 Designer Sample</title>
  6.     <meta name="spreadjs culture" content="zh-cn" />
  7.     <link href="https://cdn.grapecity.com/spreadjs/hosted/css/gc.spread.sheets.excel2013white.17.1.7.css"
  8.           rel="stylesheet" type="text/css" />
  9.     <link href="https://cdn.grapecity.com/spreadjs/hosted/css/gc.spread.sheets.designer.17.1.7.min.css" rel="stylesheet"
  10.           type="text/css" />
  11.     <script src="https://cdn.grapecity.com/spreadjs/hosted/scripts/gc.spread.sheets.all.17.1.7.min.js"></script>
  12.     <script
  13.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.sheets.shapes.17.1.7.min.js"></script>
  14.     <script
  15.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.sheets.charts.17.1.7.min.js"></script>
  16.     <script
  17.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.sheets.slicers.17.1.7.min.js"></script>
  18.     <script
  19.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.sheets.print.17.1.7.min.js"></script>
  20.     <script
  21.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.sheets.barcode.17.1.7.min.js"></script>
  22.     <script src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.sheets.pdf.17.1.7.min.js"></script>
  23.     <script
  24.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.pivot.pivottables.17.1.7.min.js"></script>
  25.     <script
  26.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.sheets.tablesheet.17.1.7.min.js"></script>
  27.     <script
  28.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.report.reportsheet.17.1.7.min.js"></script>
  29.     <script
  30.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.sheets.formulapanel.17.1.7.min.js"></script>
  31.     <script src="https://cdn.grapecity.com/spreadjs/hosted/scripts/plugins/gc.spread.sheets.io.17.1.7.min.js"></script>
  32.     <script src="https://cdn.grapecity.com/spreadjs/hosted/scripts/interop/gc.spread.excelio.17.1.7.min.js"></script>
  33.     <script
  34.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/resources/zh/gc.spread.sheets.resources.zh.17.1.7.min.js"></script>
  35.     <script
  36.             src="https://cdn.grapecity.com/spreadjs/hosted/scripts/gc.spread.sheets.designer.resource.cn.17.1.7.min.js"></script>
  37.     <script src="https://cdn.grapecity.com/spreadjs/hosted/scripts/gc.spread.sheets.designer.all.17.1.7.min.js"></script>
  38. </head>

  39. <body>
  40.     <p>888888</p>
  41.     <div id="gc-designer-container" style="width:90vw; height:95vh;border: 1px solid gray;"></div>
  42. </body>
  43. <script type="text/javascript">
  44.     window.onload = function () {
  45.         GC.Spread.Common.CultureManager.culture("zh-cn");
  46.         let designer = new GC.Spread.Sheets.Designer.Designer("gc-designer-container")
  47.         let spread = designer.getWorkbook()
  48.         let sheet = spread.getActiveSheet()
  49.         sheet.setValue(0,0,'测试')
  50.     }
  51. </script>

  52. </html>
复制代码
(2)嵌入SpreadJS到Webview
将集成了SpreadJS的html文件复制在安卓工程下的assets文件夹下,后续作为静态资源从webview引入。详细的引入代码如下:
  1. package com.example.spreadjs_android

  2. import android.annotation.SuppressLint
  3. import android.os.Bundle
  4. import android.webkit.WebView
  5. import androidx.appcompat.app.AppCompatActivity


  6. class MainActivity : AppCompatActivity() {

  7.     @SuppressLint("SetJavaScriptEnabled")
  8.     override fun onCreate(savedInstanceState: Bundle?) {
  9.         super.onCreate(savedInstanceState)
  10.         setContentView(R.layout.activity_main)
  11.         val myWebView: WebView = findViewById(R.id.webview)
  12.         //myWebView.settings.domStorageEnabled = true
  13.         myWebView.settings.javaScriptEnabled = true
  14.         myWebView.settings.allowFileAccess = true
  15.         myWebView.settings.allowContentAccess = true
  16.         myWebView.loadUrl("file:android_asset/Locked.html")
  17.        //myWebView.loadUrl("https://demo.grapecity.com.cn/SpreadJS/WebDesigner/")

  18.     }
  19. }
复制代码
(3) 测试打包
在虚拟设备上测试完成后,选中build打包成单个apk即可。在对应手机上安装apk文件,就可以开始体验了。
附件会包含示例工程,可供参考。

spreadjs-android.zip

116.29 KB, 下载次数: 2

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部