【问题标题】:How can I import an Excel spreadsheet on a 64 bit OS using ASP.NET?如何使用 ASP.NET 在 64 位操作系统上导入 Excel 电子表格?
【发布时间】:2010-12-22 14:03:36
【问题描述】:

我编写了一个 ASP.NET 页面,它从 Excel 电子表格导入数据没有任何问题。然后我把它移到服务器上,发现它在 64 位操作系统上不起作用。经过一番谷歌搜索后,我发现 MS 没有也不会有 64 位操作系统的 Jet DB 驱动程序。有人对在 64 位操作系统上使用 ASP.NET 页面轻松导入数据的方法有任何建议吗?客户只是想要一些简单的方法来批量导入数据。理想情况下,它将是 Excel 电子表格或 CSV 文件。理想情况下,它不会太复杂。他们希望非技术业务用户能够填写电子表格(或类似的东西),然后转到网页并将其上传到服务器。如果在 64 位操作系统上无法使用电子表格执行此操作,那么有人有什么建议吗?

谢谢, 科里

【问题讨论】:

  • “它也永远不会有适用于 64 位操作系统的 Jet DB 驱动程序”——不正确。 Office 2010 将具有 64 位版本,这意味着 A2010 的 ACE(即“Jet 5”)必须具有 64 位版本。它本身不是“Jet”,但它可以让您完全访问所有当前和旧版本的 Jet(据我所知,至少包括回到 Jet 2)。

标签: asp.net excel import 64-bit jet


【解决方案1】:

如果可能的话,我的建议是使用 CSV。

这样,您就不会被 Microsoft JET 驱动程序束缚。您可以使用简单的文件 IO 读取文件并对其进行解析。

【讨论】:

  • 呃,当然!有时,您过于专注于以复杂的方式解决问题,以至于忘记了最简单的方法。我一定会这样做的。谢谢。
  • 这种方法最终成为最简单的解决方案。这样我就可以将所有内容保留为 64 位。我在以下 URL 找到了其他人构建的一个不错的 CSV 阅读器:codeproject.com/KB/database/CsvReader.aspx。它就像一个魅力。
【解决方案2】:

您可以在 32 位模式下为该 asp.net 站点运行您的应用程序池 - 然后喷气驱动程序应该可以工作。

IIS7...

appcmd apppool set /apppool.name:MySitesAppPool /enable32BitAppOnWin64:true

IIS6...

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
aspnet_regiis.exe -i

查看我的回答here了解更多详情。

【讨论】:

  • JET 驱动程序是否安装在 64 位平台上?
  • 是的,但它们是 32 位库 - 因此您无法从运行应用程序的 64 位进程加载它们。
  • 在 32 位模式下运行应用程序池有什么缺点吗?如果需要,我可以“撤消”它吗?
  • 是的,您可以来回翻转 - 只需根据您的 IIS 版本将“true”更改为“false”或将“1”更改为“0”。我能看到的唯一缺点是您的应用程序池将被限制为 4 gigs 的 ram。除此之外,一切都应该差不多。
  • 除了 scott,我建议您创建一个 Web 服务并将导入电子表格的所有逻辑放入该 Web 服务并返回数据集或完成您的操作。因此,您只需为该 Web 服务而不是整个应用程序启用应用程序池
【解决方案3】:

SpreadsheetGear for .NET 可让您导入 Excel 工作簿,SpreadsheetGear 支持 64 位 .NET 和 32 位 .NET。

如果您想亲自尝试,可以查看实时示例here 并下载免费试用版here

免责声明:我拥有 SpreadsheetGear LLC

【讨论】:

    【解决方案4】:

    如果是Office 2007,那就用open XML格式……剩下的就很清楚了:)

    【讨论】:

      猜你喜欢
      • 2017-12-13
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-11
      相关资源
      最近更新 更多