用LotusScript編寫導出Excel參考實例

Sub Initialize 
  On Error Goto errmsg 
  '''''''''''''''''''''''''''''''''''''''''''''''' 
  '程序名:ExportToExcel 
  '功    能:導出Excel代理 
  '''''''''''''''''''''''''''''''''''''''''''''''' 

 Print |Content-Type:application/vnd.ms-excel;charset=GBK| 

Print |<meta http-equiv="Content-Type" content="text/html; charset=GBK">| 

print |<style>|

pint |.xlstext{mso-number-format:"\@";}|

print |</style>|

print |<td class="xlstext">fsd</td>|

 

 下面把mso-number-format 定義數據格式的css樣式羅列下:

mso-number-format:"0" NO Decimals 
mso-number-format:"0\.000" 3 Decimals 
mso-number-format:"\#\,\#\#0\.000" Comma with 3 dec 
mso-number-format:"mm\/dd\/yy" Date7 
mso-number-format:"mmmm\ d\,\ yyyy" Date9 
mso-number-format:"m\/d\/yy\ h\:mm\ AM\/PM" D -T AMPM 
mso-number-format:"Short Date" 01/03/1998 
mso-number-format:"Medium Date" 01-mar-98 
mso-number-format:"d\-mmm\-yyyy" 01-mar-1998 
mso-number-format:"Short Time" 5:16 
mso-number-format:"Medium Time" 5:16 am 
mso-number-format:"Long Time" 5:16:21:00 
mso-number-format:"Percent" Percent - two decimals 
mso-number-format:"0%" Percent - no decimals 
mso-number-format:"0\.E+00" Scientific Notation 
mso-number-format:"\@" Text  (目前只用過)
mso-number-format:"\#\ ???\/???" Fractions - up to 3 digits (312/943)

 

發現導出的文件名如果是中文,會出現亂碼問題

String fileName="補充類型網站人員工作量考覈表.xls";

response.setContentType("application/octet-stream");

response.addHeader("content-type", "application/x-msdownload;");

response.setHeader("Content-disposition", "attachment; filename="+ new String(fileName.getBytes("gb2312"),"ISO8859-1"));

 

  Dim s As New notessession 
  Dim doc As NotesDocument 
  Dim contextDoc As NotesDocument 
  Dim db As NotesDatabase 
  Dim dcs As NotesDocumentCollection 
    
  Dim dateTime As New NotesDateTime(2000-01-01) 
  Dim nextDateTime As NotesDateTime 
  Dim stDate As NotesDateTime 
  Dim edDate As NotesDateTime 
  Dim dtDate As notesdatetime 
  Dim ritem As notesitem 
  Dim car As String 
  Dim tnum As Integer 
  tnum=0 
    
  Dim searchformula As String 
  Dim view As NotesView 
  Dim htmlstr As String 
    
  Set db = s.CurrentDatabase 
  Set contextDoc=s.documentcontext 
  car=contextDoc.car(0) 
  Set view=db.GetView("viewDocByTime") 
    
  Set stDate=New notesdatetime(contextDoc.startDate(0)) 
  Set edDate=New notesdatetime(contextDoc.endDate(0)) 
    
    
  If Cstr(stDate.DateOnly)="" And Cstr(edDate.DateOnly)="" Then 
    Dim result As Variant 
    Dim j As Integer 
    Dim DateStr As String    
    Dim MStr As String    
    Dim DStr As String    
    result = Evaluate("@DbColumn('': '' ;'': @Subset(@DbName;-1); 'viewDocByTime' ; 1)", doc) 
     
    For j = 0 To Ubound(result) 
      Set dcs=view.GetAllDocumentsByKey(result(j),True) 
      If dcs.count>0 Then 
         
        MStr=Cstr(Format$(result(j),"mm")) 
         
        DStr=Cstr(Format$(result(j),"dd")) 
         
        'DateStr=Cstr(Cint(MStr))+"月"+Cstr(Cint(DStr))+"日" 
        DateStr=Cstr(Format$(result(j),"yyyy年mm月dd日")) 
        'htmlstr = htmlstr & "<style>TD{FONT-FAMILY: 宋體; FONT-SIZE: 10pt;}</style><center><h2><b>|+DateStr+|用車情況</b><h2></center>" 
        htmlstr = htmlstr & "<table border=1>" 
        htmlstr = htmlstr+ "<tr>" 
        htmlstr = htmlstr+ "<td colspan='8' align='center'><b>"+DateStr$+"用車情況"+"</b></td>" 
        htmlstr = htmlstr+ "</tr>" 
        htmlstr = htmlstr & "<tr>" 
        htmlstr = htmlstr & "<td width='8%'    height='19'    align='center' bgcolor='#ffffff'><b>司機</b></td>" 
        htmlstr = htmlstr & "<td width='8%'    height='19'    align='center' bgcolor='#ffffff'><b>時間</b></td>" 
        htmlstr = htmlstr & "<td width='15%'    height='19'    align='center' bgcolor='#ffffff'><b>部門</b></td>" 
        htmlstr = htmlstr & "<td width='15%'    height='19'    align='center' bgcolor='#ffffff'><b>目的地</b></td>" 
        htmlstr = htmlstr & "<td width='10%'    height='19'    align='center' bgcolor='#ffffff'><b>車號</b></td>" 
        htmlstr = htmlstr & "<td width='15%'    height='19'    align='center' bgcolor='#ffffff'><b>出發時間</b></td>"    
        htmlstr = htmlstr & "<td width='15%'    height='19'    align='center' bgcolor='#ffffff'><b>預計回站時間</b></td>" 
        htmlstr = htmlstr & "<td width='30%'    height='19'    align='center' bgcolor='#ffffff'><b>事由</b></td>"     
        htmlstr = htmlstr & "</tr>" 
         
        For i=1 To dcs.Count 
          Set doc = dcs.GetNthDocument(i) 
          If Not doc Is Nothing Then    
            If car=doc.car(0) Or car="*" Then 
              tnum=tnum+1 
              htmlstr = htmlstr+ "<tr>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.Fd_Driver(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.SelDate(0)+":"+doc.SelMinute(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.Fd_Dept(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.dest(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.car(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.StartDate(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.EndDate(0)+"</td>"     
              Set ritem =doc.getfirstitem("Body") 
              If Not ritem Is Nothing Then 
                htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+ritem.text+"</td>" 
              Else 
                htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'></td>" 
              End If 
              htmlstr = htmlstr+ "</tr>" 
            End If 
          End If 
            
        Next 
         
        htmlstr = htmlstr+ "</table>" 
      End If 
    Next 
  Else    
    While Not (Cstr(Format$(stDate.LocalTime,"yyyy-mm-dd"))>Cstr(Format$(edDate.LocalTime,"yyyy-mm-dd"))) 
        
      Set dcs=view.GetAllDocumentsByKey(Cstr(Format$(stDate.LocalTime,"yyyy-mm-dd")),True) 
      If dcs.count>0 Then 
        MStr$=Cstr(Format$(stDate.LocalTime,"mm")) 
         
        DStr$=Cstr(Format$(stDate.LocalTime,"dd")) 
         
        'DateStr$=Cstr(Cint(MStr$))+"月"+Cstr(Cint(DStr$))+"日" 
         
        DateStr=Cstr(Format$(stDate.LocalTime,"yyyy年mm月dd日")) 
         
        'htmlstr = htmlstr+ "<style>TD{FONT-FAMILY: 宋體; FONT-SIZE: 10pt;}</style><center><h2><b>"+DateStr$+"用車情況</b><h2></center>" 
        htmlstr = htmlstr+ "<table border=1>" 
        htmlstr = htmlstr+ "<tr>" 
        htmlstr = htmlstr+ "<td colspan='8' align='center'><b>"+DateStr$+"用車情況"+"</b></td>" 
        htmlstr = htmlstr+ "</tr>" 
        htmlstr = htmlstr+ "<tr>" 
        htmlstr = htmlstr+ "<td width='8%'    height='19'    align='center' bgcolor='#ffffff'><b>司機</b></td>" 
        htmlstr = htmlstr+ "<td width='8%'    height='19'    align='center' bgcolor='#ffffff'><b>時間</b></td>" 
        htmlstr = htmlstr+ "<td width='15%'    height='19'    align='center' bgcolor='#ffffff'><b>部門</b></td>" 
        htmlstr = htmlstr+ "<td width='15%'    height='19'    align='center' bgcolor='#ffffff'><b>目的地</b></td>" 
        htmlstr = htmlstr+ "<td width='10%'    height='19'    align='center' bgcolor='#ffffff'><b>車號</b></td>" 
        htmlstr = htmlstr+ "<td width='15%'    height='19'    align='center' bgcolor='#ffffff'><b>出發時間</b></td>"    
        htmlstr = htmlstr+ "<td width='15%'    height='19'    align='center' bgcolor='#ffffff'><b>預計回站時間</b></td>" 
        htmlstr = htmlstr+ "<td width='30%'    height='19'    align='center' bgcolor='#ffffff'><b>事由</b></td>"         
        htmlstr = htmlstr+ "</tr>" 
         
        For i=1 To dcs.Count 
          Set doc = dcs.GetNthDocument(i) 
          If Not doc Is Nothing Then    
            If car=doc.car(0) Or car="*" Then 
              tnum=tnum+1 
              htmlstr = htmlstr+ "<tr>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.Fd_Driver(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.SelDate(0)+":"+doc.SelMinute(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.Fd_Dept(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.dest(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.car(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.StartDate(0)+"</td>" 
              htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+doc.EndDate(0)+"</td>"    
              Set ritem =doc.getfirstitem("Body") 
              If Not ritem Is Nothing Then 
                htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'>"+ritem.text+"</td>" 
              Else 
                htmlstr = htmlstr+ "<td    height='19'    align='center' bgcolor='#ffffff'></td>" 
              End If 
              htmlstr = htmlstr+ "</tr>" 
            End If 
          End If 
            
        Next 
        htmlstr = htmlstr+ "</table>" 
      End If 
        
      Call stDate.AdjustDay(1) 
        
    Wend 
  End If 
    
  'Print "</div>" 
  If tnum=0 Then 
    htmlstr = htmlstr+ "<center><br><br><font size=3>未找到用車記錄</font></center>" 
  End If 
    
  Print htmlstr 
errmsg: 
  If Cstr(Erl) = "0" Then 
    Msgbox "代理程序成功執行完畢!" 
  Else 
    Msgbox "代理程序出錯..出錯行數爲:" & Cstr(Erl) & "行!錯誤原因爲:" & Error 
  End If 
End Sub
————————————————
版權聲明:本文爲CSDN博主「yngaozhifu」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yngaozhifu/article/details/5217275

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章