在開發時,遇到需要在Client 端匯出excel同時在Server端也保留相同一份檔案
在asp中,沒有能直接產生,所以試出了以下列方式處理可以解決。
主要是以下列指令去實作
CreateObject("Scripting.FileSystemObject") '呼叫CreateObject 執行FileSystemObject
Server.MapPath("..\DMSMainManage\Repair_Card_ExcelLog") & "\" & Trim(rsErrorList1.MoveFirst("myGUID")) &".xls" '設定儲存路徑,此例為儲存excel,如想存成其他格式可自行設定,將.xls改為txt、csv…等
opentextfile(logfile,ForWriting, true) '設定是否能覆寫 ture為可以
write(styleString) & vbcrlf '用write寫入檔案中,在寫入時是以文字方式,此例因要寫成excel,所以要參雜一些html語法,讓excel看起來和網頁上看的一樣。
以此例來說,是用個文字參數去接所組出來的HTML,最後再write出來即可。
這樣就能達到在於server端產生excel並將想要的資料匯入。
/------------------------------------------------程式開始------------------------------------------/
if objConn.nRet=0 and not rsErrorList1 is nothing then
while not rsErrorList1.EOF
StringTableHead = StringTableHead & "<tr align=center valign=middle height=20>"&_
"<td class=TdStyle align=center valign=middle> "&Trim(rsErrorList1("CallID")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("CreatorName")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("BranchDesc")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("PlaceDesc")) &"</td>"&_
"<td class=TdStyle align=center valign=middle> "&Trim(rsErrorList1("MCNO")) &"</td>"&_
"<td class=TdStyle align=center valign=middle> "&Trim(rsErrorList1("Brand")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("MaintainName")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("MainDesc")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("ReservationDateTime")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("LoseCardDate")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("CustomerName")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("hidCustomerID")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("CustomerTel1")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("CustomerTel2")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("BankName")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("hidCreditCard")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("hidBankAccount")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("GetCardDate")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("OtherCard")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("NoticeUser")) &"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("Memo")) &"</td>"&_
"<td class=TdStyle align=center valign=middle colspan=2>"
set rsDetail1 = objConn.GetHistoryErrorListCard_Detail(rsErrorList1("CallID"))
if objConn.nRet=0 and not rsDetail1 is nothing then
dim i
i = 0
StringTableHead = StringTableHead & "<table border='0' cellspacing='0' cellpadding='0' align='center' width=100% height=100>"
while not rsDetail1.EOF
i = i + 1
StringTableHead = StringTableHead & "<tr align=center valign=middle height=20>"&_
"<td class=TdStyle align=center valign=middle width=100> "&Trim(rsDetail1("ProcessDateTime"))&"</td>"&_
"<td class=TdStyle align=left valign=middle width=100> "&Trim(rsDetail1("Content"))&"</td>"&_
"</tr>"
rsDetail1.MoveNext
wend
StringTableHead = StringTableHead & "</table>"
end if
StringTableHead = StringTableHead & "</td> "&_
"<td class=TdStyle align=center valign=middle> "&Trim(rsErrorList1("SecurityArriveDate"))&"</td>"&_
"<td class=TdStyle align=center valign=middle> "&Trim(rsErrorList1("SecurityLeaveDate"))&"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("CloseTypeIDDesc"))&"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("CloserName"))&"</td>"&_
"<td class=TdStyle align=center valign=middle> "&Trim(rsErrorList1("CardCertificateDate1"))&"</td>"&_
"<td class=TdStyle align=center valign=middle> "&Trim(rsErrorList1("CardCertificateDate2"))&"</td>"&_
"<td class=TdStyle align=center valign=middle> "&Trim(rsErrorList1("ISReturnDesc"))&"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("AccessName"))&"</td>"&_
"<td class=TdStyle align=center valign=middle> "&Trim(rsErrorList1("CardCertificateCheckDesc"))&"</td>"&_
"<td class=TdStyle align=left valign=middle> "&Trim(rsErrorList1("CheckName"))&"</td>"&_
"</tr>"
rsErrorList1.MoveNext
wend
end if
StringTableHead = StringTableHead & "</table>"
'於SERVER 端產生檔案物件
Set oExcel = CreateObject("Scripting.FileSystemObject")
logfile = Server.MapPath("..\DMSMainManage\Repair_Card_ExcelLog") & "\" & Trim(rsErrorList1.MoveFirst("myGUID")) &".xls"
ForWriting = 2
Set f = oExcel.opentextfile(logfile,ForWriting, true)
f.write(styleString) & vbcrlf
f.write(StringTableHead) & vbcrlf
f.close
set f = nothing
set oExcel = nothing