阅读 Azure 中作为 blob 上传的 ExcelSheet

本文关键字:ExcelSheet blob Azure 阅读 | 更新日期: 2023-09-27 18:31:26

我正在使用 asp.net 的文件上传控件并上传带有一些数据的 excel。我无法将其保存在某个文件夹中。我可以有 excel 工作表文件流,也可以在将 excel 作为 blob 上传后拥有 Blob 流。现在我想将该 excel 工作表第 1 张转换为数据表,那么我该怎么做?我正在使用C# .NET。我不想使用互操作库。我可以使用外部库。Oledb 连接失败,因为我没有任何 excel 的物理路径作为数据源。我尝试了以下链接:

1) http://www.codeproject.com/Articles/14639/Fast-Excel-file-reader-with-basic-functionality

2) http://exceldatareader.codeplex.com/

请帮忙。

阅读 Azure 中作为 blob 上传的 ExcelSheet

根据Excel文件的类型,您可以使用您发布的示例或选择OpenXML替代方案(对于xlsx文件): http://openexcel.codeplex.com/

现在,物理路径的问题很容易解决。将文件保存到 Blob 存储非常棒。但是,如果需要,也可以将其保存在本地资源中以在本地拥有它。这将允许您使用简单的 OleDb 连接处理文件。完成文件后,只需将其从本地资源中删除即可(由于你也将其上传到 Blob 存储中,因此它仍然可用)。

不要忘记有某种清理机制,以防处理失败。您不希望最终得到一个装满临时文件的磁盘(即使这可能需要一段时间才能发生)。

在此处阅读有关本地资源的更多信息:http://msdn.microsoft.com/en-us/library/windowsazure/ee758708.aspx

您应该使用 OpenXML SDK,这是官方建议的处理 MS Office 文档的方式 - http://www.microsoft.com/download/en/details.aspx?id=5124

我首先根据链接创建了本地存储:

http://msdn.microsoft.com/en-us/library/windowsazure/ee758708.aspx

上面桑德里诺建议的。感谢桑德里诺。然后我使用了oledb连接,它给了我一个错误"Microsoft.Jet.Oledb.4.0 dll未注册"。然后,我登录到 azure 服务器,并在 IIS 中更改了 32 位的应用程序池配置。要将应用程序池更改为 32 位,请参阅以下链接:

http://blog.nkadesign.com/2008/windows-2008-the-microsoftjetoledb40-provider-is-not-registered-on-the-local-machine/

你遵循的方法不正确,正如你所说,你登录到 azure 并进行了更改,在 azure 上运行的 VM 对你来说不是永久性的。对于任何更新,您将获得新的虚拟机计算机。您可能需要为此找到转机,而不是手动修改。 可以使用 Azure 应用中的启动任务。 请参阅下面的链接,它可能会对您有所帮助。

http://msdn.microsoft.com/en-us/library/gg456327.aspx