【问题标题】:Read Excel data with JQuery使用 JQuery 读取 Excel 数据
【发布时间】:2011-07-26 13:09:42
【问题描述】:

我想知道如何使用 jquery 从多工作表 MS Excel 2003 文件中读取数据。我已经阅读了 PHP/JQuery、ActiveX 等的几种解决方案,但我想用 JQuery ONLY 来做。知道这是如何工作的吗?

我找到了http://plugins.jquery.com/project/csv2table,这几乎完美地完成了这项工作,除了我必须将每张工作表分成一个 CSV 文件。我想放弃该步骤并直接从 Excel 文件中读取它。提前感谢您的帮助!

顺便说一句 - 我在 FireFox 4 中工作,不需要跨浏览器支持。

【问题讨论】:

  • 这有点疯狂
  • Excel 2003 文件的格式非常复杂。你愿意花多少时间来完成这个项目?这需要一段时间..
  • 我不认为你会找到一个 jquery 解决方案,但你很可能会找到一个 microsoft API for javascript。
  • 我不敢相信这个问题得到了这么多人的支持。 Jquery 是一个 javascript 库,主要用于简单的 html 查询。 OP 想要使用该库读取二进制 Excel 文件。从哪里读?如果没有 ajax,javascript 中就没有从服务器读取文件的功能。所以它必须是它应该读取的本地文件。使用 javascript,读取这样的 Excel 文件需要很长时间。但是我们从使用 jquery 读取文件中获得了什么?对我来说,这听起来像是一个糟糕的设计。

标签: javascript jquery html excel firefox


【解决方案1】:

Office Web Components 提供了一个通过 javascript(或 vb)生成 excel 文档的 api。它们的文档记录很差,但对于 Intranet 类型的应用程序,它们可以完成工作。我已将它们用于 IE6 中的数据透视表功能,但不知道它是否适用于 Firefox。

http://en.wikipedia.org/wiki/Office_Web_Components

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=beb5d477-2100-4586-a13c-50e56f101720&DisplayLang=en

【讨论】:

    【解决方案2】:

    实际上,没有 OWC 和这些奇异的插件也是可能的,但需要手动工作。 另一件事——它只能在本地机器上使用——不要指望你的工作表像一个网络服务器。另一种可能性是在网络共享上设置它,但我不确定它在沙盒中如何工作。

    编辑:我知道问题是关于 Excel 2003 格式的。然而,仍然有关于相同功能的谷歌查询,今天人们正在使用 MS Office 版本 2010/2013。所以,我相信这个答案会对读者有所帮助。

    所以,这里是:

    1. 使用zip.js 可以打开压缩文件。这意味着您可以从 Office 2007(.docx、.xlsx 等)开始打开 ​​MS Office 文件。较旧的办公文件具有自定义格式,您无法将它们作为压缩文件阅读
    2. 打开文件后,可以使用包含各种文件的分层文件夹结构。数据本身在 /xl/worksheets/[worksheet name].xml/xl/sharedStrings.xml 中,这意味着您必须使用 XML 解析器将其挖掘出来并在之后进行关联。
    3. 幸运的是,jQuery 中提供了 XML 解析器:$.parseXML('...')

    玩得开心;)

    【讨论】:

    • -1:仅适用于 xlsx。 excel 2003 使用旧的二进制格式
    • @Nirk - 我知道,你可以从我的回答中读到这一点('......你可以从 Office 2007 开始打开 ​​MS Office 文件......')
    • 您的反应类似于将 java 与 javascript 混淆。该问题写于 2011 年,在 office 2007 和 office 2010 发布之后,这意味着“Excel 2003”特指从该版本生成的文件。 Excel 2003 iirc 无法生成 OOXML
    【解决方案3】:

    我知道这个问题已经过时了,但我有一个基本的解析器,可以支持你所要求的大部分内容:http://oss.sheetjs.com/js-xls/

    【讨论】:

    • 制作插件很重要 - 有什么方法可以在不在服务器上安装大型插件的情况下工作,还是需要服务器?
    • @Jakob 该网络链接完全在网络浏览器中运行(无需服务器,无需上传数据——试一试并检查网络流量)。也可以在服务端的nodejs中使用。
    【解决方案4】:

    您可以在 npm 网站上找到一些适用于 nodeJS 的工具(库)。 有一个叫做 excel 的文件可以读取 xlsx 文件,还有一个叫做 office 的文件可以读取大多数 ms office 文件。 现在因为它无论如何都是 Javascript,你应该可以下载并查看源代码以找到将其集成到客户端的方法。 希望有帮助

    【讨论】:

      【解决方案5】:

      将 CSV 文件中的 excel 转换为从 Jquery 中读取。使用 Jquery 插件 CSV2Table

      <div id="view1"></div>
      <script type="text/javascript">
      $(function(){
          $('#view1').csv2table('Path/Anil.csv');
      });
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-23
        • 1970-01-01
        • 2016-03-20
        相关资源
        最近更新 更多