Excel电子表格中的VARCHAR大小限制

我试图用C#读取SQL Server 2008数据库中的一些数据到Excel 2007电子表格中,使用这个连接string:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=foo.xlsx;Extended Properties='Excel 12.0 XML;HDR=YES' 

数据库中的一列是VARCHAR(1000)。 当我尝试在电子表格中重新创build架构时,似乎Excel的VARCHAR最多只支持255. 本页build议“单元格可以包含的字符总数”约为32K,所以原则上应该可以得到一个更长的string

是否有一个简单的方法来解决255个字符的限制?

尽pipeXLOPER12现在将支持长达32,767个Unicode字符的string,Excel 2010中的xlfEvaluate(和其他)excel C-Api函数仍然被限制为255个字符长度。如果传递string的长度超过XLOPER12,它将返回xltypeErr比255。

用户在Excel中看到的所有string都有许多版本,现在已经在内部存储为Unicodestring。 Unicode工作表string最长可达32,767(215 – 1)个字符,并且可以包含任何有效的Unicode字符。

首次引入C API时,工作表string的string长度限制为255个字符,并且C API反映了这些限制。 在Excel 2007中,C API被更新以处理Excel长Unicodestring。 这意味着以正确方式注册的DLL函数可以接受Unicode参数并返回Unicodestring。

注意:为了向后兼容,C API仍然完全支持字节string,但是它们仍然具有255个字符的限制。 除了截断string,或将string分成多个单元格之外,没有简单的解决方法。