• excel导入SQL Server的问题


    下面这个导入语句解决了excel中含有混合的字段会导入sql server会变成null的问题,excel格式是.xls,数据库版本SQL Server 2008(SQL Server 2008需要设置的,还挺烦的,后面我会贴出来)

    SELECT * into test

    FROM OpenDataSource
    ('Microsoft.Jet.OLEDB.4.0','Data Source="E: est.xls";
      User ID=Admin;Password=;Extended properties="Excel 5.0;
      HDR=Yes;IMEX=1;"')...[test$]

    1.HDR(HeaDer Row)设置

    若指定值为Yes,代表Excel档中的工作表第一行是栏位名称

    若指定值为No,代表Excel档中的工作表第一行就是资料了,没有栏位名称

    2.IMEX(IMport EXport mode)设置

    IMEX有三种模式,各自引起的读写行动也不合,

    0 is Export mode

    1 is Import mode

    2 is Linked mode (full capabilities)

    不合的IMEX参数代表不合的读写行动,IMEX参数说明:

    当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用处。

    当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用处。

    当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时增援“读取”与“写入”用处。

    所谓“4.5010763038+14 ”只是显示用的,实际还是“450107630382345”。所以使用读取即 IMEX=1时,得到“4.5010763038+14 ”。

    而 IMEX=0时,得到“450107630382345”。

    这句不是太懂,我excel中的数字都是文本格式,导入到数据库中,用上面的导入语句,有的会变成科学计数的格式,这里把IMEX=1改为IMEX=0就OK了。

    参考文档:http://www.cnblogs.com/panjun/archive/2012/10/19/2731106.html

    关于导入语句中的Excel版本问题,我不是很明白。在网上查了资料,这是excel的开发版本号,但是Excel 5.0对应的是哪个版本?如果按照下面的对应关系,Excel 5.0比excel97还早,我的excel是2003版本做的,我用2007和2013编辑。

    excel97   Ver. 8.0
    excel2000   Ver. 9.0
    excel2002(xp)   Ver. 10.0
    excel2003   Ver. 11.0
    excel2007   Ver. 12.0
    excel2010   Ver. 14.0

    image

    而且导入语句中的Excel 5.0不能改为8.0,改为8.0就会出错。

  • 相关阅读:
    JS基本概念 -- 操作符 -- 布尔操作符
    JS基本概念 -- 操作符 -- 一元操作符
    JS基本概念 -- 数据类型(二)
    JS基本概念 -- 数据类型(一)
    JS基本概念 -- 语法
    使用Browsersync热更新热替换,解放F5
    js中汉字utf8编码互相转换
    npm 使用代理 install 插件
    时间戳转换成yyyy-mm-dd
    Backbone.View.extend之后的构造函数实例化经历了一些什么处理
  • 原文地址:https://www.cnblogs.com/cnmarkao/p/3695927.html
Copyright © 2020-2023  润新知