网站首页 > 书籍教程 > ASP教程 > asp将数据导入excel后,中文出现乱码??怎么解决

asp将数据导入excel后,中文出现乱码??怎么解决

  • 作者:互联网
  • 时间:2009-06-25 17:44:35
问:asp将数据导入excel后,中文出现乱码??怎么解决
  
    
  <%  
  Re***nse.Charset ;  =   "UTF-8"  
  '前面包含的文件是和来链接到数据库,你要修改这个文件以链接到不同的库  
   
  sql1="select   *   from   apply   "     '这里是要输出EXCEL的查询语句,如   "SESECT   *   FORM   CAI   WHERE   性别='女'"  
  filename="ex***4.xls"       '   要输出的EXCEL文件的文件名,   你只要改以上两句就行了,其它的都不要改.  
   
  call   toexcel(FILENAME,sql1)  
  set   conn=nothing  
   
  function   ReadText(FileName)     '这是一个用于读出文件的函数  
      're***nse.write se***r.MapPath(FileName)  
      're***nse.end 
  set   ad***erver.CreateObject("Ad***.Stream")  
  with   adf  
  .Type=2  
  .LineSeparator=10  
  .Open  
  .LoadFromFile   (se***r.MapPath(FileName))  
  .Charset="GB2312"  
  .Position=2  
  Re***ext=.ReadText 
  .Cancel()  
  .Close()  
  end   with  
  set   ads=nothing  
  end   function  
   
  sub   SaveText(FileName,Data)     '这是一个用于写文件的函数  
  set   fs=   createobject("sc***ting.filesystemobject")    
          set   ts***.createtextfile(se***r.MapPath(FileName),true)  
          ts***iteline(data)  
          ts***ose 
          set   ts=nothing  
          set   fs=nothing  
  end   sub  
   
  sub   toexcel(filename,sql)     '这是一个根据SQL语句和FILENAME生成EXCEL文件  
      Set   rs***rver.CreateObject("AD***.RecordSet")    
        'Re***nse.Write ;    sql  
      're***nse.end 
      rs***en ;  sql,objconn,1,1  
      TOEXCELLR=""  
      set   my***ld=rs.fields 
      dim   fieldname(50)  
      for   i=0   to   my***ld.count-1 
            toexcellr=toexcellr&""&MYFIELD(I).NAME&""  
            fieldname(i)=myfield(i).name  
            if   myfield(i).type=135   then   datename=datename&myfield(i).name&","  
      next  
      toexcellr=toexcellr&""  
      do   while   not   rs***f 
          toexcellr=toexcellr&""  
          for   i=0   to   my***ld.count-1 ;   
              if   instr(datename,fieldname(i)&",")<>0   then  
                  if   not   isnull(rs(fieldname(i)))   then  
                        TOEXCELLR=TOEXCELLR&""&formatdatetime(rs(fieldname(i)),2)&"

"  
                  else  
                        TOEXCELLR=TOEXCELLR&" 

"  
                  end   if  
              else  
                    TOEXCELLR=TOEXCELLR&""&rs(fieldname(i))&""  
              end   if  
          next  
          toexcellr=toexcellr&""  
          rs***venext 
      loop  
      rs***ose 
      toexcellr=toexcellr&""  
      tou=readtext("tou.txt")  
      di=readtext("di.txt")  
      toexcellr=tou&toexcellr&di  
      call   savetext(filename,toexcellr)  
  end   sub  
  %>  
    
    
      
    
    
  正在生成EXCEL文件  
    
    
  正在生成EXCEL文件..***nbsp
    
 
答:
EXEC   ma***r..xp_cmdshell ;  'bcp   "SELECT   *   FROM   库名.d***apply ;  where   性别=女"   queryout   "ex***4.xls"   -c   -q   -S"服务器名"   -U"用户名"   -P"密码"'  
   
  我用这种方法导出到excel没有出现乱码,你试下吧,sql数据库