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

时间:2012-11-08 04:27:45

标签: c# excel datatable connection-string oledb

我正在从一个已经格式化文本的大excel文件中读取数据。我通过DataTable&提取数据到oleDBConnection对象。 GetOleDbSchemaTable。但提取的数据不包括任何格式化的信息。

我的要求是,我只需要提取非Strikethrough文本。

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

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 - No Interop

  2. 读取DataTable对象

3 个答案:

答案 0 :(得分:1)

据我所知,只有ACE驱动程序才能做到这一点。话虽如此,如果限制被解除,这是使用的工具: http://closedxml.codeplex.com/

答案 1 :(得分:0)

您应该切换使用开放XML的方法。它是.NET,而不是COM

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

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

答案 2 :(得分:0)

如果您不想使用Interop,则必须使用“Open Xml”来格式化信息。没有其他选择。我提到的Biff只是为了正确,但你的连接字符串清楚地表明了XML,所以Biff已经出局了。

打开“打开Xml”后,您可以“模拟”读取范围/表格/单元格,如DataTable

根据您的约束,只有#1会为您提供格式信息。