Après qu'ASP ait importé des données dans Excel, les caractères chinois semblent tronqués ? ? comment résoudre
Auteur:Eve Cole
Date de mise à jour:2009-06-25 17:44:35
Question : Après qu'ASP ait importé des données dans Excel, le chinois semble-t-il tronqué ? ? comment résoudre
<!--#include file="function/connect.asp" -->
<!--#include file="function/function.asp" -->
<%
Réponse.Charset = "UTF-8"
'Le fichier inclus précédemment est et pour créer un lien vers la base de données, vous devez modifier ce fichier pour créer un lien vers une autre bibliothèque.
sql1="select * from apply " 'Voici l'instruction de requête pour afficher EXCEL, telle que "SESECT * FORM CAI WHERE Gender='female'"
filename="excel4.xls" 'Le nom du fichier EXCEL à sortir, il vous suffit de modifier les deux phrases ci-dessus, ne changez rien d'autre.
appeler Excel (NOM DE FICHIER, sql1)
définir conn = rien
function ReadText(FileName) 'Ceci est une fonction pour lire des fichiers
'response.write serveur.MapPath(FileName)
'réponse.fin
set adf=server.CreateObject("Adodb.Stream")
avec adf
.Type=2
.LineSeparator=10
.Ouvrir
.LoadFromFile (serveur.MapPath(FileName))
.Charset="GB2312"
.Position=2
ReadText=.ReadText
.Annuler()
.Fermer()
terminer par
définir des annonces = rien
fonction de fin
sub SaveText(FileName,Data) 'Ceci est une fonction pour écrire des fichiers
set fs= createobject("scripting.filesystemobject")
set ts=fs.createtextfile(server.MapPath(FileName),true)
ts.writeline(données)
ts.fermer
paramètres = rien
définir fs = rien
fin du sous
sub toexcel(filename,sql) 'Il s'agit d'un fichier EXCEL généré à partir d'instructions SQL et de FILENAME
Définir rs=Server.CreateObject("ADODB.RecordSet")
'Réponse.Écrire SQL
'réponse.fin
rs.Open sql, objconn, 1,1
TOEXCELLR="<table width='100%'><tr >"
définir monchamp=rs.fields
dim nom du champ (50)
pour i=0 à myfield.count-1
toexcellr=toexcellr&"<td class=xl24>"&MON CHAMP(I).NOM&"</td>"
nom du champ(i)=monchamp(i).nom
si monchamp(i).type=135 alors datename=datename&myfield(i).name&","
suivant
toexcellr=toexcellr&"</tr>"
faire sans rs.eof
toexcellr=toexcellr&"<tr>"
pour i=0 à myfield.count-1
si instr(datename,fieldname(i)&",")<>0 alors
sinon isnull(rs(fieldname(i))) alors
TOEXCELLR=TOEXCELLR&"<td class=xl25 ><p align='left'>"&formatdatetime(rs(fieldname(i)),2)&"</p></td>"
autre
TOEXCELLR=TOEXCELLR&"<td class=xl25 ><p align='left'> </p></td>"
finir si
autre
TOEXCELLR=TOEXCELLR&"<td class=xl24 >"&rs(fieldname(i))&"</td>"
finir si
suivant
toexcellr=toexcellr&"</tr>"
rs.movenext
boucle
rs.fermer
toexcellr=toexcellr&"</table>"
tou=readtext("tou.txt")
di=readtext("di.txt")
toexcellr=tou&toexcellr&di
appeler savetext (nom de fichier, toexcellr)
fin du sous
%>
<html>
<tête>
<meta http-equiv="refresh" content="3;URL=<%=filename%>">
<méta http-equiv="Content-Language" content="en-us">
<méta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Génération du fichier EXCEL</title>
</tête>
<CORPS>
Génération du fichier EXCEL....
</CORPS>
</HTML>
répondre:
EXEC master..xp_cmdshell 'bcp "SELECT * FROM nom de la bibliothèque.dbo.apply où genre = femme" requête "excel4.xls" -c -q -S "nom du serveur" -U "nom d'utilisateur" -P "mot de passe"'
J'ai utilisé cette méthode pour exporter vers Excel sans caractères tronqués. Vous pouvez l'essayer, base de données SQL.