Импорт Excel To Lotus

  • Автор темы allex
  • Дата начала
A

allex

#1
Действие в представлении для импорта файла 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]
 

beloff

Well-known member
24.07.2012
113
1
#2
а я например не спрашиваю у юзера сколько строк, после адд сразу ставлю на проверку, если в ряду 1 и 2 (например) элемент пустые значит все, закончились данные в хехеле, гото quit (может кому поможет)