WEB开发网
开发学院WEB开发ASP asp将数据导入excel后,中文出现乱码??怎么解决... 阅读

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

 2008-08-06 10:37:33 来源:WEB开发网   
核心提示:问:asp将数据导入Excel后,中文出现乱码??怎么解决<!--#include file="function/connect.asp" --> <!--#include file="function/function.asp" --> <
问:asp将数据导入Excel后,中文出现乱码??怎么解决
<!--#include  file="function/connect.asp"   --> 
  <!--#include  file="function/function.asp"   --> 
  <% 
  Response.Charset  =  "UTF-8" 
  '前面包含的文件是和来链接到数据库,你要修改这个文件以链接到不同的库 
  
  sql1="select  *  from  apply  "   '这里是要输出EXCEL的查询语句,如  "SESECT  *  FORM  CAI  WHERE  性别='女'" 
  filename="excel4.xls"    '  要输出的EXCEL文件的文件名,  你只要改以上两句就行了,其它的都不要改. 
  
  call  toexcel(FILENAME,sql1) 
  set  conn=nothing 
  
  function  ReadText(FileName)   '这是一个用于读出文件的函数 
    'response.write  server.MapPath(FileName) 
    'response.end 
  set  adf=server.CreateObject("Adodb.Stream") 
  with  adf 
  .Type=2 
  .LineSeparator=10 
  .Open 
  .LoadFromFile  (server.MapPath(FileName)) 
  .Charset="GB2312" 
  .Position=2 
  ReadText=.ReadText 
  .Cancel() 
  .Close() 
  end  with 
  set  ads=nothing 
  end  function 
  
  sub  SaveText(FileName,Data)   '这是一个用于写文件的函数 
  set  fs=  createobject("scripting.filesystemobject")  
      set  ts=fs.createtextfile(server.MapPath(FileName),true) 
      ts.writeline(data) 
      ts.close 
      set  ts=nothing 
      set  fs=nothing 
  end  sub 
  
  sub  toexcel(filename,sql)   '这是一个根据SQL语句和FILENAME生成EXCEL文件 
    Set  rs=Server.CreateObject("ADODB.RecordSet")  
     'Response.Write   sql 
    'response.end 
    rs.Open  sql,objconn,1,1 
    TOEXCELLR="<table  width='100%'><tr  >" 
    set  myfield=rs.fields 
    dim  fieldname(50) 
    for  i=0  to  myfield.count-1 
       toexcellr=toexcellr&"<td  class=xl24>"&MYFIELD(I).NAME&"</td>" 
       fieldname(i)=myfield(i).name 
       if  myfield(i).type=135  then  datename=datename&myfield(i).name&"," 
    next 
    toexcellr=toexcellr&"</tr>" 
    do  while  not  rs.eof 
      toexcellr=toexcellr&"<tr>" 
      for  i=0  to  myfield.count-1  
        if  instr(datename,fieldname(i)&",")<>0  then 
          if  not  isnull(rs(fieldname(i)))  then 
             TOEXCELLR=TOEXCELLR&"<td  class=xl25  ><p  align='left'>"&formatdatetime(rs(fieldname(i)),2)&"</p></td>" 
          else 
             TOEXCELLR=TOEXCELLR&"<td   class=xl25  ><p  align='left'> </p></td>" 
          end  if 
        else 
           TOEXCELLR=TOEXCELLR&"<td  class=xl24  >"&rs(fieldname(i))&"</td>" 
        end  if 
      next 
      toexcellr=toexcellr&"</tr>" 
      rs.movenext 
    loop 
    rs.close 
    toexcellr=toexcellr&"</table>" 
    tou=readtext("tou.txt") 
    di=readtext("di.txt") 
    toexcellr=tou&toexcellr&di 
    call  savetext(filename,toexcellr) 
  end  sub 
  %> 
  <html> 
  <head> 
  <meta  http-equiv="refresh"  content="3;URL=<%=filename%>">  
  <meta  http-equiv="Content-Language"  content="en-us"> 
  <meta  http-equiv="Content-Type"  content="text/html;  charset=UTF-8"> 
  <title>正在生成EXCEL文件</title> 
  </head> 
  <BODY> 
  正在生成EXCEL文件.... 
  </BODY> 
  </HTML>
答:
EXEC  master..xp_cmdshell  'bcp  "SELECT  *  FROM  库名.dbo.apply  where  性别=女"  queryout  "excel4.xls"  -c  -q  -S"服务器名"  -U"用户名"  -P"密码"' 
  
  我用这种方法导出到excel没有出现乱码,你试下吧,sql数据库

Tags:asp 数据 导入

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接