0

我想将附件与其他数据一起导出到 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

4

2 回答 2

0

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

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

于 2013-08-25T18:04:19.243 回答
0

由于万一出现错误,很难确定问题出在哪里,所以我通常尽量使用 VBA 在 Excel 工作表中进行编程。一旦它在 VBA 中工作,我将代码移植到 Excel。

我建议在这里执行此操作 - 这不是真正的 Lotus Notes 问题,而是 VBA 问题。

于 2013-08-22T13:49:53.933 回答