Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: [wlx] odbc-wlx - просмотр Access, Excel, CSV файлов 
Author Message
Destiny



PostPosted: Wed Oct 27, 2021 12:54    Post subject: Reply with quote

Quote:
По поводу дополнительных таблиц

Я вот что еще нашел: есть список предопределенных системных таблиц.
Auto_Activate, Auto_Close, Auto_Deactivate, Auto_Open, Consolidate_Area, Criteria, Data_Form, Database, Extract, FilterDatabase, History, Print_Area, Print_Titles, Recorder, Sheet_Title.
В зависимости от разных условий они еще и могут быть оформлены с суффиксами вида "_0"\"_0_0"!
А еще есть именованные регионы (создаются через CTRL+F3). Они формально тоже при чтении через ODBC протокол будут представлены как таблицы. Ну и да, опираться на то, что Вы нашли в доках:
Quote:
For later versions of Microsoft Excel files, "SYSTEM TABLE" is returned for sheet names (tables with a "$" on the end), and "TABLE" is returned for tables within worksheets.


А!! еще с пробелами в именах таблиц! Вы при выборке должны спецом их "оборачивать" в разные типы кавычек:
Code:
SELECT * FROM "'Sheet 1$'"

На всякий случай уточню, вдруг где на тестах падать будет - чтоб сразу знать.

Добавлено спустя 44 минуты:

Попробовал открывать CSV файлы и что не понял:
Я открываю 1! файл - а слева мне показывается СПИСОК! файлов схожего формата из той же папки, что и открытый файл... Это как-то странно слегка. Один так один файл, зачем что-то еще показывать? К тому же эта левая панель не имеет ни полосы прокрутки, ни сама сдвигаться не может мышкой - "прибит" ее размер намертво. В итоге я имена некоторых файлов даже не узнаю - т.к. они отличаются только конечными символами, а мне показываются только первые что-то около 30-35 символов.
Ну и напоследок - для колонок не выполняется автоподгон под содержимое.

P.S. Я помню, про необходимость отдельного плага под CSV, но именно поэтому сразу описываю, то, что потенциально может перекочевать в новый код, а не хотелось бы чтобы ЭТИ уже найденные несуразности туда попали.

P.P.S И эта левая панель и для плагина ODBC протокола должна иметь возможность сдвигаться мышкой и иметь полосы прокрутки - т.к. это черт возьми очень логичное и желаемое действие - уменьшить ширину той области, которая не нужна для текущего просмотра. А если я ширину уменьшил - то полосу прокрутки уже надо показать, т.к. имя таблицы может теперь уже оказаться больше, чем ширина видимой части панели.

Насчет появления FilterDatabase. Оказывается если открыть файл экселя в экселе и параллельно открыть его в плагине, то ODBC протокол выдает текущие имена таблиц, которые появились в рамках обработки этого файла ядром экселя)) И вот конкретно эта "таблица" - FilterDatabase - представляет собой активированный движком фильтр по значениям ячеек в открытом файле! Именно поэтому если просто открыть файл - то мы увидим доп.таблицу "Отчет$_" - представляющую собой просто этот же фильтр, но пока что неактивный (файл в экселе не открыт параллельно), и поэтому не имеющий полного названия.

Так что да - фильтровать такие таблицы можно и нужно... И выводить только те, имена которых заканчиваются ровно на символ $.

Добавлено спустя 7 минут:

Насчет "первая строка как заголовок". И тут я все равно не понимаю. Вы же считываете хоть и через ODBC, но в стиле SQL: select * from tableName. А это значит, что получаете вы просто набор данных, но вот выводите их в какой-то визуально табличный GUI элемент. Так вот в нём-то похоже и происходит эта "доконвертация" первой строки данных как заголовка - и это-то и ломает стройность представления данных при выводе на экран. ИМХО Вам надо просто "надставлять" весь результат команды select * from tableName одной доп.строкой вида "A B C D E F и т.д.". Сымитировав тем самым то, как сам эксель именует столбцы с информацией в буквенном представлении. И тогда при помещении этого набора данных заголовком станут именно эти буквы - т.е. мы получим ровно то же табличное представление, что и в самом экселе. И это очень здорово!
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group