有时您可能需要在 Node.js 应用程序生成 Excel 文件。您可能需要从数据库或 Web 服务获取数据,然后输出到 Excel 文件以进行进一步的报告或分析。SpreadJS 可以在服务器端不依赖任何 Excel 的情况下实现这一点。
Node.js 是一种流行的事件驱动的 JavaScript 运行时环境,通常用于创建 Web 应用程序。它可以同时处理多个连接,并且不像大多数其他模型那样依赖于线程。
在本教程中,我们将使用 Spread JS 收集用户输入的信息并自动将其导出到 Excel 文件 - 所有这些都在 Node.js 应用程序中。凭借 Spread JS 的强大功能,无论是单独使用 Spread JS 还是使用 Node.js ,性能都不会受到影响。
SpreadJS 和 Node.js 入门
首先,我们需要安装 Node.js 和 Mock-Browser,BufferJS 和 FileReader,这些都可以在以下链接中找到:
我们将使用 Visual Studio 来创建应用程序。打开 Visual Studio 后,使用 JavaScript> Node.js> Blank Node.js 控制台应用程序模板创建一个新应用程序。这将自动创建所需的文件并打开“ app.js ”文件,本例中我们只需改动这一个文件。
对于 BufferJS 库,您需要下载该软件包,然后通过导航到项目文件夹(一旦创建)并运行以下命令,在项目中手动安装它:
npm install
安装完成后,可能需要打开项目的 package.json 文件并将其添加到“ dependencies ”部分。文件内容应如下所示:
<pre><code class="language-javascript">
{
"name": "spread-sheets-node-jsapp",
"version": "0.0.0",
"description": "SpreadSheetsNodeJSApp",
"main": "app.js",
"author": {
"name": "admin"
},
"dependencies": {
"FileReader": "^0.10.2",
"bufferjs": "1.0.0",
"mock-browser": "^0.92.14"
}
}
</code></pre>
在此示例中,我们将使用 Node.js 的文件系统模块。加载方式:
<pre><code class="language-javascript">
var fs = require('fs')
</code></pre>
为了将 SpreadJS 与 Node.js 一起使用,我们可以加载我们安装的 Mock-Browser:
<pre><code class="language-javascript">
var mockBrowser = require('mock-browser').mocks.MockBrowser
</code></pre>
在加载 SpreadJS 脚本之前,我们需要初始化模拟浏览器。初始化我们稍后可能需要在应用程序中使用到的变量,尤其是“ window ”:
<pre><code class="language-javascript">
global.window = mockBrowser.createWindow()
global.document = window.document
global.navigator = window.navigator
global.HTMLCollection = window.HTMLCollection
global.getComputedStyle = window.getComputedStyle
</code></pre>
初始化 FileReader 库:
<pre><code class="language-javascript">
var fileReader = require('filereader');
global.FileReader = fileReader;
</code></pre>
使用 SpreadJS npm 包
现在,需要将 SpreadJS 包和 ExcelIO 包添加到项目中。您可以通过右键单击解决方案资源管理器的“ npm ”部分并选择“安装新的 NPM 包”将这些添加到项目中。您可以通过搜索“ GrapeCity ”并安装以下 2 个包:
@grapecity/spread-sheets
@grapectiy/spread-excelio
将 SpreadJS npm 包添加到项目后,应该使用正确的依赖项自动上传 package.json:
<pre><code class="language-javascript">
{
"name": "spread-sheets-node-jsapp",
"version": "0.0.0",
"description": "SpreadSheetsNodeJSApp",
"main": "app.js",
"author": {
"name": "admin"
},
"dependencies": {
"@grapecity/spread-excelio": "^11.2.1",
"@grapecity/spread-sheets": "^11.2.1",
"FileReader": "^0.10.2",
"bufferjs": "1.0.0",
"mock-browser": "^0.92.14"
}
}
</code></pre>
现在我们需要在 app.js 文件中添加依赖:
<pre><code class="language-javascript">
var GC = require('@grapecity/spread-sheets')
var GCExcel = require('@grapecity/spread-excelio');
</code></pre>
使用 npm 软件包时,还需要设置许可证密钥:
<pre><code class="language-javascript">
GC.Spread.Sheets.LicenseKey = "<YOUR KEY HERE>"
</code></pre>
在这个特定的应用程序中,我们将向用户显示他们正在使用的 SpreadJS 版本。为此,我们可以请求 package.json 文件,然后引用依赖项以获取版本号:
<pre><code class="language-javascript">
var packageJson = require('./package.json')
console.log('\n** Using Spreadjs Version "' + packageJson.dependencies["@grapecity/spread-sheets"] + '" **')
</code></pre>
本例将 SpreadJS 与 Node.js 结合使用,演示了 SpreadJS 的多功能性和可扩展性!有关此类,演示,视频和教程的更多文章,请查看葡萄城官方博客页面。( https://www.grapecity.com.cn/blogs/how-to-generate-a-excel-spreadsheet-in-nodejs )
SpreadJS
纯前端表格控件 SpreadJS ( https://www.grapecity.com.cn/developer/spreadjs ),是市面上布局与功能都与 Excel 高度类似的一款表格控件,全中文操作界面,适用于.NET 、Java、移动端等多个平台的类 Excel 数据开发,备受华为、中通、民航飞行学院等国内知名企业客户青睐。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.