PDA

Показать полную графическую версию : excel 2007 через коммандную строку


oren_yastreb
28-09-2011, 12:22
Добрый день!

У меня задачка какая. есть портал sharepoint на котором есть список. Есть файл excel (file.xlsx) который связан с этим списком и при открытие происходит синхронизация с этим списком.

Как через коммандную строку строку открыть этот файл, сохранить и закрыть?
В инете искал, попадаются только статьи как через коммандную строку открыть файл, а какие ключи для сохранения и закрытия так и не нашел.

Iska
28-09-2011, 15:02
oren_yastreb, два вопроса:
1) Excel какие-нибудь диалоговые окна при этом выводит?
2) Как Вы определяете, что синхронизация прошла?

oren_yastreb
28-09-2011, 15:19
не выводит никаких окон. при тестирование определял так. Открывал файл excel посмотрел последнюю запись. Затем в список на портале добавил новую запись. Затем открыл файл excel, в конце появилась новая запись.

Iska по поводу окон. Excel выводит окно при закрытие файла, с предложением Сохранить файл или нет

Iska
28-09-2011, 17:11
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 разрешил запуск макросов

Iska
30-09-2011, 14:53
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: Результат был, не срабатывало именно у меня в конкретный момент из-за не перезагружавшейся в течение полутора месяцев машине.

okshef
30-09-2011, 19:06
В Безопасности Excel разрешил запуск макросов »
лучше подписать макрос и запретить все, кроме макросов с цифровой подписью.

Перед этим создайте свой сертификат с помощью "Средства создания цифровых сертификатов для проектов VBA" (в средствах Office)

oren_yastreb
03-10-2011, 08:44
Спасибо всем кто участвовал! То что хотел уже настроил. Правда времени убил много на скрипт а в результате решением было
две строчки в макросе )))




© OSzone.net 2001-2012