代码之家  ›  专栏  ›  技术社区  ›  gsharp

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

  •  2
  • gsharp  · 技术社区  · 16 年前

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

    我可以用OLEDB命令创建工作表:

    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();
    

    按预期工作。

    我的问题是: excel在create table命令中支持哪些数据类型(如char(255))?我做过谷歌,但没有找到任何文档或提示。

    谢谢你的帮助。

    2 回复  |  直到 16 年前
        1
  •  8
  •   Gabriel McAdams    16 年前

    Excel只识别有限的 data types . 例如:

    • 所有数值列都是双精度的
    • 所有字符串列(备注列除外)都是255个字符的Unicode字符串

    数字

    Excel的所有版本:

    • 8字节双精度
    • [有符号]短[int]_“用于布尔值和整数
    • 无符号短[int]
    • [长签名]int

    串

    Excel的所有版本:

    • [有符号]char*_“以空结尾的字节字符串,最多255个字符
    • 无符号字符*长度计数的字节字符串,最多255个字符

    仅限Excel 2007+:

    • 无符号短*_“Unicode字符串,最多32767个字符,可以以空结尾或长度计数
        2
  •  0
  •   Community Mohan Dere    9 年前

    直接使用Excel对象模型总会得到更好的结果,而且不需要太多的代码。见 example on SO

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