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

时间:2010-12-20 09:35:14

标签: excel export-to-excel ole

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

  

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

this thread似乎是Excel的限制。甚至微软网站似乎也这样说here

这是否意味着我无法以编程方式,但我可以手动?因为我在Excel中手动输入时可以输入超过255个字符。这是Microsoft.ACE.OLEDB.12.0(AccessDatabaseEngine.exe) driver限制吗?

3 个答案:

答案 0 :(得分:4)

我找到了一种更有效的方法来处理这个问题,我的参考资料是下面的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而不是字符串或CHAR “CREATE TABLE WorkSheetName(field1 INT,field2 MEMO,field3 ...);”
  2. 构建插入语句,如 “INSERT INTO WorkSheetName(field1,field2,...)VALUES(1234,'这里有任何长字符串......',......)”
  3. 声明一个DbCommand来运行上面的Create表和Insert语句,这里我使用的是来自企业库的命令obj

    DbCommand dbCommand = m_dbConnection.CreateCommand();  dbCommand.CommandText =“Create Table ...”;  dbCommand.CommandType = CommandType.Text;  dbCommand.ExecuteNonQuery();

    dbCommand.CommandText =“Insert Into ...”;  dbCommand.CommandType = CommandType.Text;  dbCommand.ExecuteNonQuery();

答案 1 :(得分:4)

我对此问题的解决方法是在列的第一行添加长度超过255个字符的文本。 OleDB会将此列视为MEMO类型,然后它可以在单元格中插入超过255个字符。

答案 2 :(得分:2)

您所指的链接大约是256列而不是字符。此处描述了256个字符的问题,并提供了解决方法:http://support.microsoft.com/kb/213841