使用ADO.NET创建Excel工作表(OleDb) - >支持哪些数据类型?

时间:2010-01-20 13:40:56

标签: c# excel ado.net oledb

我尝试使用ADO.NET(OleDb)创建Excel(2003)工作表。

我能够使用OleDbCommand创建工作表:

var cnnString = "Provider=Microsoft.Jet.OLEDB.4.0;...";
var cnn = new OleDbConnection(cnnString);
var cmd = cnn.CreateCommand();
cnn.Open();
cmd.CommandText = "CREATE TABLE MySheet (ID char(255), Field1 char(255))";
cmd.ExecuteNonQuery();

按预期工作。

这是我的问题: 在CREATE TABLE命令中Excel支持哪些DataTypes(如char(255))?我做谷歌但没有找到任何文件或提示。

感谢您的帮助。

2 个答案:

答案 0 :(得分:8)

Excel仅识别一组有限的data types。例如:

  • 所有数字列都是双打
  • 所有字符串列(备忘列除外)都是255个字符的Unicode字符串

<强>数字

所有版本的Excel:

  • 8字节双
  • [signed] short [int] - 用于布尔值和整数
  • unsigned short [int]
  • [签名长] int

<强>字符串

所有版本的Excel:

  • [signed] char * - 以null结尾的字节字符串,最多255个字符
  • unsigned char * - 长度计算的字节字符串,最多255个字符

仅限Excel 2007+:

  • unsigned short * - 最多32,767个字符的Unicode字符串,可以是空终止或长度计数

答案 1 :(得分:0)

您将始终直接使用Excel对象模型获得更好的结果,并且不需要更多代码。见example on SO

或者如果你真的很想你可以试用Open XML SDK 2.0 for Microsoft Office