如何使用JavaScript读取xlsx文件

3

我已经通过谷歌搜索了几个小时,尝试了很多方法都没有成功。

我的目的很简单,使用 JavaScript 读取 Excel 电子表格中的单元格值(使用字段名称和索引号),然后在网页上将该数据作为字符串显示。

每次我在谷歌里搜索,它要么会把我带到这里 http://codetheory.in/parse-read-excel-files-xls-xlsx-javascript 但这个网站无法正常工作,并且我认为它也不是我想要的,因为它似乎只是创建其他文件以供使用。

或者它会带我来到堆栈溢出的其他帖子,但那些要么不能回答我的问题(例如,他们有转换器,你需要将 xlsx 文件拖放到转换器中以将其转换为 CSV 或 JSON,但这不会起到自动化作用),要么它们有链接,链接到其他帖子,而那些内容与本题无关。

编辑----- 为了明确,我只需构建一个显示 xslx 内容的网页。 xslx 文件将每天被替换。

除了保持网页和 xslx 文件的文件夹中的内容外,我对服务器上发生的事情没有控制权。

这个过程必须是完全自动化的(上传 xslx 文件仅需复制和粘贴即可)。


1
如果文件在服务器上,所提到的库将可以正常工作。如果它是本地的,你无论如何也无法从浏览器访问它。 - charlietfl
2个回答

1
Excel没有可供JavaScript客户端访问的API。相反,使用VBA可以从电子表格中提取数据,然后打开一个网络浏览器,并将JavaScript编写到浏览器正在展示的文档中。
要做你想做的事情,需要通过一些服务器端API(可能是.NET)访问Excel数据,然后将该数据作为HTML、CSS和JavaScript传递给客户端。
FYI:你引用的那个例子是一个使用node的服务器端解决方案。

不能在服务器端操作。我完全无法触及它。我必须创建一个JavaScript文件来读取xlsx文件的内容并在HTML页面中显示它。就这样。只有一个包含所有内容的文件夹,可以运行并复制到服务器上。每天xlsx文件都会更改。客户端将加载网页。就这样。不需要安装任何东西,只需复制文件即可。 - skyzzle
你所尝试的并不可能实现。但是,如果将Excel文件导出为文本文件(例如.csv),您可以调用AJAX来获取数据并使用它,但不能处理.xslx文件。请参阅此链接以了解详情:https://dev59.com/MFjUa4cB1Zd3GeqPQVe7 - Scott Marcus

1
你应该查看这里的答案:如何在客户端上读取Excel文件内容? 有一个可行的解决方案,利用了javascript中的SheetJS库和FileReader API。
要以这种方式读取Excel文件,首先需要使用FileReader API将该文件读取为二进制字符串,然后使用SheetJS功能读取该二进制字符串
这可以完全在客户端进行,不涉及编写另一个文件或将文件上传到服务器,并且由于它是标准javascript,只要Web浏览器支持FileReader API,它就应该能够在任何地方工作。
相关链接:
https://github.com/SheetJS/sheetjs
https://developer.mozilla.org/en-US/docs/Web/API/FileReader

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接