【问题标题】:Is it possible to read data from an excel file without uploading it to the server in VB.Net?是否可以从 excel 文件中读取数据而不将其上传到 VB.Net 中的服务器?
【发布时间】:2013-03-12 18:52:35
【问题描述】:

我需要能够从 excel 文件中读取数据并在验证后将数据上传到数据库。

但是,我正在使用的服务器不允许 Web 应用程序的写入权限,所以我需要知道是否可以从 excel 文件中读取而不通过上传将其写入服务器?

到目前为止,我还没有找到明确的答案。

谢谢!

【问题讨论】:

  • 你没有告诉你是如何读取 excel 文件的。如果您使用的是 OleDb,则会出现问题,因为连接字符串需要一个文件。嗯,据我所知。
  • 您能否提供更多详细信息?

标签: asp.net vb.net excel


【解决方案1】:

假设您的上传控件名为fileUpload

您无需发送fileUpload.SaveAs("path")。您可以使用fileUpload.PostedFile.InputStream 阅读流。我将它用于包含 excel 表的 zip 文件(顺便说一下,该库是 Ionic):

using (var file = ZipFile.Read(fileUpload.PostedFile.InputStream))
{
    foreach (var zipEntry in file.Where(ze => ze.FileName.EndsWith(".xls")
                                           || ze.FileName.EndsWith(".xlsx")))
    {
        // process the Excel files here.
    }
}

对不起,我对 VB.net 不是很熟悉,所以下面的内容可能是错误的。但是因为您要求的是 VB.net 版本:

Using file As var = ZipFile.Read(fileUpload.PostedFile.InputStream)
    For Each zipEntry As var In file.Where(ze => ze.FileName.EndsWith(".xls") or ze.FileName.EndsWith(".xlsx"))
        ' process the Excel files here.
    Next
End Using

【讨论】:

  • 只有一个文件呢?是否有访问内部数据的标准方法?循环和存储数据?
  • 正如我在对您的问题的评论中提到的:据我所知,有两种读取 excel 文件的方法。一种是使用 excel 库,它非常慢且有问题,我不知道它是否可以从流中读取 excel 文件。或者您使用 OleDb 提供程序,它需要一个文件作为源。如果还有其他选择,我不知道。我的示例应该向您展示如何使用流。
猜你喜欢
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多