如何在 Node.js 中生成前端 Excel 电子表格(上)

2019-03-06 14:16:28 +08:00
 powertoolsteam

有时您可能需要在 Node.js 应用程序生成 Excel 文件。您可能需要从数据库或 Web 服务获取数据,然后输出到 Excel 文件以进行进一步的报告或分析。SpreadJS 可以在服务器端不依赖任何 Excel 的情况下实现这一点。

Node.js 是一种流行的事件驱动的 JavaScript 运行时环境,通常用于创建 Web 应用程序。它可以同时处理多个连接,并且不像大多数其他模型那样依赖于线程。

在本教程中,我们将使用 Spread JS 收集用户输入的信息并自动将其导出到 Excel 文件 - 所有这些都在 Node.js 应用程序中。凭借 Spread JS 的强大功能,无论是单独使用 Spread JS 还是使用 Node.js ,性能都不会受到影响。

点击下载项目示例( https://grapecitycontentcdn.azureedge.net/blogs/spread/20180827-using-spread-with-nodejs/spreadsheetsnodejsappp.zip )

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 数据开发,备受华为、中通、民航飞行学院等国内知名企业客户青睐。

1512 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/541718

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX