Автоподбор высоты объединенных ячеек в Excel

Пришлось недавно переделывать один документ в Excel, который формируется автоматически из программы написанной Delphi. Все бы ничего, но шаблон документа имеет объединенные ячейки в которые необходимо вписывать многострочный текст. И вот тут вылезла "особенность" Excel. Он не умеет автоматически подбирать высоту строки по многострочному тексту в объединенных ячейках. Приехали!!!
Время было позднее, а сроки давили на все части мозга. Погуглив тему нашел ряд примеров с громоздким кодом расчетов ширины-высоты-прочейлабуды. Но толкового ничего. Копаться в мегаскриптах не было ни сил ни желания. Да и код должен быть максимально быстрым. Документы формируются большими пачками и операция выполняется многократно, а всем известно что любой вывод Excel это не быстрая операция.
Итак решение "в лоб". Абсолютно не красивое но весьма эффективное:
- выбираем любой столбец листа Excel за пределами бланка документа и выставляем ширину столбца равной ширине объединенных ячеек (можно на глаз);

wb.Sheets[page_number].Range['DQ:DQ'].ColumnWidth := 27;
- формируем документ и при этом дублируем выводимый текст в эту колонку;
wb.Sheets[page].Range['DQ'+h].Value:=items[i].text;
- говорим "автоподобрать высоту";
wb.Sheets[page].Rows[h+':'+h].EntireRow.AutoFit;
- запоминаем высоту строки;
x:=wb.Sheets[page].Rows[h+':'+h].RowHeight;
- очищаем секретную ячейку;
wb.Sheets[page].Range['DQ'+h].Value:='';
- выставляем высоту строки;
wb.Sheets[page].Rows[h+':'+h].RowHeight := x;
- после формирования документа возвращаем ширину столбца в исходное состояние
wb.Sheets[page_number].Range['DQ:DQ'].ColumnWidth:=0.5;
Собственно все. Надеюсь не напугал. Код не вычищал, но никакой магии там нет. Все просто и тривиально.
Пользуйтесь...


Читать дальше

Автоматическое архивирование логов ISA 2004. Новая версия

Произошло интересное совпадение. В работе скрипта начали случаться непонятніе сбои и только я успел с ними разобраться, как в теме Автоматическое архивирование логов ISA 2004 меня попросили перевыложить исходник скрипта. Мистика блин.

Теперь по порядку. После более, чем двухлетней безукоризненной работы скрипта (раз в несколько месяцев вспоминал посмотреть) начались чудеса. Часть логов перестала попадать в архивный файл. Тоесть детач баз и удаление файлов отрабатывали, а архиватор нет. Анализ показал, что размер лог-файлов увеличился и соответственно размер архивного файла начал превышать допустимый размер. Это явилось следствием увеличения пропускной способности канала.

Соответственно пришлось переделывать скрипт. Раз нельзя упаковать логи за весь месяц в один файл – значит каждый день будет паковаться в отдельный архив. Остальные принципы не поменялись.

Ну и собственно сама ссылка на архив со скриптом.


Читать дальше

Как качать с depositfiles

Depositefiles один из самых распространенных файлообменников. В данном посте хочу рассказать как качать с depositfiles.com из под Linux. Данный процесс будет осуществляться при помощи скрипта, написанного на bash.
Итак:


download_depositfiles()
{
wget -O- -q --post-data 'gateway_result=1' "http://depositfiles.com/ru/files/$(basename ${1})" |
sed -n -r -e 's/.*
}

Скрипт надо сохранить в файл и вызывать: "download_depositfiles <ссылка на скачивание>"

Как это все работает:
- происходит переход по ссылке на страницу с выбором варианта скачивания ("платно"/"бесплатно")
- путём отправки –post-data с параметром "gateway_result=1" происходит "нажатие" на кнопку "бесплатно"
- выполняется поиск прямой ссылки на файл в исходном коде страницы
- начинается загрузка файла по найденной ссылке
- в случае необходимости скрипт переходит в режим "ожидание".

Читать дальше

Модем для интернет-“ОГО”

Я уже описывал, что к интернету подключаюсь чере 3G от Peoplenet. Я не ошибся в расчетах и интернет мне обходится приблизительно 45 грн в месяц (сейчас это порядка 5$). Однако с покупкой ноута одной точки доступа в интернет стало маловато. Решил подключаться через Укртелеком-“ОГО”. Отзывы разные ходят, но районный провайдер это вообще ужас.
И вот встал вопрос в выборе ADSL-модема. Хочу чтобы он сразу два подключения обслуживал: стационарный комп и ноут через Wi-Fi. Тоесть в наборе должен быть роутер.
Друзья посоветовали 3COM ADSL Wireless 11n Firewall Router. Но в списке рекомендованных Укртелекомом модемов его нет. Подскажите, может кто его пробовал с Укртелеком-“ОГО”. Какие отзывы о модеме?


Читать дальше

Сохранение страниц в Firefox

Просматривая информацию в интернете очень часто возникает необходимость сохранения какой либо страницы для последующей работы с ней. Хотя признаюсь честно, в основном это делается на “на всякий случай” :).
Я уже давно и успешно пользуюсь Mozilla Firefox и для сохранения отдельных страниц я использовал плагин Fox2Chm. Этот плагин сохранял всю страницу вместе с картинками в формат CHM. Одно неудобство: если страница содержит банеры или другие элементы, которым нужен интернет – при открытии файла система либо лезет в интернет либо сообщает о невозможности отображения объекта. Но по сути это ерунда. Все решалось сохранением “версии для печати”.
Да, замечательный был плагин. И вся проблема в том, что именно “был”. Он уже давно не потдерживается и для обновлений Firefox его приходилось “подкручивать”. Но главная беда в нем заключатся в том, что он “стареет”. Fox2Chm все хуже и хуже “понимает” современные методы разметки страниц и все чаще сообщает, что не может сохранить страницу.
Мучался я мучался… и тут на днях я вспомнил о замечательном виртуальном принтере doPDF, который сохраняет любой документ в формате PDF. И самое смешное, что этот принтер давно у меня установлен. Тут же были проведены полевые испытания. Скажу одно: просто супер. Всем пользоваться!!!

P. S. doPDF – абсолютно бесплатен!


Читать дальше

MSI Wind U100 Plus

Компания MSI анонсировала новую версию своего топового нетбука Wind U100 Plus.
Wind U100 Plus представляет собой усовершенствованную версию 10-дюймовой модели Wind U100, у которой процессор Intel Atom N270 заменен на Intel Atom N280.
Остальные характеристики остались без изменения: винчестером на 160 Гб, 1 Гб оперативной памяти, 1,3- мегапиксельной веб-камера, кардридер «4 в 1» (SD/MMS/MS/MS Pro) и контроллер Wi-Fi (IEEE 802.11b/g/n). В качестве опции предлагается внешний пишущий DVD-привод.
И еще вкусняшка: от одного заряда 6-ячеечного аккумулятора компьютер способен проработать в автономном режиме до 7 часов.
Данных о цене Wind U100 Plus компания MSI не приводит.


Читать дальше

Чего мне нехватает в USDownloader

В посте Хостинг файлов. Настраиваем USDownloader я уже описывал, как отстроил эту качалку, чтобы легче было жить. Прога классная. Лучшая. Пользуюсь давно. Но есть одно пожелание.
Было бы классно, чтобы USDownloader умел не только перехватывать буфер обмена и выдергивать из него ссылку, но и парсил его на предмет определенных параметров.
А нужно вот для чего: мекоторые файлообменники дают абсолютно неинформативные, обезличенные ссылки (например depositfiles). И по этому практически нет никакой возможности для управления списком ссылок. Но ведь несложно написать плагин который кроме ссылки будет бросать в буфер обмена например заголовок страницы. И будет всем хорошо :)


Читать дальше