Погода: −7 °C
23.11−11...−6пасмурно, без осадков
24.11−7...−1пасмурно, небольшой снег
НГС.Форум /Компьютеры Интернет Связь / Программирование /

Написать конвертер из Word, Excel в .txt или .dbf

  • Задача:
    Есть файл в каком -то формате Word 97-2007, Excel 97-2007, OpenOffice, html.
    Файлов будет ~10000 в год, источники разнообразны, поэтому разнообразие форматов обеспечено.
    Все файлы содержат таблицы (возможно еще какое то бла бла, но интересны только таблицы).
    Конвертер должен уметь выцеплять таблицу из исходника, определять в ней нужные столбцы, и заносить это в .txt c фиксированной длиной полей (или .dbf).

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

    Задача разбора строки.
    Реальный составитель исходника может также слить воедино данные, которые предполагалось иметь в разных столбцах. (Пример: адрес (район, н.п., улица, дом, квартира) могут быть слиты все поля, а могут только последние три или четыре - последние три поля не всегда могут быть; ФИО- тоже сливают вместе, тут проще, поделить по пробелу).

    Могут ли уважаемые участники форума порекомендовать: способы написания продукта / место, где про это хорошо написано / готовый продукт / иные способы решения задачи.

  • Есть сильные подозрения, что при заполненных как попало исходниках результат работы любого конвертера придется править руками. В конечном счете будет проще и, главное, дешевле посадить человека конвертить вручную. 30 файлов в день - не так много.

    Впрочем, если кто что подскажет иное, то мне в принципе тоже интересно.

    А оптимальный вариант, по-моему - стандартизировать заполнение исходников. Как так получается, что они в разных форматах и могут заполняться как попало?

    ...too young to quit, too old to change...

  • В такой постановке вопроса (из любой куче мусора нужно выделить что-то, хотя возможно оно на себя не похоже, а может его вообще нет) что-то вразумительное вряд-ли получится. Стандартизируйте формы, объяснив второй стороне что "прислать в своей форме" означает не прислать вообще.
    Напишите клиентское приложение, которое будет в интерактивном режиме (типа мастер заполнения) будет на основе ввода формировать файл одного стандарта, например xml и высылать его.

    Non solum oportet, sed etiam necessese est

  • Стандартизация ввода - замечательное и очевидное решение.
    Однако непосредственные поставщики исходников для нас недоступны. Работа с ними ведется через посредника. Посредник слабо заинтересован в результате (перспективы по усилению интереса призрачны), но тем не менее готов сотрудничать при условии минимальных издережек. Т.е. отдать указание о предоставлении данных он готов (и это уже хорошо), но внедрить наш клиент или помочь наладить обратную связь с его подопечными - уже не готов. Они сбором своих данных не собираются, поэтому хранение данных никак не регламентировано, отсюда разнообразие форматов.
    Короче, задача наша, мы и паримся.

    Необходимость ручной работы при обработке этих файлов нам понятна. Хотелось бы ее все же по максимуму автоматизировать, что бы один человек мог обрабатывать хотя бы по 200 файлов в день. Т.е открывает файл, оценивает содержимое, ставит нужные галочки в конвертере, запускает конвертацию. (ну какая то минимальная проверка должна быть - чтобы числовые данные не оказались в чисто текстовом поле и наоборот)
    Надо будет, посадим на обработку до пяти человек (данные сливаются три - четыре раза в год, каждый раз в течение 2х недель, и их надо за 3 недели забить в базу).
    Полностью ручная обработка файлов нереальна - обьем велик.
    Допустимо 2% некондиции.

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

    Non solum oportet, sed etiam necessese est

  • Я думаю что не получиться. Я в данной ситуации поступаю так. Самостоятельно (ручками) стандартизурую присланные данные. А затем уже загружаю. Но у меня и объем 10-20 таких документов в полугодие

  • Для Офиса - написать макрос.
    Кстати, и для HTML тоже прямо в Excel написать макрос и пусть всю кучу документов разбирает.
    Вопрос только - насколько разные документы будут?

  • Могут ли участники порекомендовать продукт или способ.

    Да уж. Вы студент первого курса? Если так продолжайте учиться а не спрашивать, как и чем решить неопределённую задачу.
    Достаточно простые макросы для Wordaб Excel и т.п. которые будут в интерактивном режиме преобразовывать входной поток в таблицы выхода, при этом в неопределенных местах спрашивать операторы как поступить с входными данными. Вот и все.

    Учится думать и работать. :umnik:

  • ННП с обратной стороны - тотже фокспро тянул, во всяком случае, из екселя без проблем

    >>>Come back to USS...A © >>>
    долой лицемерие!

    запустить ракету вокруг Америки может быть не менее сложно и полезно, чем когда-то вокруг Земли

  • Для разбора такого кол-ва мусора можно попробовать создать N-ое кол-во шаблонов.

    Например: для поля "Адрес" написать все возможные варианты того как это выглядит у поставщиков информации и что с этим можно сделать.

    Так как поставщики разные, то скорее всего у нгих всегда будут данные у каждого в своем формате... Так что можно разнести инфу еще и по поставщикам.

    Но вот чем это писать, я я соглашусь с тем что лучше кого то нанять. Искуственного Интелекта у нас еще не придумали..... :миг:

    "...Я Родину люблю..."

  • я думаю, что стандартизация ввода информации - есть единственно правильное решение. Дело в том что сами стандарты документов того же ворда от 97 до 07 сильно изменились за 10 лет. и писать универсальный конвертер - архисложная, долгая и неразумная задача.

    ну а в качестве универсализации ввода можно использовать либо XML либо JSON - кому как нравиться...

Записей на странице:

Перейти в форум

Модератор: