Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.12.25;
Скачать: CL | DM;

Вниз

Проблемы с обработкой большого количества ячеек Excel   Найти похожие ветки 

 
Денис Демченко   (2007-04-11 16:09) [0]

Задача стоит таким образом
1.Сложить данные, содержащиеся в разных файлах, поячеечено. Т.е. ячейка А1 файла 1.xls с ячейкой А1 файла 2.xls и так для всех файлов.
2.Организовать приведение типов для ячеек. В случае, если ячейка не содержит числового значения, то добавить ноль вместо нее. Кто его знает,что умдриться написать бухгалтер из вот того самого отделения в той самой ячеечке.
3.Сохранить полученные результаты в отдельный файл.
Как решил сделать это я:
1.Сохраняю диапозон ячеек из Excel и в цикле пробегаюсь по ним, приводя типы, и суммируя соответственно к элементам массива длиной (кол-во строк диапозона)*(количество столбцов диапозона)
2.Закрываю превыдущий файл, открываю следующий и выполняю пункт 1.
3.Создаю новую книгу и забиваю в нее динамический массив.
Берем 15000 ячеек. Над каждой ячейкой выполняеться минимум 2 операции. Все это время массив приходиться хранить в памяти. Значит получаем, что во время выполнения программы выполняеться навскидку (15000*2*кол-во файлов) операций. Бедный процессор. Не верю я в его возможности.
Вот и спрашиваю совет, как это большушее число уменьшить. Если учесть, что параллельно Excel будет открывать/закрывать книги,то проще будет сделать все ручками с помощью калькулятора.
Мои варианты - либо использовать промежуточное сохранение, либо в файл, либо куда-нибуть в базу,а уж потом работать с этим сохранением. все-таки получиться, что хотябы время на выполнение операций поделиться на два этапа, его хоть как-то можно будет контролировать.
Вот и спрашиваю совет, насколько мои рассуждения обоснованы...
Кто что  может предложить?а то я уже неденю бьюсь над проблемой...


 
umbra ©   (2007-04-11 16:30) [1]

1) защитить структуру листа, который заполняют пользователи паролем
2) открыть книги по очереди и сохранить нужный лист в формате csv
3) грузить эти текстовые файлы, разбирать построчно.

Будет намного быстрее, чем при прямой работе с экселем.


 
Денис Демченко   (2007-04-11 16:52) [2]

1)-мне еще здесь работать:) меня не поймут, это файлы отчетности. И так пароли навешаны.
2)-а что есть формат csv? как он вообще храниться и что из себя представляет файл?чем к нему потом осуществлять доступ?это, как вы говорите, текстовый, т. е. получаеться содержащий размеченный текст,я так понимаю?
Неудобная все-таки конструкция получаеться. Я думал максимум об одном файле. А так их будет по количеству открытых+Экселевский.Хм.


 
Денис Демченко   (2007-04-11 16:58) [3]

Подумал и решил дописать. Наверное, постраничное сохранение не прокатит-файлы содержат формулы, ссылающиеся на разные листы


 
umbra ©   (2007-04-11 17:08) [4]


> а что есть формат csv?

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


> Неудобная все-таки конструкция получаеться. Я думал максимум
> об одном файле. А так их будет по количеству открытых+Экселевский.
> Хм.

зачем держать открытыми все файлы? Достаточно одного, с которым производится работа. текстовые файлы можно после разбора удалять.


 
Денис Демченко   (2007-04-11 17:20) [5]

Хм.А как тогда при запуске программы сохранять страницу  в текстовый файл?чем тогда воспользоваться?


 
umbra ©   (2007-04-11 17:24) [6]


> А как тогда при запуске программы сохранять страницу  в
> текстовый файл?чем тогда воспользоваться?

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


 
Денис Демченко   (2007-04-11 17:32) [7]

Спасибо!Ну что же, как вариант, очень даже подходит. Может, даже, это будет гораздо проще...
Блин,народ требует,чтобы была одна кнопка, по которой будет делатся ВСЕ!!!!херово... придеться писать все-таки с Экселем...



Страницы: 1 вся ветка

Текущий архив: 2011.12.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
8-1219696911
Zilog
2008-08-26 00:41
2011.12.25
Как узнать, насоклько один цвет отличается от другого (RGB)


2-1316153126
alexdn
2011-09-16 10:05
2011.12.25
TrackBar


2-1311663740
oleg_veles
2011-07-26 11:02
2011.12.25
Ошибка: Поставщик данных ....... состояние E_FAIL


2-1316076960
pk
2011-09-15 12:56
2011.12.25
TpFibDataSet передать значение параметру


15-1315402684
Jeer
2011-09-07 17:38
2011.12.25
Зачетный HTML 5