Как записать данные в открытую таблицу?

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 333
Благодарностей
5 431
Баллы
113
Нужно работать с открытой таблицей (будет открыта иногда). Запись и чтение производится в локе.

Как сохранять данные если в момент сохранения таблица будет открыта? Может можно проверять ее на "открытость"? Или как то косвенно определять, что в данный момент запись не возможна.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 333
Благодарностей
5 431
Баллы
113

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 333
Благодарностей
5 431
Баллы
113
гугл таблицы решат этот вопрос? там вроде можно менять данные в реальном времени.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 694
Благодарностей
1 873
Баллы
113
Лучше копию таблицы делать и работать с ней. Или попробовать работу через epplus.dll
 
  • Спасибо
Реакции: Mikhail B.

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 396
Благодарностей
979
Баллы
113
Если тебе нужно просто держать таблицу открытой и смотреть данные, а не править параллельно, можешь попробовать держать файл в Дропбоксе, при закрытии файла - синхронизируется с последним сохранением со стороны зенки. Понятно, что новые сохранения в Эксель не будут подгружаться. Ну или да, как вариант выше предложили, делать копию файла (я обычно зенкой сразу делаю) и уже ее открывать.
Если файл открыт, зенка вроде по ошибке выйдет, то файл не получается использовать. Вот тебе и косвенный признак.
Вопрос лишь в цели изначальной.
 
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 333
Благодарностей
5 431
Баллы
113
Лучше копию таблицы делать и работать с ней. Или попробовать работу через epplus.dll
Допустим. По какой логике действовать?
Допустим раз в минуту проверяем таблицу на изменения и вносим необходимые правки как в одну, так и в другую сторону.
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 396
Благодарностей
979
Баллы
113
Если тебе надо, чтобы у тебя в открытой тобой таблице менялись данные, тогда, думаю, только гугл..
С другой стороны, главный вопрос: зачем таблицу постоянно держать открытой? Чтобы визуально следить за данными (в том числе, изменениями)?
 
Последнее редактирование:

one

Client
Регистрация
22.09.2015
Сообщения
6 796
Благодарностей
1 264
Баллы
113
А никак, ты открой таблицу дважды и поробуй сохранить, винда не даст.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 694
Благодарностей
1 873
Баллы
113
Допустим. По какой логике действовать?
Допустим раз в минуту проверяем таблицу на изменения и вносим необходимые правки как в одну, так и в другую сторону.
Насколько я помню в epplus изменения надо сохранять отдельным действием, иначе они только в памяти находятся. Вот и При проверке нужно сохранить данные и проверять уже. ну и после изменений нужно считывать данные заново.
 

che100

Client
Регистрация
18.04.2017
Сообщения
808
Благодарностей
499
Баллы
63

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 333
Благодарностей
5 431
Баллы
113

che100

Client
Регистрация
18.04.2017
Сообщения
808
Благодарностей
499
Баллы
63
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 333
Благодарностей
5 431
Баллы
113
Проверил как работает таблица если ее просто лочить при чтении записи.

- Если ничего не добавлять в нее, а просто читать. То зенка сохраняет нормально (держал таблицу открытой пару минут).

- А вот если открыть и в этот момент зенка запишет, но при этом мы внесли новые данные и сохранили, то с зенки не подтянуться изменения. (при этом ошибок никаких не было в Zenno)

__
Не ищу элегантное решение, сойдет и топорный вариант.

Пока единственное решение (которое я вижу) это прерывать проект (это допустимо, но в остальное время проект должен быть запущен), по скольку работа с таблицей ведется не с основного шаблона, а с управляющего, то 99% его работы это ожидание новых данных от пользователя или от исполняющего шаблона . Соответственно если понимать что происходит в проекте, то можно спокойно его прерывать и записывать данные в таблицу.

__
P.S.
зенка ошибку не выдает, что файл занят, когда пишешь в таблицу ?
Не выдает)
 
Последнее редактирование:

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 333
Благодарностей
5 431
Баллы
113

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 333
Благодарностей
5 431
Баллы
113

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)