V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
powertoolsteam
V2EX  ›  推广

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

  •  
  •   powertoolsteam · 2019-03-06 14:16:28 +08:00 · 1510 次点击
    这是一个创建于 2091 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1175 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 18:36 · PVG 02:36 · LAX 10:36 · JFK 13:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.