mend0za: (Default)
[personal profile] mend0za
Как обычно - хочется страшного.

А именно - мне надо из Excel-таблицы генерить конфигурацию для моего кодогенератора (awk).
Конфигурация - в CSV-формате. Заказчик обоссал себе пятки и уже внёс в план.

Чо делать? Куда бежать? Кому сдаваться?

Update1, Use Case:
1. Есть Excel созданный лучшими умами современности, с данными о нашем формате и большой кнопкой "Сделать мне красиво".
2. Тупой лось малобюджетный junior-разработчик открывает xls-файл и нажимает большую красную кнопку.
3. Тупому лосю малобюджетному разработчику выдают диалог "Куда, сохранить сгенерированную конфигурацию, хозяин?"
4. Конфигурация сохранена и используется в компиляции.

Как мне представляется - тут чтото вроде VBA, но я областью не владею, потому спрашиваю.

Update2:Excel в роли GUI в котором рисуют конфигурацию на вход кодогенератора.

Date: 2010-11-03 03:54 pm (UTC)
From: [identity profile] b0rmann.livejournal.com
Spreadsheet::ParseExcel (http://search.cpan.org/~jmcnamara/Spreadsheet-ParseExcel-0.58/lib/Spreadsheet/ParseExcel.pm)

Date: 2010-11-03 04:36 pm (UTC)
From: [identity profile] mend0za.livejournal.com
см use case

Date: 2010-11-03 04:01 pm (UTC)
From: [identity profile] yuripats.livejournal.com
А какие ограничения системы?
Просто XLS -> CSV конвертер или с дополнительными преобразованиями?

Date: 2010-11-03 04:36 pm (UTC)
From: [identity profile] mend0za.livejournal.com
см use-case

Date: 2010-11-03 04:23 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Любой парсер Excel, вплоть до самого Excel с внешними вызовами.
И ЖЭСТАЧАЙШЭ прописать в ТЗ формат входной таблицы, потому что иначе будет ад.

Date: 2010-11-03 04:37 pm (UTC)
From: [identity profile] mend0za.livejournal.com
только combo-боксы и никакой самодеятельности

Date: 2010-11-03 04:27 pm (UTC)
From: [identity profile] wildman.livejournal.com
python + xlrd
строчек 20 :)

Date: 2010-11-03 04:48 pm (UTC)
From: [identity profile] wildman.livejournal.com
жесть-жесть-жесть. делали такое. VBA.

http://paste.org.ru/?5d3iib
навешивается на кнопку.

принцип следующий:
1. нужный участок (по ячейкам или по именованной области копируется в клипбоард)
2. в файл добавляется sheet
3. в шит пейстится скопированный кусок
4. добавленный sheet сохраняется как csv

кста с комбобоксами могут быть нюансы.
Edited Date: 2010-11-03 11:32 pm (UTC)

Date: 2010-11-03 04:27 pm (UTC)

Date: 2010-11-03 04:51 pm (UTC)
From: [identity profile] bigfrogg.livejournal.com
Excel сохраняет не важно что (по меню файл-сохранить как), то что он сохраняет скармливается скриптам. Скрипты делают своё дело.
Или я чего-то не понимаю.

Date: 2010-11-03 04:56 pm (UTC)
From: [identity profile] mend0za.livejournal.com
Нет, не понимаешь.

Из Excel генерируется файл произвольного формата, основанный на данных в xls. Это может быть CSV, это может быть .C или .H.

Date: 2010-11-03 04:56 pm (UTC)
From: [identity profile] g-rub.livejournal.com
Стопудово понадобится еще средствами экселя воплощать дикий кусок логики, проверяющей консистентность того, что наваяно и пригодность его к экспортированию в конфигурацию.

Date: 2010-11-03 05:00 pm (UTC)
From: [identity profile] mend0za.livejournal.com
К счастью - большинство полей имеет конечный список значений. Слишком много бреда не сделают.

Date: 2010-11-03 04:54 pm (UTC)
From: [identity profile] g-rub.livejournal.com
Посмотрел апдейт. Сраный пиздец.

"Excel в роли GUI" -- очевиднейшим образом воплощает собой "дешёвое и упрощенное решение" для воплощения местными эникейщиками.

Поэтому вопрос только один -- схуя эта задача приехала к тебе в руки, да еще в неизменном виде?

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

Вариант, когда это делаешь ты -- максимальный по геморрою для всех заинтересованных сторон.

Date: 2010-11-03 04:59 pm (UTC)
From: [identity profile] mend0za.livejournal.com
Нет, я это не делаю. Хотя и я это предложил. Я как бы архитектор всего счастья и автор концепции.

Исходная схема, воплощённая предыдущей имплементацией на ThreadX представляла собой концепцию "мы размазали знания о данных по всему коду хуй знает где и после выхода на пенсию автора мы не знаем что с этой хуйнёй дальше делать".

Текущая концепция - "мы посадили дешёвого идиота за Excel и пусть он рисует конфигурации для железа, пока дорогие идиоты делают более сложные задачи".

Как менеджер - ты не смотришь сейчас на техническую сторону. А именно она меня интересует в настоящий момент.

Date: 2010-11-03 05:10 pm (UTC)
From: [identity profile] g-rub.livejournal.com
Я не менеджер, окстись.

С технической точки зрения мне кажется, что проще вылепить лёгкий ГУИ, дающий на выходе ровно вашу спеку. А нужность Ёкселя не просматривается никак.

Date: 2010-11-03 05:17 pm (UTC)
From: [identity profile] mend0za.livejournal.com
да, я уже сам к тому склоняюсь, собственному гую.

Но остаётся вопрос как описывать имеющиеся внутренние взаимосвязи. В Excel для этого есть развитой понятийный аппарат. На своём велосипеде придётся всё делать самостоятельно.

Date: 2010-11-03 05:32 pm (UTC)
From: [identity profile] g-rub.livejournal.com
Эм, ну неужели средств питона/руби не хватит описать любые взаимосвязи? (это, естественно, в предположении, что логика не прибита гвоздями к гую).

Просто мне что-то подсказывает что с питоном-руби вам на порядок проще будет это сделать, чем с незнакомыми недрами Ёкселя.

Date: 2010-11-03 05:03 pm (UTC)
From: [identity profile] mend0za.livejournal.com
И из радостного. У дорогого заказчика на другом офисе и другом проекте из Excel GUI генерят Си (.c и .h).
К счастью у нас - кодогенератор есть и останется на AWK.

Date: 2010-11-03 06:10 pm (UTC)
From: [identity profile] vp.livejournal.com
Я бы по возможности в экселе генерил бы конфигурацию, но не так.
Создаешь НУЖНУЮ ТЕБЕ заготовку csv (!!) файла
Они ее открывают хоть экселем, хоть чем угодно.
Сохраняют в csv (ниакого xls!!)
Далее помянутыми выше консольными тулзами спокойно и проверяется на формат, и преобразуется.
Все.

Date: 2010-11-03 11:42 pm (UTC)
From: [identity profile] wildman.livejournal.com
сильно часто прийдётся ругаться на криворукость заполняющих. где то запятая в дробном числе вместо точки. где то в цифире пробел (ну блин по три разряда надо же чем то отбивать) и т.д.

опробованная методика - генерится шаблон в excel
первый шит - то куда вносятся данные
2-й, 3-й надцатый шиты - перечни значений для полей ввода параметров. в именованных областях.
всё шиты кроме первого - закрыты от правки
в первом открыты для произвольного заполнения только единичные поля/колонки. остальное - комбобоксы. везде ограничения по допустимым значениям - комбобоксы с выбором из named областей из закрытых шитов.

всё. испортить шаблон среднестатистическая секретутка или представитель интеллектуального большинства неспособны. втягивать данные - лёхко. современные парсеры способны различать named области. можно и значения на id мапить прямо там при желании/отсутствии параноидальных замашек.

Profile

mend0za: (Default)
mend0za

June 2023

S M T W T F S
    123
45678910
11 121314151617
18192021222324
252627282930 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 11th, 2025 04:41 am
Powered by Dreamwidth Studios