C#通过OLEDB从Excel中提取格式化的文本

我正在读取已格式化文本的大型excel文件中的数据。 我通过oleDBConnectionGetOleDbSchemaTable将数据提取到DataTable对象。 但提取的数据不包含任何格式化的信息。

我的要求是,我只需要提取非删除线文本。

我在阅读时没有任何问题,一切都很好。 但我的提取应该基于excel中的文本格式,我无法find解决scheme。

任何要在connectionString中添加的内容如下:

 connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + "; Extended Properties=\"Excel 12.0 Xml;HDR=YES;Mode=Read;ReadOnly=True;\""; 

约束:

  1. 使用OleDBConnection – 没有互操作性

  2. 读取到DataTable对象

据我所知,你不能只用ACE驱动程序来做这件事。 这就是说,如果约束被解除,这是使用的工具: http : //closedxml.codeplex.com/

你应该改变你的方法来使用开放的XML。 这是.NET,而不是COM

信息: http : //support.microsoft.com/kb/840817

下载SDK: http : //www.microsoft.com/en-us/download/details.aspx? displaylang = en& id=5124

如果您不想使用Interop,则必须使用“Open Xml”获取格式信息。 没有别的select。 有比夫,我只提到正确性,但是你的连接string清楚地表示XML,所以比夫已经出来了。

一旦你打开“Open Xml”,你就可以像“ DataTable一样“模拟”读取范围/表格/单元格。

有了你的限制,只有#1会给你格式化信息。