Импорт Excel To Lotus

Тема в разделе "OLE технологии", создана пользователем allex, 19 фев 2007.

  1. allex

    allex Гость

    Действие в представлении для импорта файла Excel в Lotus
    Кнопка вышается на представление "body_f2", после нажатия возможен выбор файла, но берется по умолчанию, потом вводится колличество строк и далее начинается сам импорт.
    На каждую новую строчку в Excel создаётся новый документ, после окончания импорта в представлении отображаются документы,в которых ячейки Excel соответствуют полям формы документа.
    Далее из этого представления по действию ("Импорт значений документов в таблицу RT поля") значения из документов импортируются в сгенерированную скриптом табличу, где количество вкладок вычисляется динамически, в зависимости от колличества документов в представлении

    Таблица имеет вид
    _________________________________________________________________________
    |________________________ШАПКА__________________________________________|
    |_название__|______код________|_цыфры__|_цыфры_|_цыфры_|_цыфры_|_%_____|
    |___"a" _____|____"a_1"_________|__"a_2"__|_"a_3"___|_"a_4"__|__"a_5"__|_"a_6"__|

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='ls'>Sub Initialize
    Dim xlFilename As String
    xlFilename = Inputbox$("Файл импорта по умолчанию.", "Файл для импорта Диск:\f2.XLS", "c:\f2.xls")
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Set db = session.CurrentDatabase
    Dim row As Integer
    Dim written As Integer
    Dim number As Integer
    number = Inputbox$("Введите колличество строк", "Введите количество строк, содержащихся в импортируемом файле")
    Dim Excel As Variant
    Dim xlWorkbook As Variant
    Dim xlSheet As Variant
    Dim xlCells As Variant
    Set Excel = CreateObject("excel.application")
    Excel.Visible = False
    Print "Открыт файл " & xlFilename & "..."
    Excel.Workbooks.Open xlFilename '// открытие файла Excel
    Set xlWorkbook = Excel.ActiveWorkbook
    Set xlSheet = xlWorkbook.ActiveSheet
    Set xlCells = xlSheet.Cells
    row = 1
    written = 0
    Print "Starting import from Excel file..."
    Dim strName As String
    Add:
    row = row + 1
    written=written+1
    Print ("Импорт строки: "& Cstr(row) & " из: " &Cstr(number))
    Set view = db.GetView("body_f2")'представление где после импорта отображаются созданные документы
    strName = xlCells( row, 1). Value
    Set doc = view.GetDocumentByKey(strName ,True)
    If doc Is Nothing Then
    Set doc = db.CreateDocument
    With doc
    .Form = "body_f2"
    .a = xlCells(row, 1).Value
    .a_1 = xlCells( row, 2 ).Value
    .a_2 = xlCells(row, 3).Value
    .a_3 = xlCells( row, 4).Value
    .a_4 = xlCells( row, 5).Value
    .a_5 = xlCells( row, 6).Value
    .a_6 = xlCells( row, 7).Value
    End With
    Else
    End If
    Call doc.Save( True, True )
    Set doc = Nothing
    If written < number Then Goto Add
    excel.quit
    Dim ws As New NotesUIWorkspace
    Call ws.ViewRefresh

    End Sub[/CODE]
     
  2. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    а я например не спрашиваю у юзера сколько строк, после адд сразу ставлю на проверку, если в ряду 1 и 2 (например) элемент пустые значит все, закончились данные в хехеле, гото quit (может кому поможет)
     
Загрузка...

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