读取Excel:列名称被截断为前64个字符

我正在尝试通过.NET(C#)阅读Excel电子表格

以下是我使用的连接string:

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Windows\TEMP\96e7a8b720b642388d9dbbca49537678.xls; Extended Properties="Excel 8.0;HDR=Yes;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text";

当我看一下模式使用:

 using (var conn = new OleDbConnection(connStr)) { conn.Open(); result[OleDbSchemaGuid.Tables] = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); result[OleDbSchemaGuid.Columns] = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, null); result[OleDbSchemaGuid.Tables_Info] = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables_Info, null); conn.Close(); } 

result[OleDbSchemaGuid.Columns] ,所有列名都被截断为前64个字符。

我需要所有列的全名。

任何想法解决这个问题?

非常感谢查看这个问题。

蒂姆是正确的,根据这个MSDN的讨论 。 您需要使用一些第三方数据访问提供商,因为这是Jet的限制。

编辑

它也可以不使用任何第三方提供者。 我今天在微软的支持网站上看过这篇文章。 根据他们对Jet 4.0LEDB Source限制。