有时您可能需要在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,这些都可以在以下链接中找到:
- Installing Node.js via Package Manager
- 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>