Получение Данных И Сохранение В Excel Из Лотуса (windows 7!)

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

  1. oxystile

    oxystile Гость

    Доброго!
    Есть скрипт для получения данных в excel и сохранении. Для ОС windows XP все работает, для ОС Windows 7 получаю error 213 %s на строке Call xlApp.Workbooks(1).SaveAs( filePathExcel )
    Думаю, что это общая проблема, и если юсеры станут переходить на Windows 7, то многие разработчики с этим столкнутся
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    самый правильный вариант готовить xml для ворда/экселя
    минимум действий, максимум скорости и файл уже сохранён
    единственный минус - древний офис его не понимает
     
  3. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Если так записать, тоже ругается (на W7 не проверял)?
    <!--shcode--><pre><code class='avto'>Set xl=CreateObject("Excel.Application")
    Set xlWbk = xl.Workbooks.Add()
    ...
    тут заполняем xlWbk
    xlWbk.ActiveSheet.Cells(i, j).value=""
    ...
    Call xlWbk.SaveAs(filePathExcel)[/CODE]
     
  4. oxystile

    oxystile Гость

    xml для ворда/экселя а можно тут поподробнее. Древний офис это насколько древний?


    попробовала через Call xlWbk.SaveAs("c:\test.xls") ругается Cannot access 'test.xls'
     
  5. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    А куда ты сохраняешь? К примеру, на c:\ у простого пользователя нет доступа.
     
  6. oxystile

    oxystile Гость

    вот оно в чем дело... и как обойти можно? лично у меня на рабочем ноуте сейчас только один с диск
     
  7. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
  8. oxystile

    oxystile Гость

    ага, ясно, спасибо!
    тогда вопрос, как вычислить %UserName% ?
    смотрела в сторону notes.ini там есть SU_FILE_CLEANUP но насколько это будет универсально для всех и как определить какая ос?
     
  9. FixeR

    FixeR Гость

    WinAPI: функции GetUserName / GetUserNameEx и GetVersion / GetVersionEx.

    Или попроще: через WScript.Shell
    http://www.script-coding.com/WSH/WshShell.html#2.2.
     
  10. oxystile

    oxystile Гость

    o! я вот что только нашла Environ("username") & Environ("os")
     
  11. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    нет не общая... ;) права - это нормально
    и тем не менее - напомню
    http://codeby.net/forum117.html# (если есть намерение отказаться от КОМ)
    и виноват не нотус (более - он не при чём)
    как пр-ло - лечить надо источник проблем, а не последствия :)
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Зачем имя пользователя? Если нужно временно сохранить файл, есть директории для временных файлов %temp%
    Если же файл необходим пользователю, тогда необходимо дать возможность пользователю указать самому куда следует сохранять документ. Лучше всего вообще ексель оставить открытым в конце (вроде Application.Visible = True) и пусть что хочет, то и делает с ним.
     
  13. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    всё не так
    сохранять файл нужно средствами самого лотуса без использованим COM офиса
    офисом лишь открывать этот файл
     
  14. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Правильно, все не так, нефиг вообще париться и готовить xml-документ офисный, иначе выйдет патч или новая версия и в одно место всю проделанную работу. Это даже, если не учитывать, что "древний офис его не понимает" (с)
     
  15. oxystile

    oxystile Гость

    вот кстати слышала про альтернативу сохранять средствамит самого лотуса, подскажите где про это можно почитать ... очень надо
     
  16. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Что надо? Всем очень надо... каждому свое.
    Доделай сначала то, что начала в начале темы.
     
  17. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    сколько не выходило патчей всё работает
    и удобство еще в одном
    такой файлик можно подготовить на сервере - особенно актуально для годовалых отчётов и выслать юзеру и ничего на сервере инсталить кроме домино не нужно
    вариант с веб решением еще в обкатке но тоже проблем не будет
     
  18. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Хочешь нас заверить, что майкрософт вылечился от болезни не придерживаться стандартов, хотя бы своих? :)
    В любом случае, для решения этой задачи эй понадобиться изучить xml и, вероятно, xslt, а также формат xml-документа екселя и сопутствующуюю инфу.
    Имхо, хорошая задача из разряда разобраться в будущем, но для решения задачи топика слишком толстое решение.
     
  19. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    ХМЛ файло является "выходом" тока для простых вариантов, да и в любом раскладе - нужно создавать "движок" (набор классов для работы) ли писать ХСЛТ таблицы (что не проще)
     
  20. oxystile

    oxystile Гость

    to Akupaka: сделала уже :) и сохраняю через Environ$("Temp")
     
Загрузка...

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