หลังจากที่ asp นำเข้าข้อมูลลงใน Excel แล้วตัวอักษรจีนจะอ่านไม่ออกใช่ไหม - วิธีแก้ปัญหา
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-06-25 17:44:35
คำถาม: หลังจากที่ 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 Gender='Female'"
filename="excel4.xls" 'ชื่อไฟล์ของไฟล์ EXCEL ที่จะส่งออก คุณเพียงแค่ต้องเปลี่ยนสองประโยคข้างต้นเท่านั้น ห้ามเปลี่ยนแปลงสิ่งอื่นใด
โทร toexcel (FILENAME, sql1)
ตั้งค่า conn=ไม่มีอะไร
function ReadText(FileName) 'เป็นฟังก์ชันสำหรับอ่านไฟล์
'response.write เซิร์ฟเวอร์ MapPath (ชื่อไฟล์)
'response.end
ตั้งค่า adf=server.CreateObject("Adodb.Stream")
ด้วยโฆษณา
.ประเภท=2
.LineSeparator=10
.เปิด
.LoadFromFile (server.MapPath(ชื่อไฟล์))
.Charset="GB2312"
.ตำแหน่ง=2
ReadText=.ReadText
.ยกเลิก()
.ปิด()
ลงท้ายด้วย
ตั้งค่าโฆษณา=ไม่มีอะไร
ฟังก์ชั่นสิ้นสุด
sub SaveText(FileName,Data) 'นี่คือฟังก์ชันสำหรับการเขียนไฟล์
ตั้งค่า fs= createobject("scripting.filesystemobject")
ตั้งค่า ts=fs.createtextfile(server.MapPath(FileName),true)
ts.writeline(ข้อมูล)
ts.ปิด
การตั้งค่า = ไม่มีอะไร
ตั้งค่า fs=ไม่มีอะไร
จบย่อย
sub toexcel (ชื่อไฟล์, sql) 'นี่คือไฟล์ EXCEL ที่สร้างขึ้นตามคำสั่ง SQL และ FILENAME
ตั้งค่า rs=Server.CreateObject("ADODB.RecordSet")
'การตอบสนองเขียน sql'
'response.end
rs.เปิด sql,objconn,1,1
TOEXCELLR="<ความกว้างของตาราง='100%'><tr >"
ตั้งค่า myfield=rs.fields
ชื่อฟิลด์สลัว (50)
สำหรับ i=0 ถึง myfield.count-1
toexcellr=toexcellr&"<td class=xl24>"&MYFIELD(I).NAME&"</td>"
fieldname(i)=myfield(i).ชื่อ
ถ้า myfield(i).type=135 แล้ว datename=datename&myfield(i).name&","
ต่อไป
toexcellr=toexcellr&"</tr>"
ทำในขณะที่ไม่ใช่ rs.eof
toexcellr=toexcellr&"<tr>"
สำหรับ i=0 ถึง myfield.count-1
ถ้า instr(datename,fieldname(i)&",")<>0 แล้ว
ถ้าไม่ใช่ isnull(rs(fieldname(i))) แล้ว
TOEXCELLR=TOEXCELLR&"<td class=xl25 ><p align='left'>"&formatdatetime(rs(fieldname(i)),2)&"</p></td>"
อื่น
TOEXCELLR=TOEXCELLR&"<td class=xl25 ><p align='left'> </p></td>"
สิ้นสุดถ้า
อื่น
TOEXCELLR=TOEXCELLR&"<td class=xl24 >"&rs(ชื่อฟิลด์(i))&"</td>"
สิ้นสุดถ้า
ต่อไป
toexcellr=toexcellr&"</tr>"
rs.movenext
วนซ้ำ
฿.ปิด
toexcellr=toexcellr&"</ table>"
tou=readtext("tou.txt")
di=readtext("di.txt")
toexcellr=tou&toexcellr&di
โทรบันทึกข้อความ (ชื่อไฟล์ toexcellr)
จบย่อย
-
<html>
<หัว>
<meta http-equiv="refresh" content="3;URL=<%=ชื่อไฟล์%>">
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>กำลังสร้างไฟล์ EXCEL</title>
</หัว>
<ร่างกาย>
กำลังสร้างไฟล์ EXCEL....
</ร่างกาย>
</HTML>
คำตอบ:
EXEC master..xp_cmdshell 'bcp "SELECT * FROM Library name.dbo.apply โดยที่ sex=Female" แบบสอบถาม "excel4.xls" -c -q -S"ชื่อเซิร์ฟเวอร์" -U"ชื่อผู้ใช้" -P"รหัสผ่าน"'
ฉันใช้วิธีนี้เพื่อส่งออกไปยัง Excel โดยไม่มีอักขระที่อ่านไม่ออก คุณสามารถลองใช้ฐานข้อมูล sql