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

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

  1. oxystile

    oxystile Гость

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

    ToxaRat Чёрный маг
    Команда форума Lotus team

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

    susinmn Well-Known Member

    Репутация:
    0
    Регистрация:
    16 окт 2007
    Сообщения:
    529
    Симпатии:
    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 Гость

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


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

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

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

    oxystile Гость

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

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

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

    oxystile Гость

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

    FixeR Гость

    Репутация:
    0
    WinAPI: функции GetUserName / GetUserNameEx и GetVersion / GetVersionEx.

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

    oxystile Гость

    Репутация:
    0
    o! я вот что только нашла Environ("username") & Environ("os")
     
  11. lmike

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

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

    Akupaka А че я?.. О.о

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

    ToxaRat Чёрный маг
    Команда форума Lotus team

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

    Akupaka А че я?.. О.о

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

    oxystile Гость

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

    Akupaka А че я?.. О.о

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

    ToxaRat Чёрный маг
    Команда форума Lotus team

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

    Akupaka А че я?.. О.о

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

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

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

    oxystile Гость

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

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