OLEDB或Excel对象或数据库哪一个最好

Which One is Best OLEDB Or Excel Object Or Database(OLEDB或Excel对象或数据库哪一个最好)
本文介绍了OLEDB或Excel对象或数据库哪一个最好的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要使用Excel 2007文件来读取数据。至于哪一种是最好的方式:

  1. 使用OLEDB提供程序
  2. Excel Interop对象
  3. 将Excel数据转储到数据库并使用过程

请指导我选择。

推荐答案

以下是我的看法:

1。使用OLEDB提供程序

只有在具有简单、统一的结构化表格的情况下才能满足您的需要。例如,如果您必须提取任何单元格格式信息,则它不会对您有太大帮助。Jet引擎的有缺陷的"行类型猜测"算法可能会使这种方法几乎无法使用。但是,如果可以从每个表的前几行唯一地标识数据类型,这种方法可能就足够了。优点:它速度很快,即使在没有安装MS Excel的机器上也能运行。

2。Excel Interop对象

可能非常慢,特别是与选项1相比,并且您需要安装MS Excel。但您可以完全访问Excel的对象模型,您可以提取存储在您的Excel文件中的几乎所有信息(例如:格式信息、颜色、框架等),并且您的工作表可以像您想要的那样复杂。

3。将Excel数据转储到数据库并使用过程

取决于您考虑的数据库转储类型,以及您手头是否有数据库系统。如果您正在考虑MS Access,这将在内部再次使用Jet引擎,其利弊与上面的方法1相同。

其他选项:

4。编写Excel VBA宏以读取所需数据并将其写入文本文件。从C#程序中读取文本文件。赞成:比方法2快得多,在访问元信息方面具有相同的灵活性。缺点:你必须把你的程序分成VBA部分和C#部分。并且您的计算机上需要安装MS Excel。

5。使用第三方库/组件执行此任务。有大量的图书馆为这项工作服务,免费的和商业的。问问谷歌,或者在这里搜索一下就知道了。其中许多库不需要在计算机上安装MS Excel,如果要将数据作为服务器进程的一部分提取,它们通常是最佳选择。

这篇关于OLEDB或Excel对象或数据库哪一个最好的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)