javascript - 使用 jsdom 和 nodeJS 加载 SpreadJS
问题描述
我正在尝试使用 Jsdom 加载 SpreadJS,但它给出了错误:需要一个完全支持 HTML5 Canvas 的浏览器来运行 SpreadJS。
正如 jsom doc所说,它支持画布。
我已经为 jsom 安装了canvas-prebuilt。
这是我到目前为止所做的代码:
index.js
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const options = {
resources: 'usable',
runScripts: 'dangerously',
};
JSDOM.fromFile('index.html', options).then((dom) => {
setTimeout(() => {
console.log(dom.window.document.body.textContent.trim());
}, 1000);
});
索引.html
<!DOCTYPE html>
<html>
<head>
<title>SpreadJS ExcelIO</title>
<script src="libs/jquery-2.1.3.min.js" type="text/javascript"></script>
<script src="libs/jquery-ui.min.js" type="text/javascript"></script>
<link href="libs/gc.spread.sheets.excel2013white.10.1.0.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="libs/gc.spread.sheets.all.10.1.0.min.js"></script>
<script type="text/javascript" src="libs/gc.spread.excelio.10.1.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var worksheet = workbook.getActiveSheet();
worksheet.getCell(3,3).value("SpreadJS");
worksheet.getCell(5,5).value("SpreadJS");
worksheet.getCell(7,7).value("SpreadJS");
});
</script>
</head>
<body>
<div id="ss" style="height:600px ; width :100%; ">sss</div>
</body>
</html>
您的帮助将不胜感激。
解决方案
您应该能够稍微更改代码以获取 Spread 对象或其中的信息。
索引.html:
$(document).ready(function () {
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var worksheet = workbook.getActiveSheet();
worksheet.getCell(3,3).value("SpreadJS");
worksheet.getCell(5,5).value("SpreadJS");
worksheet.getCell(7,7).value("SpreadJS");
window.workbook = workbook;
});
index.js:
JSDOM.fromFile('index.html', options).then((dom) => {
setTimeout(() => {
console.log(dom.window.workbook.getActiveSheet().getCell(3,3).value());
}, 1000);
推荐阅读
- java - 当我测试我的 jar 文件时,JavaFX 拖放不起作用,但它在 IntelliJ 上工作
- javascript - html
- java - 在Java中将十进制转换为文本并再次返回
- git - .gitignore 文件的路径
- c++ - 使用默认复制构造函数会破坏 C++ 中的树
- angular - 在 Angular 中使用 mat-form-field 时启动画面挂起
- r - 如何将键值和图例放在热图的底部
- cassandra - 从 Cassandra 中的多 DC 集群中删除 DC
- javascript - 开玩笑模拟 readFile,writeFile 不加载我的模拟
- c# - 如何从 C# 中的组合框获取第一项?