1

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

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

我在阅读时没有任何问题,一切都很好。但是我的提取应该基于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 - 无互操作

  2. 读取数据表对象

4

3 回答 3

1

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

于 2012-11-08T04:39:45.730 回答
0

如果您不想使用 Interop,则必须使用“Open Xml”来获取格式信息。没有其他选择。我提到的 Biff 只是为了正确,但您的连接字符串清楚地指示 XML,所以 Biff 不存在。

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

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

于 2012-11-08T04:48:35.893 回答
0

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

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

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

于 2012-11-08T04:42:12.640 回答