Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   excel 2007 через коммандную строку (http://forum.oszone.net/showthread.php?t=216665)

oren_yastreb 28-09-2011 12:22 1761691

excel 2007 через коммандную строку
 
Добрый день!

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

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

Iska 28-09-2011 15:02 1761787

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

oren_yastreb 28-09-2011 15:19 1761801

не выводит никаких окон. при тестирование определял так. Открывал файл excel посмотрел последнюю запись. Затем в список на портале добавил новую запись. Затем открыл файл excel, в конце появилась новая запись.

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

Iska 28-09-2011 17:11 1761870

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 1762186

попробовал. открывается и закрывается файл, но не обновляется.

наверно еще надо один параметр добавить для обновления. Что бы было активное обновления при открытие файла.

Я добавил новый элемент в список. Попробовал из скрипта убрать строчки .Quit и .Close True. Файл открылся но не обновился, новый элемент не появился.
Вручную попробовал нажать на кнопку "Обновить", синхронизация прошла , но другие параметры обновления не активны.
Скрипт попробовал и на 2003 и на 2007 офисе.

А так если обычным способом открыть файл, то обновление происходит.

oren_yastreb 29-09-2011 07:46 1762193

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 1762933

Вообщем нашел решение.
1 Открыл Excel файл
2 открыл редактор VB
3 нажал правой кнопкой(в панеле объктов) на мою книгу и выбрал "просмотр кода"
4 В событие Open вставил такие строчки
ActiveWorkbook.Save
Application.Quit
5 В Безопасности Excel разрешил запуск макросов

Iska 30-09-2011 14:53 1763096

oren_yastreb, почему я спрашивал про диалоговые окна при открытии — я пытался симулировать работу с запросами посредством Excel-2-Excel. У меня при ручном открытии постоянно возникало окно:

При нажатии «Включить обновление» — данные обновлялись.

При программном открытии — окно не появлялось, данные не обновлялись.

Пляски с бубном вокруг параметров программного открытия, обновления ссылок и т.п., вокруг параметра «QuerySecurity»: При открытии книги в Excel предлагает включить автоматическое обновление, вокруг групповой политики «Настройка параметров автоматического обновления запросов»(«Automatic Query Refresh»): Настройка параметров групповой политики для Excel 2007 — результата не принесли. Update: Результат был, не срабатывало именно у меня в конкретный момент из-за не перезагружавшейся в течение полутора месяцев машине.

okshef 30-09-2011 19:06 1763289

Цитата:

Цитата oren_yastreb
В Безопасности Excel разрешил запуск макросов »

лучше подписать макрос и запретить все, кроме макросов с цифровой подписью.

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

oren_yastreb 03-10-2011 08:44 1764748

Спасибо всем кто участвовал! То что хотел уже настроил. Правда времени убил много на скрипт а в результате решением было
две строчки в макросе )))


Время: 23:07.

Время: 23:07.
© OSzone.net 2001-