开始菜单里有个导入导出工具(DTS)

解决方案 »

  1.   

    或在sqlserver里直接:
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\aa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...表名
      

  2.   

    EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect out c:\temp1.xls -c -q -S"servername" -U"sa" -P""'
    //导出
      

  3.   

    可以在SQL中直接读取
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\aa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...工作表名$
      

  4.   

    现在有这么个问题:
    在excl中,格式为:sname |sub1(课程1的成绩)|sub2|sub3|...|subn|
    eg: sname 数学  英语  语言
        张三  82    60    75
        李四  100   90    100
    但要把它转化到sql表中的格式是:sname | sub(课程名) | score () 
    即就是  sname  sid   sub     score
            张三   001   数学    82
            张三   001   英语    60
            张三   001   语言    75
            李四   002   数学    100
            李四   002   英语    90
            李四   002   语言    100如何转化啊?
      

  5.   

    SELECT sname,数学 as sid,英语 as sub,语言 as score
    into 你要生成的表名
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\my documents\excel表.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...工作表名$
      

  6.   

    看错了,用交叉表来处理
    SELECT sname
    ,sum(case sub when '数学' then score end) as 数学
    ,sum(case sub when '英语' then score end) as 英语
    ,sum(case sub when '语言' then score end) as 语言
    into 你要生成的表名
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\my documents\excel表.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...sheet3$
    group by sname
      

  7.   

    1、先用excel导到一个中间表中
    SELECT * into 中间表名
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\aa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...表名
    2、得到目标表
    select * into 目标表 from (
    select sname,'000' sid,'数学' sub,数学 score from 中间表名
    union all
    select sname,'000' sid,'英语' sub,英语 score from 中间表名
    union all
    select sname,'000' sid,'语言' sub,语言 score from 中间表名) tem order by sname3、得到sid
    declare @a int,@b varchar(100)
    set @a=0
    update 目标表 set @a=case when @b=sname then @a else @a+1 end,@b=sname,sid=right('000'+cast(@a as varchar(3)),3)