Импорт Екселя

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

Статус темы:
Закрыта.
  1. Kron

    Kron Гость

    Вооьщем суть в чем, есть файл Ексель в нем 3 столбца 1 Имя 2 и 3 занчения, есть форма в которой поле 1 уже заполенно и по значению равно полю 1 в екселе, 2 и 3 поле не заполено в форме но данные к ексель как их импортом обновить?
     
  2. alexdebian

    alexdebian Гость

    Самое простое обращаться к Excel, как в таблице БД. Для этого нужно создать ODBC коннект к Excel'ю, а в Lotus'е использовать: ODBCConnection, ODBCQuery, ODBCResultSet.

    Удачи
     
  3. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну или юзать Excel как COM объект.
     
  4. ksyun

    ksyun Active Member

    Регистрация:
    23 июн 2008
    Сообщения:
    30
    Симпатии:
    0
    Set xl= CreateObject("Excel.Application")
    xl.visible = False
    xl.Workbooks.Add path$
    Set xlWorkbook = xl.Workbooks(1)
    Set xlWorksheet = xlWorkbook.Worksheets(1)
    With xlWorksheet
    .cells(1,1) = "" (что можно делать с cells: ---->)
    End With
    xl.visible=True
    xl=""
    http://msdn.microsoft.com/en-us/library/bb267260.aspx
     
  5. Kron

    Kron Гость

    Код (Text):
    If Instr(doc.Agent_shet, .cells(j,1))>0 Then

    На этой строчке выдает ошибку "Несоответсвие типов" (Type mismatch)

    Как это решить?
     
  6. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    If Instr(doc.Agent_shet(0), .cells(j,1))>0 Then
     
  7. Kron

    Kron Гость

    Та же ошибка
     
  8. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Kron
    Побольше кусок кода кинь)

    If cint(Instr(doc.Agent_shet(0), cstr(.cells(j,1))))>0 Then
     
  9. Kron

    Kron Гость

    Код (Text):
        Dim view As NotesView  
    Dim ns As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim j As Integer
    Dim i As Integer
    Dim st As String
    Set db=ns.CurrentDatabase
    Set view=db.GetView("Komment")
    view.AutoUpdate = False

    Set xl= CreateObject("Excel.Application")
    xl.visible = False
    xl.Workbooks.Add "d:\счета.xls"
    Set xlWorkbook = xl.Workbooks(1)
    Set xlWorksheet = xlWorkbook.Worksheets(1)
    Set doc=view.GetFirstDocument
    While Not(doc Is Nothing)

    With xlWorksheet

    For j=2 To 91

    If Instr(doc.Agent_shet(0), .cells(j,1))>0 Then
    Call doc.ReplaceItemValue("Update_comment_for_pyu", .cells(j,2))
    Call doc.ReplaceItemValue("UpdateContactKriteriu", .cells(j,3))        
    End If
    Next
    End With
    Call doc.Save(True, True)
    Set doc=view.GetNextDocument(doc)
    i=1+1  
    Wend
    xl.visible=True
    xl=""
     
  10. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Попробуй так:

    If Instr ( CStr ( doc.Agent_shet(0) ), Cstr ( .cells(j,1) ) ) > 0 Then
     
  11. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Надо cells(...).value
     
  12. Kron

    Kron Гость

    То же самое
     
  13. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Тогда так:

    If Instr ( CStr ( doc.Agent_shet(0) ), Cstr ( xlWorksheet.cells(j,1).value ) ) > 0 Then

    и with можно убрать...
     
  14. allex

    allex Гость

Загрузка...
Статус темы:
Закрыта.

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