Выкладываю отладочную версию 0.4 с исходниками. В неё добавил формирование протокола в Excel. Если всё пойдёт нормально, в конце недели будет официальная версия у меня на сайте. Но смущает отсутствие отзывов и предложений - как будто никто не пробует, а тестирую я один.
Объявление
Свернуть
Пока нет объявлений.
Письма с превышением уплаты за год
Свернуть
X
-
Сообщение от vk65 Посмотреть сообщениеДа, проблема исчезла.
- Спасибо 0
Комментарий
-
Да, я тоже обратил внимание, что размер был гораздо меньше, чем у vlsverkaPF.
Посмотрел исходники, появилась пара мыслей.
1. Читать из excel по одной ячейке - довольно медленный процесс, на больших объемах исходных данных может сильно тормозить. А если попробовать читать в массив сразу весь лист? Не знаю как в дельфи, на фоксе, к примеру, работает такая конструкция: aArray = oSheet.range(cells(row1,col1),cells(row2,col2)).Va lue.
2. Можно читать из xls, используя ADO. При этом не нужно наличие excel на компе.
- Спасибо 0
Комментарий
-
Сообщение от vk65 Посмотреть сообщение1. Читать из excel по одной ячейке - довольно медленный процесс, на больших объемах исходных данных может сильно тормозить. А если попробовать читать в массив сразу весь лист? Не знаю как в дельфи, на фоксе, к примеру, работает такая конструкция: aArray = oSheet.range(cells(row1,col1),cells(row2,col2)).Va lue.
Сообщение от vk65 Посмотреть сообщение2. Можно читать из xls, используя ADO. При этом не нужно наличие excel на компе.
- Спасибо 0
Комментарий
-
Сообщение от lubezniy Посмотреть сообщениеЗнать бы ещё заранее, сколько строк будет в Excel-файле, чтобы сразу задать range на весь лист...
Сообщение от lubezniy Посмотреть сообщениеА по этой части возникает вопрос: есть ли соответствующие компоненты и драйверы (сами объекты ADO, ODBC-драйвер Excel?) на "голой" Windows (даже редакции Starter), или же их нужно устанавливать отдельно?
С другой стороны, это работает быстрее по сравнению с использованием excel.application. Я недавно дорабатывал одну программку, там как раз исходные данные читаются из таблицы xls (примерно 15 строк, 150 столбцов), разница ощутима.
- Спасибо 0
Комментарий
-
Сообщение от vk65 Посмотреть сообщениеЕсть несколько способов. Я чаще всего делаю так: nRows = oSheet.Range("A65536").End(xlUp).Row
Сообщение от vk65 Посмотреть сообщениеДа, на голой Win их нет. Они входят в состав любого офиса (кроме, наверное, версий starter), т.е., если установлен excel, они есть. Кроме того, их можно скачать с майкрософта, согласен, что для неподготовленных пользователей это не очень удобно, зато - бесплатно.
С другой стороны, это работает быстрее по сравнению с использованием excel.application. Я недавно дорабатывал одну программку, там как раз исходные данные читаются из таблицы xls (примерно 15 строк, 150 столбцов), разница ощутима.
- Спасибо 0
Комментарий
-
Доделал и выложил на http://www.lubezniy.ru/soft/vlsverkapf первую официальную версию сверки ПТК.
- Спасибо 0
Комментарий
-
Обновил версию: в первой, как оказалось, не совсем корректно формировалась Excel-форма протокола, в результате чего она в некоторых случаях не открывалась.
Провёл также хронометраж работы программы на заведомо слабоватой конфигурации. Нетбук с двухъядерным процессором от AMD, двумя гигабайтами ОЗУ, 32-битной Windows 7 Home Basic и OpenOffice 3.4.1 управился с обработкой запроса на чуть менее 1000 застрахованных лиц и ИС из выложенного выше тестового примера примерно за 2 минуты. Скорость, конечно, не ахти какая, да и на чтение XML-файлов соответствующего объёма надо выделить ещё с минуту (про открытие протокола в OpenOffice не знаю даже - проверял на HTML-форме), но в целом работает шустрее, чем я ожидал. Ускорять буду по мере возможности.
- Спасибо 0
Комментарий
-
Сообщение от lubezniy Посмотреть сообщениеДоделал и выложил на http://www.lubezniy.ru/soft/vlsverkapf первую официальную версию сверки ПТК.
Например, в каждое сообщение как "подпись"
- Спасибо 0
Комментарий
-
Сообщение от lubezniy Посмотреть сообщениеОбновил версию: ...
- Спасибо 0
Комментарий
-
Сообщение от yante Посмотреть сообщениеТы бы эту ссылку выложил где-то в постоянный доступ, чтобы не искать ее постоянно.
Например, в каждое сообщение как "подпись"
- Спасибо 0
Комментарий
реклама
Свернуть
Комментарий