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

时间:2012-08-24 05:02:47

标签: asp.net .net excel oledb

我正在尝试通过.NET(C#)

阅读excel电子表格

以下是我使用的连接字符串:

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个字符。

我需要所有列的全名。

有什么想法解决这个问题?

很高兴看到这个问题。

1 个答案:

答案 0 :(得分:0)

根据MSDN上的discussion,Tim是对的。您需要使用某些第三方数据访问提供程序,因为这是Jet的限制。

编辑

也可以在不使用任何第三方提供商的情况下完成。我今天在Microsoft's Support Site看了这个。根据它们的限制Jet 4.0LEDB Source