!!!!! ОБНОВЛЕНИЕ ФАЙЛОВ БЕЗ ОТКРЫТИЯ!!!!! |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
My workaround is to record a Macro in the Excel file (so you have to use .xlsm file extension) (first you will need to go to Programs >> Windows Powershell and type at prompt Set-ExecutionPolicy RemoteSigned
to allow the script to run) :
Sub AutoUpdate()
'
' AutoUpdate Macro
' data refresh from MSQuery connection
'
Sheets("Feuill1").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub
Then I use a Powershell script that does the trick by : opening the Excel file, calling the macro, save and close the file.
In this example I make a copy of the original file for security/backup purpose, but of course you could save the original file itself.
$objectExcel = new-object -c excel.application
$objectExcel.displayAlerts = $false # don't prompt the user
#$objectExcel.visible = $True;
$Classeur = $objectExcel.workbooks.open("source_filepath", $null, $true)
$objectExcel.run("AutoUpdate")
# $objectExcel.run("RemoveODBC") # another custom macro for removing data connexion
$Classeur.saveas("destination_filepath")
$Classeur.close($false)
#$objectExcel.visible = $False;
$objectExcel.quit()
spps -n excel
So my Excel report is refreshed on a daily basis, without any manual intervention, by a Windows Planified task that called the above script.
Здравствуйте,
У меня есть excel (.xlsx) файл, в нем много листов с таблицами которые основываются на данных с внешней SQL базы данных. Файл хранится в облаке в OneDrive (так же могу хранить в SharePoint, если проще).
Сейчас мне приходится открывать файл и нажимать кнопку refresh, что бы обновить данные (или по открытию).
Как я могу сделать так, что бы данные в файле сами обновлялись допустим каждые 30 минут? Встроенный функционал по автоматическому обновлению работает только если файл открыт.
Спасибо
-
Вопрос заданболее двух лет назад
-
1254 просмотра
Пригласить эксперта
Вы сами ответили на свой вопрос — открывать каждые 30 минут и установить автоматическое обновление. Осталось только автоматизировать это. Я бы сделал так: создал папку, в которую кидал бы такие файлы(если их несколько). Далее — скрипт или программку, которая бы периодически бы запускала бы все файлы в фоновом режиме (например, есть VBS скрипты, которые могут это сделать, или же в bat файле всё создать, или программу на любом языке программирования сделать, тут уже дело вкуса). И останется закрыть файл после синхронизации. Тут или по времени, или в самом файле после синхронизации(только как-то надо отследить что это автоматическая синхронизация, а не просто работа с файлом — чтобы можно было с ним работать в штатном режиме) — тут много вариантов, например параметры командной строки отслеживать изнутри, или же просто по имени файла(например, если есть в конце файла «_autosync», то нужно закрыть после синхронизации).
-
Показать ещё
Загружается…
16 апр. 2023, в 13:46
1000 руб./за проект
16 апр. 2023, в 13:34
3000 руб./за проект
16 апр. 2023, в 13:31
4000 руб./за проект
Минуточку внимания
5 / 5 / 0 Регистрация: 15.06.2015 Сообщений: 342 |
|
1 |
|
21.07.2016, 01:35. Показов 13229. Ответов 5
Здравствуйте!
0 |
1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
|
21.07.2016, 06:35 |
2 |
Может я чего-то не понимаю, но думаю, что подобное обновление это мечта фантазера. Все изменения в любом файле происходят в оперативной памяти, т.е он вызывается в память явно или неявно через ссылки связей. Потом его можно и сохранить. Можно сделать в программе загрузку файла (не вручную), поработать с ним и закрыть, когда он не нужен с сохранением или без — по желанию автора.
0 |
5 / 5 / 0 Регистрация: 15.06.2015 Сообщений: 342 |
|
21.07.2016, 06:38 [ТС] |
3 |
Burk, но связи же как, то обновляются без участия оперативной памяти, т.е. берутся данные с любого файла на жёстком диске, главное путь указать верно. а мне бы ещё не просто связи с данными вытаскивать, а тот файл ещё и обновить как то….
0 |
1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
|
21.07.2016, 08:10 |
4 |
Как понять берутся данные из файла? Т.к. файлы имеют определенную структуру, то без участия Excel, думаю, не обходится и наверняка они полностью или частично вызываются в память, только в список вызванных книг они могут не попадать. Я строю свои проекты по другому принципу, попробую создать аналог ваших файлов или пришлите для примера что-нибудь коротенькое.
0 |
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
21.07.2016, 08:36 |
5 |
Попробуйте посмотреть разницу, если в той промежуточной книге отключить галку «save external link values».
0 |
1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
|
21.07.2016, 09:10 |
6 |
Сделал аналог вашей ситуации, так что файл можно не посылать. Думаю файл-ссылка вызывается во временную область, обновляется ваш файл и эта область закрывается. Поэтому не стоит ломать голову над тем чего бы вам хотелось, а нужно в проекте Открыть Файл_ССылки, Изменить, Сохранить. Да и ГУРУ Hugo121, пишет то же самое.
0 |
Dim Ozerov Пользователь Сообщений: 99 |
Доброго дня. Как обновить окно файла xls, который открыт только для чтения ? (Не закрыть и открыть заново вручную — а обновить) Изменено: Dim Ozerov — 08.12.2018 16:46:56 |
vikttur Пользователь Сообщений: 47199 |
Как войти в закрытую дверь? открыть ее, правильно? |
Dim Ozerov Пользователь Сообщений: 99 |
Так как обновить окно файла xls, который открыт только для чтения ? |
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
Закрыть и открыть снова. <#0> |
Dim Ozerov Пользователь Сообщений: 99 |
JayBhagavan, нет — речь не о закрытии-открытии вручную.. Изменено: Dim Ozerov — 08.12.2018 16:47:32 |
RAN Пользователь Сообщений: 7091 |
|
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
Dim Ozerov, Excel — это не Браузер. Да и последний при обновлении страницы её перечитывает, просто ему ненужно закрывать её. По вопросам из тем форума, личку не читаю. |
Dim Ozerov Пользователь Сообщений: 99 |
БМВ, как так ? Какие связи ? То есть макрос — закрывает файл открытый только для чтения и тут же этот закрытый секунду назад файл (так же в режиме только для чтения). |
vikttur Пользователь Сообщений: 47199 |
#9 08.12.2018 17:11:29
Но как? Файл только для чтения, его нельзя изменять! Опишите конечную цель, а не то, как Вы пытаетесь ее достичь. Что делаете? Для чего это все? |
||
Dim Ozerov Пользователь Сообщений: 99 |
#10 08.12.2018 17:15:54
Мне и не надо его изменять — нужно только закрыть и открыть заново. |
||
vikttur Пользователь Сообщений: 47199 |
#11 08.12.2018 17:18:39 А как понимать это:
При
|
||||
Dim Ozerov Пользователь Сообщений: 99 |
vikttur, пишу еще раз : |
Dim Ozerov Пользователь Сообщений: 99 |
Dim Ozerov, я снимаю этот вопрос. А лучшее — как известно — враг хорошего. Изменено: Dim Ozerov — 08.12.2018 17:46:20 |
vikttur Пользователь Сообщений: 47199 |
#14 08.12.2018 17:54:09
Сами себе пишете? И правильно — лучше запомнится А смысл создания темы какой? |
||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#15 08.12.2018 18:09:12 Виктор, ну конечная цель улавливается, но
требовало ответа — НЕВОЗМОЖНО! Если говорить о том . как автоматизировать процесс закрыть и открыть активную книгу , открытую только для чтения, для обновления информации занесенной другим пользователем, то вроде вырисовывается задача для макроса. По вопросам из тем форума, личку не читаю. |
||
Inexsu Пользователь Сообщений: 758 |
#16 08.12.2018 18:39:18 Привет! Код для надстройки
Сравнение прайсов, таблиц — без настроек |
||
bedvit Пользователь Сообщений: 2477 Виталий |
#17 09.12.2018 14:52:47
Есть стандартный способ обновить открытый для чтения файл Excel, без закрыть/открыть вручную и без макросов. Прикрепленные файлы
«Бритва Оккама» или «Принцип Калашникова»? |
||
Inexsu Пользователь Сообщений: 758 |
#18 09.12.2018 15:36:19 Привет!
Крутяк! Спасибо! Сравнение прайсов, таблиц — без настроек |
||
sokol92 Пользователь Сообщений: 4445 |
#19 09.12.2018 21:32:14 #17 : Workbook.UpdateFromFile Владимир |