【问题标题】:In Memory OleDbConnection to Excel File在内存中 OleDbConnection 到 Excel 文件
【发布时间】:2010-10-28 20:47:19
【问题描述】:

我想打开一个 OleDbConnection 到内存中的 Excel 文件作为 文件流。有谁知道这是否可行以及如何实现?

大图 我想将文件字节传递到 .NET CLR 存储过程中并提取数据。也许有更好的方法可以做到这一点,但我没有考虑过。

提前致谢。

【问题讨论】:

  • 是不是要将表格数据传递给存储过程?
  • 理想情况下,我只需将 Excel 文件作为 Blob 或字节 [] 传递给 .NET SP。在 SP 内部,我将打开它并处理数据。

标签: .net sql sql-server-2005 excel


【解决方案1】:

您可以使用 SpreadsheetGear 从内存中的字节数组或使用 SpreadsheetGear.Factory.GetWorkbookSet().Workbooks.OpenFromMemory(byte[]) / OpenFromStream(System.IO.Stream) 从任何流中打开文件。

免责声明:我拥有 SpreadsheetGear LLC

【讨论】:

    【解决方案2】:

    JP 提供的 VSTO 解决方案绝对是可行的。但是,如果您真的想使用 OleDb 和一些 SQL,请查看this artcile:这是一篇 MS 知识库文章,介绍了如何使用 OleDb 将数据从 excel 导入 SQLSever。

    【讨论】:

    • 埃斯特班,优秀的文章。但是,在所有提到的方法中,似乎都依赖于将 Excel 文件保存到磁盘。知道如何利用这些技术附加到内存中的 Excel 文件或 Blob 列吗?谢谢。
    • @Steve:我不知道,但我不这么认为。
    • @EstebanAraya 我在这里问了一个关于但关于访问的类似问题:stackoverflow.com/questions/14475968/… 请你检查一下。
    • 这并没有回答我也在寻找答案的问题
    【解决方案3】:

    您可以使用VSTO 提取数据。它有一个object model for Excel。然后将您想要的内容传递给proc。我认为这比尝试让 CLR 存储过程破译 Excel 文件流更好。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多