Lotus Notes 生成excel 報表

这个子程序通过VBA在Lotus Notes中生成Excel报表,接收标题、文件集合、字段描述和字段名作为参数。它创建一个新的Excel工作簿,设置标题,填充列头,并根据Notes文档的多值字段拆解数据到相应单元格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sub createExcel(title As String ,dc As NotesDocumentCollection,description() As String,fieldName() As String)
 '***************************************************************************

 'title 表名 dc文件集  descripton 栏位描述 fieldname栏位名
 '生成excel 報表
 '***************************************************************************
 Dim rdoc As NotesDocument
 Dim ritem As NotesItem
 
 Dim xlApp As Variant
 Dim xlsheet As Variant
 Dim t As String
 Dim j As Integer
 Dim row As Integer
 Dim col As Integer
 Dim s As Integer
 Dim maxNO As Integer
 Dim tmp As Integer
 
 
 col=Ubound(description)
 
 Set xlApp = CreateObject("Excel.application") 
 xlApp.Workbooks.Add
 Set xlsheet = xlApp.Workbooks(1).Worksheets(1) 
 XlApp.Windows(1).DisplayGridlines=True 
 xlsheet.Activate         
 xlsheet.Visible=1
 xlApp.Visible=True
 xlsheet.name=title
 
 xlApp.Range("A1:"+Chr$(col+64)+"2").Select
 
 With xlApp.Selection
  '.HorizontalAlignment = xlCenter
  '.VerticalAlignment = xlCenter
  .WrapText = False
  .Orientation = 0
  .AddIndent = False
  .IndentLevel = 0
  .ShrinkToFit = False
  '.ReadingOrder = xlContext
  .MergeCells = True
 End With
 
 xlsheet.Range("A1").value=title
 
 Set rdoc=dc.GetFirstDocument
 count=dc.Count
 i=4
 For j=65 To col+64
  xlsheet.Range(Chr$(j)+"3")=description(j-65)
 Next
 
 While Not rdoc Is Nothing
  tmp=1
  For j=65 To col+64
   Set ritem=rdoc.GetFirstItem(fieldname(j-65))
   If Not ritem Is Nothing Then
    s=i
    maxNO=0

    //多值栏位拆解
    Forall o In ritem.Values
     xlsheet.Range(Chr$(j)+Cstr(s)).value=o
     s=s+1
     maxNO=maxNO+1
     If maxNO>tmp Then
      tmp=maxNO
     End If
    End Forall
   Else
    xlsheet.Range(Chr$(j)+Cstr(i)).value=""
   End If
  Next
  Set rdoc=dc.GetNextDocument(rdoc)
  i=i+tmp
 Wend
 
 
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值