Page 1 of 3

*.xls Viewer

Posted: Mon 10 Oct, 2005 05:55
by Mike
Очень хотся просматривать таблички Excel во встроенном вьюере (или конвертер какой-нить *.xls в *.txt), да так, чтобы выглядели по - человечески, что-то типа той картинки -->

Posted: Tue 11 Oct, 2005 01:36
by -=QWERTY=-
был старый буржуйский конвертер но он вроде без уникода (руски-не-понимайт)
а вообще чем обычный xlviewer плох мелкомягкий? по F3 :oops:

Posted: Tue 11 Oct, 2005 04:25
by Mike
В крови, понимаешь, отвращение ко всему неуклюжему, неповоротливому и почему-то при этом огромному, да еще и мелко мягкому .. :), был бы признателен, если б на конвертер этот буржуйский линку бы, или само его мне...

Posted: Tue 11 Oct, 2005 10:49
by zg
Mike wrote:да еще и мелко мягкому
иди пользуйся линуксом и не морочь людям голову.

Posted: Tue 11 Oct, 2005 19:10
by John Doe

Posted: Wed 12 Oct, 2005 05:32
by Mike
Спасибо John, с первыми двумя линками после некоторых действий, сопровождавшихся крепкими нецензурными выражениями я разобрался, конвертер слил, пристально рассмотрел, весчь в хозяйстве полезная. Несколько напрягает форматировать сконвертированный док, но уже близко к желаемому (желаемое - в виде плагина, да еще чтоб русский понимал, да еще границы колонок рисовал ;)). Слил без выражений и контент с двух других ссылок и несколько разочаровался - не знаю что с этим делать.. не программер я..).
P.S. --здесь был текст-- В ЛИЧКУ С ТАКИМИ КОММЕНТАРИЯМИ! WARP ItSelf

Posted: Sun 16 Oct, 2005 15:59
by John Doe
Mike wrote:Спасибо John, с первыми двумя линками после некоторых действий, сопровождавшихся крепкими нецензурными выражениями я разобрался, конвертер слил, пристально рассмотрел, весчь в хозяйстве полезная. Несколько напрягает форматировать сконвертированный док, но уже близко к желаемому (желаемое - в виде плагина, да еще чтоб русский понимал, да еще границы колонок рисовал ;)).
А чем тебя не устраивает ХТМЛ-вывод: русский понимает. границы - рисует.
Или вот есть плагины к Тоталу, напр. Excellence.wlx. (Если не знаешь, к фару его можно подключить с помощью wlx2far)
P.S. --здесь был текст-- В ЛИЧКУ С ТАКИМИ КОММЕНТАРИЯМИ! WARP ItSelf
Забавно - один из очень редких случаев цензуры. Как жаль, что мы не узнаем чем же был вызвана такая реакция WARP'а :)

Posted: Thu 08 Dec, 2005 19:23
by al666
Вот, может кому пригодится.
У меня получился такой вариант (это в юзерменю):

Code: Select all

del /q "%temp%\!.ht"
xlhtml.exe -fw -asc "!.!" >%temp%\"!.xl"
macro:post ShiftF2 $Text "%temp%\\!.ht" Enter F10
utf8:* "%temp%\!.xl"
view:< zd2t.exe /ZNzwwcf-zb- "%temp%\!.ht"
Краткие пояснения:
  • xlhtml.exe - преобразователь XLS в HTML: http://citkit.dl.sourceforge.net/source ... 32-040.zip
    zd2t.exe - преобразователь HTML,DOC,RTF в текст: http://zmiy.si.by/tools/zd2t-203.rar
    utf8:* - это префикс вызова плагина Unicode Wizard v1.1 для перекодирования UTF-8 в OEM
    macro: - префикс вызова плагина FAR Commands (входит в стандартную поставку) для сохранения .htm-файла после преобразования кодировки Unicode Wizard'ом
    view: - открытие вьюера с результатами работы утилиты zd2t
Если вызвать указанный пункт пользовательского меню, стоя на .xls файле, в результате должен открыться вьюер, показывающий его содержимое (правда без разделителей табличек).

Posted: Thu 08 Dec, 2005 21:56
by HaRT
Если интересует только первый лист XLS-файла, то можно воспользоваться умением xlhtml выводить обычный текст и обойтись без zd2t.
Для выравнивания того, что получится, по колонкам у меня написан довольно гибкий AWK-скрипт.

Posted: Thu 08 Dec, 2005 22:13
by Wave
al666 wrote:utf8:* - это префикс вызова плагина Unicode Wizard v1.1 для перекодирования UTF-8 в OEM
А вот с этого места подробней. Где взять этот самый Unicode Wizard, неважно какой версии, лишь бы работающий как надо? Может дашь ссылочку?

Posted: Fri 09 Dec, 2005 08:55
by al666
Wave wrote:Где взять этот самый Unicode Wizard, неважно какой версии, лишь бы работающий как надо? Может дашь ссылочку?
http://www.moris.ru/~spinoza/download/u ... zard10.zip

Если скажешь мыло, могу выслать версию 1.1, она тоже регистрации не требует.

Posted: Fri 09 Dec, 2005 09:02
by al666
HaRT wrote:Если интересует только первый лист XLS-файла, то можно воспользоваться умением xlhtml выводить обычный текст и обойтись без zd2t.
Ага, получилось. В результате все стало гораздо проще:

Code: Select all

xlhtml.exe -fw -asc -xp:0 "!.!" >%temp%"!.xl"
utf8:<"%temp%\!.xl"
HaRT wrote:Для выравнивания того, что получится, по колонкам у меня написан довольно гибкий AWK-скрипт.
А выравнивание — это было бы вообще замечательно. Поделись скриптом. :)

Posted: Fri 09 Dec, 2005 11:31
by Wave
al666 wrote:http://www.moris.ru/~spinoza/download/u ... zard10.zip

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

garage2004[~]mail[~]ru - моё мыло. Благодарю.

Posted: Fri 09 Dec, 2005 11:41
by HaRT
al666
Если успею, сегодня прикручу к нему GPL и пример использования в Фаре и сразу после этого поделюсь. :)

17:12
Добавил вложение.
Чтобы запускать, понадобится gawk.exe из Gawk for Windows.

2005-12-13
Некоторые пояснения

1. sCutFrom - параметр, управляющий тем, с какого места слишком длинные значения "ячеек" будут отсекаться. В качестве признака отсечения будет добавлено значение параметра sCutFlag (т.е. при желании можно задать хоть "[skip...]", только лично меня больше всего устраивает односимвольное значение по умолчанию ;) ).

2. sPadTill - параметр, управляющий тем, до какой ширины значение "ячейки" (возможно, уже отсечённое) будет дополнено символами заполнения (в данной версии - пробелами).

Оба главных параметра устроены одинаково: каждый из них представляет собой строку, в которой каждой "колонке" входного текста соответствует один символ (N = "miN", L = "Left", A = "Average", R = "Right", X = "maX"; об их значении - ниже). Последний символ соответствует и всем оставшимся "колонкам". Если параметр не задан или задан пустой строкой, то он принимает значение по умолчанию ("X").

Теперь о смысле разных литер: все они отталкиваются от распределения длины строк в "ячейках" соответствующей "колонки".
maX, Average, miN - максимальное, среднее и минимальное значения, соответственно; Right и Left - правая и левая граница "доверительного интервала" (среднее плюс/ минус среднеквадратическое отклонение; если это называется иначе, пусть специалисты меня поправят :) ).

Примеры (см. тж. "Edit" и "View" для "*.xls,*.xlt" в файле Associations.reg в дистрибутиве):

А. sCutFrom="" sPadTill="" (или просто оба не заданы)
Оба параметра получают значение "X", что означает "в каждой колонке отсекать с максимальной длины (т.е. не отсекать)" и "в каждой колонке дополнять до максимальной ширины".
Это преобразование не теряет значения ячеек, однако может очень "размазать" вывод по ширине, если в некоторых ячейках встречаются длинные значения.

Б. sCutFrom="R" sPadTill="R"
Это означает "в каждой колонке отсекать с правой границы дов. интервала (т.е. отсекать слишком длинные значения)", "в каждой колонке дополнять до правой границы дов. интервала (т.е. как раз до максимальной сохранённой ширины)".
Это преобразование, на мой взгляд, является оптимальным компромиссом между потерями данных и потерями места.

В. sCutFrom= "" sPadTill="RN"
Это означает "ничего не отсекать", "первую колонку дополнять до правой границы дов. интервала (см. пример Б), остальные колонки дополнять до минимальной ширины (т.е. не дополнять)".
Этот режим удобно использовать для быстрого просмотра файлов описаний файлов (вида files.bbs) и вообще данных, состоящих из пар Имя-Значение, где Имя может варьироваться по длине.

2006-10-16
Свежая версия — в Анонсах.

Posted: Fri 09 Dec, 2005 23:15
by al666
Мощный скрипт. :)
А расскажи подробнее о параметрах sPadTill и sCutFrom.
Че то я их крутил-крутил, но так и не понял как сделать, чтобы красиво получалось.
Чем например sPadTill="R" sCutFrom="X" отличается от sPadTill="X" sCutFrom="R" :?: