Excel无法插入超过255个字符?

我正在使用OLE DB驱动程序插入超过255个字符到Excel工作表中,但出现错误:

exception详细信息:System.Data.OleDb.OleDbException:该字段太小,无法接受您尝试添加的数据量。 尝试插入或粘贴更less的数据。

似乎从这个线程 ,这是一个Excel的限制。 即使微软网站似乎也这样说。

那么这是否意味着我无法编程,但我可以手动? 因为我在Excel中手动input时可以input超过255个字符。 那么它是一个Microsoft.ACE.OLEDB.12.0(AccessDatabaseEngine.exe)驱动程序的限制?

你引用的链接大约是256列而不是字符。 这里用一个解决方法描述了256个字符的问题: http : //support.microsoft.com/kb/213841

我发现了一个更有效的方法来处理这个问题,我的参考资料是下面的2个链接

http://support.microsoft.com/kb/316934

http://www.codeproject.com/Articles/37055/Working-with-MS-Excel-xls-xlsx-Using-MDAC-and-Oled

基本上不使用数据适配器,数据集和参数在Excel中插入行(这从来没有为我工作),而是直接使用命令对象从代码运行SQL插入

这里你必须做的

  1. 将宽字段声明为MEMO而不是string或CHAR“CREATE TABLE WorkSheetName(field1 INT,field2 MEMO,field3 …);”
  2. 构build插入语句,如“INSERT INTO WorkSheetName(field1,field2,…)VALUES(1234,'Any long string here …',…)”
  3. 声明一个DbCommand来运行上面的Create table和Insert语句,这里我使用了来自企业库的命令obj

    DbCommand dbCommand = m_dbConnection.CreateCommand(); dbCommand.CommandText =“创build表…”; dbCommand.CommandType = CommandType.Text; dbCommand.ExecuteNonQuery();

    dbCommand.CommandText =“插入到…”; dbCommand.CommandType = CommandType.Text; dbCommand.ExecuteNonQuery();

我对这个问题的解决方法是添加一个文本,其长度在列的第一行上的长度超过255个字符。 OleDB将这个列作为MEMOtypes,然后它可以在单元格中插入超过255个字符。