Lotus Notes:将附件导出到Excel工作表

时间:2013-08-13 13:27:32

标签: excel lotus-notes lotus-domino lotusscript

我想将附件导出到excel表以及其他数据。 我能够正常导出。我还将附件从文档中提取到文件位置。现在需要做的是将它附加到excel单元格。

Sub Click(Source As Button)
    Dim ws As New NotesUIWorkspace
    Dim uiView As NotesUIView
    Dim doc As NotesDocument
    Dim docCol As NotesDocumentCollection

    Set uiView = ws.CurrentView
    Set docCol = uiView.Documents

    Set doc = docCol.GetFirstDocument
    Dim xlApp As Variant
    Dim xlsheet As Variant
    Dim rtitem As Variant
    Dim Ol As Variant
    maxcols= 2
    Set xlApp = CreateObject("Excel.Application")
    xlApp.StatusBar = "Creating WorkSheet. Please be patient..."
    xlApp.Visible = True
    xlApp.Workbooks.Add
    xlApp.ReferenceStyle = 2
    rows = 1
    cols = 1
    Set xlsheet = xlApp.Workbooks(1).Worksheets(1)

    xlsheet.Cells(rows,1).Value = "Created By"
    xlsheet.Cells(rows,2).Value = "File/Attachment"
    cols=1
    rows=2
    While Not doc Is Nothing

        xlsheet.Cells(rows,1).Value = doc.CreatedBy(0)
        Set rtitem = doc.GetFirstItem("FileUpload")
        If ( rtitem.Type = RICHTEXT ) Then
            Forall o In rtitem.EmbeddedObjects
                If ( o.Type = EMBED_ATTACHMENT ) Then
                    Call o.ExtractFile ( "d:\temp\" & Cstr(doc.FileName(0)) )
                End If
            End Forall
            xlsheet.Cells(rows,2).select

        '   xlsheet.Cells(rows,2).OLEObjects.Add Cstr(doc.FileName(0)),  "d:\temp\" & Cstr(doc.FileName(0)), , True, , , Cstr(doc.FileName(0))      
            'Set Ol = xlApp.OLEObjects.Add(Cstr(doc.FileName(0)),  "d:\temp\" & Cstr(doc.FileName(0)), True, False)
            xlsheet.OLEObjects.Add( "", "d:\temp\" & Cstr(doc.FileName(0)), False, False).Select


        End If

        Set doc = docCol.GetNextDocument(doc)
        rows=rows+1
        cols=1
    Wend
    xlApp.Rows("1:1").Select
    xlApp.Selection.Font.Bold = True
    xlApp.Selection.Font.Underline = True
    xlApp.Range(xlsheet.Cells(1,1), xlsheet.Cells(rows,maxcols)).Select
    xlApp.Selection.Font.Name = "Arial"
    xlApp.Selection.Font.Size = 8
    xlApp.Selection.Columns.AutoFit
    With xlApp.Worksheets(1)
        .PageSetup.Orientation = 2
        .PageSetup.centerheader = "Report - Confidential"
        .Pagesetup.RightFooter = "Page &P" & Chr$(13) & "Date: &D"
        .Pagesetup.CenterFooter = ""
    End With
    xlApp.ReferenceStyle = 1
    xlApp.Range("A1").Select
    xlApp.StatusBar = "Importing Data from Lotus Notes Application was Completed."
End Sub

请分享您的观点。

此致 人士Himanshu

2 个答案:

答案 0 :(得分:0)

由于出现错误,很难确定问题所在,我通常会尝试使用VBA在Excel工作表中尽可能多地编程。一旦它在VBA中工作,我将代码移植到Excel。

我建议在这里这样做 - 这不是一个Lotus Notes问题,而是一个VBA问题。

答案 1 :(得分:0)

我同意安德鲁的观点。您将在电子表格中附加/嵌入文件而不是导出文件 - 然后使用Notes打开电子表格以执行附件。电子表格会附加多少个电子表格?

退一步 - 现在您可以创建导出文件了。使用富文本字段创建新文档,然后在创建时附加新创建的导出文件。然后在视图中显示此新文档。如果您是为远程用户执行此操作,则可以通过电子邮件将附件发送到中央数据库。这取决于您希望数据最终的位置以及您希望如何显示数据。有很多可能的选择,每个都有成本。