Код импорта из Экселя

Тема в разделе "Lotus - Программирование", создана пользователем romanko, 17 мар 2011.

  1. romanko

    romanko Гость

    Подскажите в чем проблема?Есть код для импорта из экселя в лотус, о при добавлении его в кнопку он пишет ошибка :"Указанная команда не доступна с рабочей области" Как с этим бороться?????
    Sub Click(Source As Button)

    Dim xlFilename As String

    xlFilename = Inputbox$("1231.xls", "D:\Lotus\Справочник\1231.xls", "D:\Lotus\Справочник\1231.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 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
    Print "Starting import from Excel file..."
    Dim strName As String
    Add:

    Set doc = db.CreateDocument
    With doc
    .Form = "станции наме шорт"

    .Namestan = xlCells( 2, 1).Value
    .ShortName = xlCells( 2, 2).Value

    End With
    Call doc.Save( True, True )

    excel.quit
    Dim ws As New NotesUIWorkspace
    Call ws.ViewRefresh
    Call ws.EditDocument( doc )


    End Sub
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
  3. romanko

    romanko Гость

  4. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Set Excel = CreateObject("excel.application")
    Call Excel.Workbooks.Open(xlFilename)
    Set xlSheet = xlWorkbook.ActiveSheet
    Excel.Visible = False


    Set doc = db.CreateDocument

    With doc
    .Form = "станции наме шорт"
    .Namestan = xlSheet.Range("B1").Value
    .ShortName = xlSheet.Range("B2").Value
    End With
     
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    нет вопроса - нет и ответа (ребусы разгадывать неохота - научитесь вопросы задавать)

    а в той ссылке - база с рабочим примером, about (Help->About This Database) всё описано
    запускается форма - получаем выгрузку
    выгружаеи все поля любого! дока (из текущего view)
    также - загружает из хехеля, по указанной форме, ориентируется на первую строку в хехель файле (берёт оттудова названия полей)
    т.е. ваще ничё писать ненадо
     
  6. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Если таблица в Excel таблица плоская - я пользуюсь таким методом
    http://www.byman.it/index.php?program=inde...amp;document=78

    Ну либо можно подобным... без назначение поставщика данных в Exel// тогда можно работать с любым файлом без подготовки

    А по твоей ошибке - на какую строку ругается?
    Обычно это бывает когда работаешь с УИ-документом в режиме "на чтение" из бекэнда
     
  7. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    посмотрите внимательней на эти команды
    первая рефрешит вьюхи и предъявляет некоторые требования, почитайте.
    может, у вас вьюхи нет.
    может, открытие документа на редактирование глючит.
     
  8. allex

    allex Гость

  9. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Точно, Call ws.EditDocument(False, doc )-открытие дока на просмотр; Call ws.EditDocument(True, doc )-открытие дока на редактирование
     
  10. romanko

    romanko Гость

    Скачал OpenXLS но он не работает когда устанавливаю jar ошибка доступа к файлу.Что делать??
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    возможно либа уже установлена... (и устанавливать ещё раз не надо)
    ошибки пишутся в строку статуса
    если нет:
    -перезапустить Нотус установить jar
    -повторно перезапустить...

    на самом деле - необязательно view рефрешит :)
     
  12. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    да, каюсь, затупила.
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    PS:
    если это выводится в статус, в строках с MOVE и DELETE - так и должно быть (просто не было либы и удалять/мувить нечего)
     
  14. Arioch

    Arioch New Member

    Регистрация:
    13 июл 2010
    Сообщения:
    2
    Симпатии:
    0
    Было бы неплохо сгруппировать все объявления переменных перед любым их использованием, если вы хотите, чтобы подобный код не вызывал отрицательных эмоций даже без попытки вникнуть в то, что именно он делает.

    Если подобную писанину увеличить в объеме хотя бы втрое, становится весьма неприятно ее поддерживать.
     
Загрузка...

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