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

  • Автор темы oxystile
  • Дата начала
O

oxystile

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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
самый правильный вариант готовить xml для ворда/экселя
минимум действий, максимум скорости и файл уже сохранён
единственный минус - древний офис его не понимает
 
S

susinmn

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

Если так записать, тоже ругается (на 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]
 
O

oxystile

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


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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
А куда ты сохраняешь? К примеру, на c:\ у простого пользователя нет доступа.
 
O

oxystile

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Сохранять в профильную папку пользователя. Использовать переменные среды и всё такое.
 
O

oxystile

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

FixeR

как вычислить %UserName% ?
как определить какая ос?
WinAPI: функции GetUserName / GetUserNameEx и GetVersion / GetVersionEx.

Или попроще: через WScript.Shell
.
 
O

oxystile

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

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
470
Доброго!
Есть скрипт для получения данных в excel и сохранении. Для ОС windows XP все работает, для ОС Windows 7 получаю error 213 %s на строке Call xlApp.Workbooks(1).SaveAs( filePathExcel )
Думаю, что это общая проблема, и если юсеры станут переходить на Windows 7, то многие разработчики с этим столкнутся
нет не общая... ;) права - это нормально
и тем не менее - напомню
link removed (если есть намерение отказаться от КОМ)
и виноват не нотус (более - он не при чём)
как пр-ло - лечить надо источник проблем, а не последствия :)
 
A

Akupaka

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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
xml для ворда/экселя а можно тут поподробнее. Древний офис это насколько древний?


попробовала через Call xlWbk.SaveAs("c:\test.xls") ругается Cannot access 'test.xls'
всё не так
сохранять файл нужно средствами самого лотуса без использованим COM офиса
офисом лишь открывать этот файл
 
A

Akupaka

Правильно, все не так, нефиг вообще париться и готовить xml-документ офисный, иначе выйдет патч или новая версия и в одно место всю проделанную работу. Это даже, если не учитывать, что "древний офис его не понимает" (с)
 
O

oxystile

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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
нефиг вообще париться и готовить xml-документ офисный, иначе выйдет патч или новая версия и в одно место всю проделанную работу
сколько не выходило патчей всё работает
и удобство еще в одном
такой файлик можно подготовить на сервере - особенно актуально для годовалых отчётов и выслать юзеру и ничего на сервере инсталить кроме домино не нужно
вариант с веб решением еще в обкатке но тоже проблем не будет
 
A

Akupaka

сколько не выходило патчей всё работает
Хочешь нас заверить, что майкрософт вылечился от болезни не придерживаться стандартов, хотя бы своих? :)
В любом случае, для решения этой задачи эй понадобиться изучить xml и, вероятно, xslt, а также формат xml-документа екселя и сопутствующуюю инфу.
Имхо, хорошая задача из разряда разобраться в будущем, но для решения задачи топика слишком толстое решение.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
470
ХМЛ файло является "выходом" тока для простых вариантов, да и в любом раскладе - нужно создавать "движок" (набор классов для работы) ли писать ХСЛТ таблицы (что не проще)
 
O

oxystile

to Akupaka: сделала уже :) и сохраняю через Environ$("Temp")
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!