【ASP】使用OLEDB將資料匯出成Excel檔

首先,手動產生Excel檔做為輸出範本。

程式部分:
<%
'Sample檔
reportfile=Server.MapPath("/client/user/客戶匯出格式.xls")

'欲匯出檔
FileXLS = Server.MapPath("/client/user/客戶.xls")

'檔案複製
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFile(reportfile)
f.Copy FileXLS
set f=nothing : set fs=nothing

sqlstr="SELECT * FROM [Customer]"
set rs=Exec_Record(sqlstr)

if not rs.eof then
'建立Excel連線
set cn= Server.createobject("Adodb.connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & FileXLS & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

'【註二】可以自行產生標題(Excel範本無標題前提之下)

do while not rs.eof
'標題定義過的寫法 【註一】
'cn.Execute "INSERT INTO [MyTable] (名稱,公司電話,公司傳真) VALUES ('aaa','123','456')" 'TEST

sql="INSERT INTO [Sheet1$] " & _
"([名稱],[國家],[城市],[公司電話],[公司傳真],[網站],[聯絡人姓名],[職稱],[聯絡人Email]," & _
"[聯絡人電話],[資訊來源],[備註])" & _
" VALUES ('" & trim(rs("Company")) & "','" & trim(rs("Country")) & "', '" & trim(rs("City")) & "'," & _
"'" & trim(rs("Company_Tel")) & "','" & trim(rs("Company_Fax")) & "','" & trim(rs("Company_Web")) & "'," & _
"'" & trim(rs("Contact_person")) & "','" & trim(rs("Contact_Job_title")) & "','" & trim(rs("Contact_Email")) & "'," & _
"'" & trim(rs("Contact_Tel")) & "','" & trim(rs("source")) & "','" & trim(rs("Memo")) & "')"

'cn.Execute "INSERT INTO [Sheet1$] (名稱,公司電話,公司傳真) VALUES ('aaa','123','456')" 'TEST
cn.Execute sql
rs.movenext
loop
cn.Close : Set cn = Nothing

end if
rs.close : set rs = nothing 
%>

執行畫面(Excel範本):


執行畫面(Excel匯出結果):



【註一】:Table [Sheet1$]可使用"標題定義寫法",[Sheet1$]改寫為[MyTable],如何"標題定義"參照下圖。




【註二】:語法僅供參考
'建立Table Name
cn.Execute "CREATE TABLE [client] (名稱 varchar, 公司電話 varchar, 公司傳真 varchar)"
'定義預設值
cn.Execute "UPDATE [client] SET 名稱 = ''"
cn.Execute "UPDATE [client] SET 公司電話 = ''"
cn.Execute "UPDATE [client] SET 公司傳真 = ''"

資源參考:
https://dotblogs.com.tw/jeff-yeh/2008/04/09/2647
For C# 使用OLEDB將資料匯出檔案為Excel檔

http://www.cnblogs.com/oomusou/archive/2009/09/30/vb6_read_write_excel.html
如何使用VB讀寫Excel檔? (Visual BASIC) (Excel)

https://support.microsoft.com/zh-tw/kb/278973
ExcelADO 示範使用 ADO 在 Excel 活頁簿讀取和寫入資料的方法

https://support.microsoft.com/zh-tw/kb/247412
INFO:將資料從 Visual Basic 傳送至 Excel 的方法

留言

這個網誌中的熱門文章

【ASP】日期轉換(西元<-->民國)

【VB】使用NPOI元件來匯出Excel--DataTableToExcel

【SQL】符號切割字串變成多欄