Sql server 2008 Excel电子表格中的VARCHAR大小限制
我正在尝试使用以下连接字符串将SQL Server 2008数据库中的一些数据读入带有C#的Excel 2007电子表格:Sql server 2008 Excel电子表格中的VARCHAR大小限制,sql-server-2008,excel-2007,connection-string,Sql Server 2008,Excel 2007,Connection String,我正在尝试使用以下连接字符串将SQL Server 2008数据库中的一些数据读入带有C#的Excel 2007电子表格: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=foo.xlsx;Extended Properties='Excel 12.0 XML;HDR=YES' 数据库中的一列是VARCHAR(1000)。当我尝试在电子表格中重新创建模式时,Excel的VARCHAR似乎最多只支持255个。建议“一个单元格可以包含的字符总数”约为32
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=foo.xlsx;Extended Properties='Excel 12.0 XML;HDR=YES'
数据库中的一列是VARCHAR(1000)。当我尝试在电子表格中重新创建模式时,Excel的VARCHAR似乎最多只支持255个。建议“一个单元格可以包含的字符总数”约为32K,因此原则上,应该可以在中获得更长的字符串
是否有一种简单的方法可以绕过255个字符的限制?尽管XLOPER12现在支持最多32767个Unicode字符长的字符串,但XLFEevaluate(和其他)excel C-Api函数在excel 2010中仍然限制为255个字符长。如果传递的XLOPER12字符串长度超过255,它将返回xltypeErr 用户在Excel中看到的许多版本的所有字符串现在都作为Unicode字符串存储在内部。Unicode工作表字符串的长度最多可以为32767(215-1)个字符,并且可以包含任何有效的Unicode字符 当C API首次引入时,工作表字符串是长度限制为255个字符的字节字符串,C API反映了这些限制。在Excel2007中,C API更新为处理Excel长Unicode字符串。这意味着以正确方式注册的DLL函数可以接受Unicode参数并返回Unicode字符串 注:
为了向后兼容,C API仍然完全支持字节字符串,但是它们仍然具有相同的255个字符的限制。除了截断字符串或将字符串分成多个单元格之外,没有简单的解决方案。我没有引用这一点,因此我不会给出答案,但我相信您不能。255个字符的限制也适用于SSI。我怀疑这是Excel ODBC驱动程序固有的。我希望我是错的,这有时对我来说是非常有价值的。虽然我很欣赏你在这方面所做的努力,但你的回答是迂回的,结论有点不清楚。你基本上是说没有办法绕过255个字符的限制吗?为了将来的参考,我建议在第一句话中明确地说明这一点,然后再提供进一步的细节来支持您的案例。