Работа с большим количеством таблиц

  • Автор темы Автор темы VELL
  • Дата начала Дата начала

VELL

Client
Регистрация
02.05.2014
Сообщения
67
Реакции
11
Баллы
8
Здравствуйте!
Задача стояла сделать следующее:
У нас есть много таблиц ексель(на момент написания было 50 шт) Сейчас 170. В будущем будет несколько тысяч. Шаблон должен зайти на каждую таблицу. Выпарсить несколько данных(иногда добавить данные). И дальше берем следующую таблицу.

Я это сделал так:
1. Беру ссылку на ексель, привязываю к таблице. Выпаршиваю данные, делаю изменение.
2. Беру следующую таблицу.

Это все очень грузит компьютер. На 170 таблице имеем следующую картину.

WQtRq_vXRPCxF12sxKYPgQ.png


После того как шаблон выполнен, нагрузка все равно остается. Приходится закрывать через "завершить процесс"

Есть ли способ сбросить эту нагрузку после каждой новой таблицы?
Как то так:
Привязали таблицу, сделали что нужно. Сбросили нагрузку. Привязали другую таблицу

Понимаю что когда будет таблиц еще больше, работать это все перестанет))) Поэтому нужно решение
 
Вам нужно изучать работу с БД по sql запросам. В зенке есть такой кубик. Все что вы сейчас делаете будет занимать доли секунды при работе по sql, а не минуты и часы, как у вас сейчас. Все таблицы экселевские предварительно нужно импортировать в БД. Копайте в эту сторону...
 
Вам нужно изучать работу с БД по sql запросам. В зенке есть такой кубик. Все что вы сейчас делаете будет занимать доли секунды при работе по sql, а не минуты и часы, как у вас сейчас. Все таблицы экселевские предварительно нужно импортировать в БД. Копайте в эту сторону...
Поддерживаю, Такое количество обрабатываемых файлов будет очень замедлять работу диска, который в свою очередь будет тормозить систему...
 
Получается импортировать нужно каждый раз, так как в таблицах каждый день происходят изменения и их нужно считывать и проверять.
Разве нет способа как то сбросить нагрузку? И почему она остается(нагрузка) после того как шаблон заканчивает работу?
 
Получается импортировать нужно каждый раз...
Импорт данных из excel-файла в БД тоже можно автоматизировать.
В зависимости от концепции вашей задачи:
1) excel тоже может работать с БД;
2) bat файл;
3) php скрипт на вашем сервере/хостере;
3) еще что-то...
Суть в другом - парсить ничего не нужно... Для работы с большим объемом табличных данных существует специальный инструмент - База Данных. SQL запросы позволяют очень легко и быстро с БД общаться: брать/искать/записывать данные в базу не нагружая машину.

Ну а есть вам уж так лень разбираться с БД, то вопрос другой: вы в одном проекте по очереди все excel файлы перебираете или зацикливаете проект в зенопостере и он за каждый проход парсит 1-у таблицу?
 
У меня все зациклено(проходит все таблицы за раз). Думал разбить, что бы каждый раз завершало работу после каждого ексель. Но ведь нагрузка остается даже после того как проект выполнен... Не уверен что это поможет

Разбираться не особо с БД хочется, хотелось бы решение сброса нагрузки. Переделать могу шаблон что бы брало 1 ексель, а не все за раз.
Но если решение не найдется то придется копать в сторону БД
 
У меня все зациклено(проходит все таблицы за раз). Думал разбить, что бы каждый раз завершало работу после каждого ексель. Но ведь нагрузка остается даже после того как проект выполнен... Не уверен что это поможет
А вы попробуйте - возможно поможет. И зацикливайте проект именно в Зенопостере, а не в ПроектМэйкере.
Или попробуйте загрузку/обработку каждой таблицы делать в внутреннем подпроекте, а зацикливать в внешнем.
 
А вы попробуйте - возможно поможет. И зацикливайте проект именно в Зенопостере, а не в ПроектМэйкере.
Или попробуйте загрузку/обработку каждой таблицы делать в внутреннем подпроекте, а зацикливать в внешнем.
Спасибо за советы! Буду пробовать
 
Получается импортировать нужно каждый раз, так как в таблицах каждый день происходят изменения и их нужно считывать и проверять.
Надо было изначально делать на БД...
 
Надо было изначально делать на БД...
Там такая ситуация что это договора в екселе, которые заполняют менеджеры. А с этими договорами уже работает шаблон. Всю систему ломать нет желания, если все нормально работает. Надо только сбросить нагрузку)
 
В экселе если настроете работу с БД - может вообще ничего парсить не нужно будет :D
Сами менеджеры, при работе в excel - будут вносится изменения в БД.
А ваш шаблон - будет уже работать с БД. Скорость возрастет тысячекратно, а нагрузка приблизится к нулю...
 
  • Оценить
Реакции: VELL
Я уже понял что Бд будет круто))) Но работа сделана, переделывать кардинально нет ни желания ни времени.
Разве нет способа сбросить эту нагрузку?))
 
Я уже понял что Бд будет круто))) Но работа сделана, переделывать кардинально нет ни желания ни времени.
Разве нет способа сбросить эту нагрузку?))
А вы попробовали?
А вы попробуйте - возможно поможет. И зацикливайте проект именно в Зенопостере, а не в ПроектМэйкере.
Или попробуйте загрузку/обработку каждой таблицы делать в внутреннем подпроекте, а зацикливать в внешнем.
 
Разве нет способа сбросить эту нагрузку?))
Если даже после отвязки файла и завершения шаба, память не уменьшается,
пишите тикет про баг и ищите человека, кто готов делать работу с экселем на C#.

Навряд ли это хорошая идея.
 
работа сделана, переделывать кардинально нет ни желания ни времени.
Вы все равно к этому рано или поздно придете...
Сейчас вас не устраивает нагрузка. Следующим этапом, когда таблиц будет больше - начнет не устраивать скорость работы проекта :-)
 
  • Оценить
Реакции: VELL
Зараз как раз делаю
Зараз не нужно.
Попробуйте:
- запуск встроенного проекта (одна таблица),
- завершение встроенного проекта,
- запуск встроенного проекта по новой (вторая таблица),
- и т.д.
 
И зацикливайте проект именно в Зенопостере, а не в ПроектМэйкере.
Или попробуйте загрузку/обработку каждой таблицы делать в внутреннем подпроекте, а зацикливать в внешнем.
А почему именно в Зенопостере, а не в ПроектМэйкере?
И в чем разница, если несколько подпроектов в проекте в ПроектМэйкере и если это через Зенопостер.
Как связать тогда переходы подпроектов как отдельные проекты в Зенопосторе?
 
Это все очень грузит компьютер. На 170 таблице имеем следующую картину.
1 запуск, 1 таблица (или небольшое количество)
переделываем запуск на бат файл, экспорт в батник по правой кнопке мыши.
Берем autoit или любой аналог который может убить процесс автоматически по условию и после того как проект отработал убиваем процесс зенопостера, если все ещё висит в памяти.
Запускаем заново батник.
 

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