Показать полную графическую версию : excel 2007 через коммандную строку
oren_yastreb
28-09-2011, 12:22
Добрый день!
У меня задачка какая. есть портал sharepoint на котором есть список. Есть файл excel (file.xlsx) который связан с этим списком и при открытие происходит синхронизация с этим списком.
Как через коммандную строку строку открыть этот файл, сохранить и закрыть?
В инете искал, попадаются только статьи как через коммандную строку открыть файл, а какие ключи для сохранения и закрытия так и не нашел.
oren_yastreb, два вопроса:
1) Excel какие-нибудь диалоговые окна при этом выводит?
2) Как Вы определяете, что синхронизация прошла?
oren_yastreb
28-09-2011, 15:19
не выводит никаких окон. при тестирование определял так. Открывал файл excel посмотрел последнюю запись. Затем в список на портале добавил новую запись. Затем открыл файл excel, в конце появилась новая запись.
Iska по поводу окон. Excel выводит окно при закрытие файла, с предложением Сохранить файл или нет
oren_yastreb, у меня, к сожалению нет ни Office 2007, ни SharePoint. Но попробуем:
Option Explicit
With WScript.CreateObject("Excel.Application")
.Visible = True
.AskToUpdateLinks = False
.DisplayAlerts = False
.Interactive = False
.ScreenUpdating = False
With .Workbooks.Open(WScript.Arguments.Item(0))
.Save
.Close True
End With
.ScreenUpdating = True
.DisplayAlerts = True
.Interactive = True
.AskToUpdateLinks = True
.Quit
End With
WScript.Quit 0
Файл указывается аргументом скрипта, например:
"E:\Песочница\0078\MyScript.vbs" "C:\Documents and Settings\User\Мои документы\Hello World.xls"
Если убедитесь, что всё работает как предполагалось — закомментируйте строку:
'.Visible = True
oren_yastreb
29-09-2011, 07:15
попробовал. открывается и закрывается файл, но не обновляется.
наверно еще надо один параметр добавить для обновления. Что бы было активное обновления при открытие файла.
Я добавил новый элемент в список. Попробовал из скрипта убрать строчки .Quit и .Close True. Файл открылся но не обновился, новый элемент не появился.
Вручную попробовал нажать на кнопку "Обновить", синхронизация прошла , но другие параметры обновления не активны.
Скрипт попробовал и на 2003 и на 2007 офисе.
А так если обычным способом открыть файл, то обновление происходит.
oren_yastreb
29-09-2011, 07:46
Iska но наводка не плохая. У меня получился вот такой скрипт. только не получается получается Сохранить и Закрыть его.
Поможете разобраться
Set objShellApp = CreateObject("Shell.Application")
Set objShell = CreateObject("WScript.shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
FolderPath ="E:\vbs"
FileName = "graphikVKS.xls"
FilePath = FolderPath & "\" & FileName
Set File = objFSO.GetFile(FilePath)
objShellApp.ShellExecute File.name, "",FolderPath,"open", 10
WScript.Sleep 2000
Set objExcel = GetObject(, "Excel.Application"
oren_yastreb
30-09-2011, 11:00
Вообщем нашел решение.
1 Открыл Excel файл
2 открыл редактор VB
3 нажал правой кнопкой(в панеле объктов) на мою книгу и выбрал "просмотр кода"
4 В событие Open вставил такие строчки
ActiveWorkbook.Save
Application.Quit
5 В Безопасности Excel разрешил запуск макросов
oren_yastreb, почему я спрашивал про диалоговые окна при открытии — я пытался симулировать работу с запросами посредством Excel-2-Excel. У меня при ручном открытии постоянно возникало окно:
http://img9.imageshack.us/img9/6180/clipboardh.png
При нажатии «Включить обновление» — данные обновлялись.
При программном открытии — окно не появлялось, данные не обновлялись.
Пляски с бубном вокруг параметров программного открытия, обновления ссылок и т.п., вокруг параметра «QuerySecurity»: При открытии книги в Excel предлагает включить автоматическое обновление (http://support.microsoft.com/kb/248204/ru), вокруг групповой политики «Настройка параметров автоматического обновления запросов»(«Automatic Query Refresh»): Настройка параметров групповой политики для Excel 2007 (http://technet.microsoft.com/ru-ru/library/cc179057(v=office.12).aspx) — результата не принесли. Update: Результат был, не срабатывало именно у меня в конкретный момент из-за не перезагружавшейся в течение полутора месяцев машине.
В Безопасности Excel разрешил запуск макросов »
лучше подписать макрос и запретить все, кроме макросов с цифровой подписью.
Перед этим создайте свой сертификат с помощью "Средства создания цифровых сертификатов для проектов VBA" (в средствах Office)
oren_yastreb
03-10-2011, 08:44
Спасибо всем кто участвовал! То что хотел уже настроил. Правда времени убил много на скрипт а в результате решением было
две строчки в макросе )))
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2024, Jelsoft Enterprises Ltd.