| 订阅 | 在线投稿
分享
 
 
 

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

来源:互联网  宽屏版  评论
2008-08-07 07:35:05

问: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数据库

问: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数据库
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有