Импорт из Notes

Тема в разделе "Lotus - Программирование", создана пользователем -, 28 май 2008.

  1. Гость

    Может кто сталкивался с проблемой импорта из Notes в Excel?
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Да наверняка кто-то сталкивался. :lol:
     
  3. Гость

    Я имеел ввиду как можно реализовать импорт из Lotus в Excle любой вью. Может подскажите какие операторы, команды можно использовать
     
  4. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Может экспорт?
     
  5. Гость

    Ть-фу, точно экспорт, вечно путаю. А тему исправить можно?
     
  6. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Копирайт не мой, где взял не помню. Работает, проверял.

    Экспорт текущего открытого представление в Excel.

    пы.сы. чето название файла побилось ...
     

    Вложения:

  7. Гость

    Ой, он у тебя такой сложный, нашел чуть попроше:
    [codebox]Sub Click(Source As Button)
    'I placed all of the code in a single sub
    '(normally I split it all out... but for this demo
    'purpose, I just put all code in one sub)

    Dim doc As NotesDocument
    Dim uidoc As NotesUIDocument
    Dim tmpdir As String
    Dim uiview As NotesUIView
    Dim view As NotesView
    Dim dc As NotesDocumentCollection
    Dim ret As Integer

    Dim session As NotesSession
    Dim db As NotesDatabase
    Dim workspace As NotesUIWorkspace
    Dim tmpdatafilename As String
    Dim tmpdatafilenumber As Integer

    Dim memodoc As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject


    Set session = New NotesSession
    Set workspace = New NotesUIWorkspace
    Set db = session.CurrentDatabase

    tmpdir = session.GetEnvironmentString("Directory", True)

    tmpdatafilenumber% = Freefile()
    tmpdatafilename = tmpdir & "\HRReport.xls"

    'Open a file for output
    Open tmpdatafilename For Output As tmpdatafilenumber

    Set uiview = workspace.CurrentView
    Set view = uiview.View

    'Print to the file some basic CSS for easy formatting later if the users want a change to the default.
    Print # tmpdatafilenumber%, |
    <HTML>
    <HEAD>
    <TITLE>Table example</TITLE>
    <STYLE type="text/css">
    TABLE { background: #ffffff; border: solid black;
    empty-cells: hide }
    TD { border: solid black;
    border-left: none;
    border-right: none;
    }
    TD.top { border: solid black;
    border-left: none;
    border-right: none;
    background: #C0C0C0;
    font-weight: bold;
    font-size: 11px;
    text-align: center;
    }
    TD.viewname { border: solid black;
    border-left: none;
    border-right: none;
    border-bottom: none;
    background: #C0C0C0;
    font-weight: bold;
    font-size: 16px;
    text-align: left;
    }
    TD.salary { border: solid black;
    border-left: none;
    border-right: none;
    background: #00FFFF;
    }
    </STYLE>
    </HEAD>
    <BODY>|

    'Heart of the code....
    'Print an HTML Table and then construct the table from the column contents of the current view.

    Print # tmpdatafilenumber%, |<table>|

    'Include the view name in the top of the spreadsheet

    Print # tmpdatafilenumber%, |<tr>|
    Print # tmpdatafilenumber%, |<td class="viewname" colspan="| & Cstr((Ubound(view.Columns) + 1)) & |">|
    Print # tmpdatafilenumber%, view.Name
    Print # tmpdatafilenumber%, |</td>|

    Print # tmpdatafilenumber%, |</tr>|

    'Start a row of headers (couldn't get TH CSS to work, so I created my own class called top)
    Print # tmpdatafilenumber%, |<tr>|

    Forall vc In view.Columns
    Print # tmpdatafilenumber%, |<td class="top">|
    Print # tmpdatafilenumber%, vc.title
    Print # tmpdatafilenumber%, |</td>|
    End Forall

    Print # tmpdatafilenumber%, |</tr>|

    'Now loop though all of the documents in the view and create a HTML for each one.
    'For each column, put in the cell tag.

    Set doc = view.GetFirstDocument

    Do While Not doc Is Nothing

    Print # tmpdatafilenumber%, |<tr>|

    Forall c In doc.ColumnValues
    Print # tmpdatafilenumber%, |<td>|

    If Isarray&copy; Then 'Make sure you work with a multivalued field.
    For a = 0 To Ubound&copy;
    If a = 0 Then
    Print # tmpdatafilenumber%, c(a)
    Else
    Print # tmpdatafilenumber%, "<br>" & c(a)
    End If
    Next

    Print # tmpdatafilenumber%, |</td>|
    Else
    Print # tmpdatafilenumber%, c
    End If
    Print # tmpdatafilenumber%, |</td>|

    End Forall

    Print # tmpdatafilenumber%, |</tr>|

    Set doc = view.GetNextDocument(doc)
    Loop

    'Now that you have all of your data, end the table and html tags
    Print # tmpdatafilenumber%, |</table>|
    Print # tmpdatafilenumber%, |</body>|
    Print # tmpdatafilenumber%, |</html>|
    Close tmpdatafilenumber%

    'Now you can either prompt them for where the report is on their hard drive, or you can email it To them
    'If like email....

    Set memodoc = db.CreateDocument
    memodoc.Form = "Memo"
    memodoc.Subject = "Exported View Report"
    Set rtitem = New NotesRichTextItem(memodoc, "Body")
    Call rtitem.AppendText(memodoc.Subject(0))
    Call rtitem.AppendText(Chr$(10) & Chr$(10))
    Call rtitem.AppendText("Open the attached file in Excel to view the report.")
    Call rtitem.AppendText(Chr$(10) & Chr$(10))

    Set object = rtitem.EmbedObject _
    ( EMBED_ATTACHMENT, "", tmpdatafilename)

    memodoc.SendTo = session.UserName
    Call memodoc.Send(False)
    Kill tmpdatafilename ' Delete the file from the users hard drive if you email the report.

    Messagebox "Please check your inbox for the report", 0 + 64, "Report Complete"
    End Sub[/codebox]
     
  8. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    можно и руцями


    выбрать документы. дальше правая "почка" мышки - Copy Selected as Table . Переходим в Excel и [Ctrl+ V]
     
  9. Гость

    Классно, сразу и не додумался :)
     
  10. NetWood

    NetWood Lotus team
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    308
    Симпатии:
    0
    +10 за почку
    еще
    +10 за as Table
    Да уж. Век живи век учись :(
    Пиво по какому адресу принимаете ?
     
  11. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    это мне так когда то перевёл один умный словарь с англ. на русский

    как то ка ... так и сразу на 2й всяукраинской сходке лотусистов
     
  12. Гость

    А можно и мне на на 2й всяукраинскую сходку лотусистов?
     
  13. Sandr

    Sandr Гость

    Двери открыты для всех :)
     
Загрузка...

Поделиться этой страницей