Написать конвертер из Word, Excel в .txt или .dbf
5905
10
Nikita1003
member
Задача:
Есть файл в каком -то формате Word 97-2007, Excel 97-2007, OpenOffice, html.
Файлов будет ~10000 в год, источники разнообразны, поэтому разнообразие форматов обеспечено.
Все файлы содержат таблицы (возможно еще какое то бла бла, но интересны только таблицы).
Конвертер должен уметь выцеплять таблицу из исходника, определять в ней нужные столбцы, и заносить это в .txt c фиксированной длиной полей (или .dbf).
Задача определения столбцов.
Хотя с поставщику исходников диктуется определенный формат заполнения таблиц, реальный исполнитель может расположить данные в ином порядке, вставить столбец с ненужными данными, пропустить нужные (ну в этом случае, конечно просто надо оставить пустое место в соотв. поле выходного файла). Т.е. надо как то показать конвертеру, в каком столбце какие данные.
Задача разбора строки.
Реальный составитель исходника может также слить воедино данные, которые предполагалось иметь в разных столбцах. (Пример: адрес (район, н.п., улица, дом, квартира) могут быть слиты все поля, а могут только последние три или четыре - последние три поля не всегда могут быть; ФИО- тоже сливают вместе, тут проще, поделить по пробелу).
Могут ли уважаемые участники форума порекомендовать: способы написания продукта / место, где про это хорошо написано / готовый продукт / иные способы решения задачи.
Есть файл в каком -то формате Word 97-2007, Excel 97-2007, OpenOffice, html.
Файлов будет ~10000 в год, источники разнообразны, поэтому разнообразие форматов обеспечено.
Все файлы содержат таблицы (возможно еще какое то бла бла, но интересны только таблицы).
Конвертер должен уметь выцеплять таблицу из исходника, определять в ней нужные столбцы, и заносить это в .txt c фиксированной длиной полей (или .dbf).
Задача определения столбцов.
Хотя с поставщику исходников диктуется определенный формат заполнения таблиц, реальный исполнитель может расположить данные в ином порядке, вставить столбец с ненужными данными, пропустить нужные (ну в этом случае, конечно просто надо оставить пустое место в соотв. поле выходного файла). Т.е. надо как то показать конвертеру, в каком столбце какие данные.
Задача разбора строки.
Реальный составитель исходника может также слить воедино данные, которые предполагалось иметь в разных столбцах. (Пример: адрес (район, н.п., улица, дом, квартира) могут быть слиты все поля, а могут только последние три или четыре - последние три поля не всегда могут быть; ФИО- тоже сливают вместе, тут проще, поделить по пробелу).
Могут ли уважаемые участники форума порекомендовать: способы написания продукта / место, где про это хорошо написано / готовый продукт / иные способы решения задачи.
Леопольд
veteran
Есть сильные подозрения, что при заполненных как попало исходниках результат работы любого конвертера придется править руками. В конечном счете будет проще и, главное, дешевле посадить человека конвертить вручную. 30 файлов в день - не так много.
Впрочем, если кто что подскажет иное, то мне в принципе тоже интересно.
А оптимальный вариант, по-моему - стандартизировать заполнение исходников. Как так получается, что они в разных форматах и могут заполняться как попало?
Впрочем, если кто что подскажет иное, то мне в принципе тоже интересно.
А оптимальный вариант, по-моему - стандартизировать заполнение исходников. Как так получается, что они в разных форматах и могут заполняться как попало?
Mad_Dollar
guru
В такой постановке вопроса (из любой куче мусора нужно выделить что-то, хотя возможно оно на себя не похоже, а может его вообще нет) что-то вразумительное вряд-ли получится. Стандартизируйте формы, объяснив второй стороне что "прислать в своей форме" означает не прислать вообще.
Напишите клиентское приложение, которое будет в интерактивном режиме (типа мастер заполнения) будет на основе ввода формировать файл одного стандарта, например xml и высылать его.
Напишите клиентское приложение, которое будет в интерактивном режиме (типа мастер заполнения) будет на основе ввода формировать файл одного стандарта, например xml и высылать его.
Nikita1003
member
Стандартизация ввода - замечательное и очевидное решение.
Однако непосредственные поставщики исходников для нас недоступны. Работа с ними ведется через посредника. Посредник слабо заинтересован в результате (перспективы по усилению интереса призрачны), но тем не менее готов сотрудничать при условии минимальных издережек. Т.е. отдать указание о предоставлении данных он готов (и это уже хорошо), но внедрить наш клиент или помочь наладить обратную связь с его подопечными - уже не готов. Они сбором своих данных не собираются, поэтому хранение данных никак не регламентировано, отсюда разнообразие форматов.
Короче, задача наша, мы и паримся.
Необходимость ручной работы при обработке этих файлов нам понятна. Хотелось бы ее все же по максимуму автоматизировать, что бы один человек мог обрабатывать хотя бы по 200 файлов в день. Т.е открывает файл, оценивает содержимое, ставит нужные галочки в конвертере, запускает конвертацию. (ну какая то минимальная проверка должна быть - чтобы числовые данные не оказались в чисто текстовом поле и наоборот)
Надо будет, посадим на обработку до пяти человек (данные сливаются три - четыре раза в год, каждый раз в течение 2х недель, и их надо за 3 недели забить в базу).
Полностью ручная обработка файлов нереальна - обьем велик.
Допустимо 2% некондиции.
Однако непосредственные поставщики исходников для нас недоступны. Работа с ними ведется через посредника. Посредник слабо заинтересован в результате (перспективы по усилению интереса призрачны), но тем не менее готов сотрудничать при условии минимальных издережек. Т.е. отдать указание о предоставлении данных он готов (и это уже хорошо), но внедрить наш клиент или помочь наладить обратную связь с его подопечными - уже не готов. Они сбором своих данных не собираются, поэтому хранение данных никак не регламентировано, отсюда разнообразие форматов.
Короче, задача наша, мы и паримся.
Необходимость ручной работы при обработке этих файлов нам понятна. Хотелось бы ее все же по максимуму автоматизировать, что бы один человек мог обрабатывать хотя бы по 200 файлов в день. Т.е открывает файл, оценивает содержимое, ставит нужные галочки в конвертере, запускает конвертацию. (ну какая то минимальная проверка должна быть - чтобы числовые данные не оказались в чисто текстовом поле и наоборот)
Надо будет, посадим на обработку до пяти человек (данные сливаются три - четыре раза в год, каждый раз в течение 2х недель, и их надо за 3 недели забить в базу).
Полностью ручная обработка файлов нереальна - обьем велик.
Допустимо 2% некондиции.
Mad_Dollar
guru
Напишите приложение и разошлите конечным заполняльщикам. Дабы приложение в интерактивном режиме спрашивало "то что нужно", формировало один файл одного стандартного формата и потом сей файл бы отсылался. То есть контроль правильности ввода идет при первичном заполнении формы (ну например как на веб-страницах проверяют совпадение пароля и подтверждения пароля), а уже проверенные данные отсылались.
Denfil
activist
Я думаю что не получиться. Я в данной ситуации поступаю так. Самостоятельно (ручками) стандартизурую присланные данные. А затем уже загружаю. Но у меня и объем 10-20 таких документов в полугодие
Для Офиса - написать макрос.
Кстати, и для HTML тоже прямо в Excel написать макрос и пусть всю кучу документов разбирает.
Вопрос только - насколько разные документы будут?
Кстати, и для HTML тоже прямо в Excel написать макрос и пусть всю кучу документов разбирает.
Вопрос только - насколько разные документы будут?
Сейчас читают
Zosia:"Утонула в кошках! Пожалуйста, помогите!!!" (часть 5)
76328
363
Политические композиторы (часть 3)
4164
25
Где найти женщину?
104553
581
kisnik
activist
Могут ли участники порекомендовать продукт или способ.
Да уж. Вы студент первого курса? Если так продолжайте учиться а не спрашивать, как и чем решить неопределённую задачу.
Достаточно простые макросы для Wordaб Excel и т.п. которые будут в интерактивном режиме преобразовывать входной поток в таблицы выхода, при этом в неопределенных местах спрашивать операторы как поступить с входными данными. Вот и все.
Учится думать и работать.
Да уж. Вы студент первого курса? Если так продолжайте учиться а не спрашивать, как и чем решить неопределённую задачу.
Достаточно простые макросы для Wordaб Excel и т.п. которые будут в интерактивном режиме преобразовывать входной поток в таблицы выхода, при этом в неопределенных местах спрашивать операторы как поступить с входными данными. Вот и все.
Учится думать и работать.

ННП с обратной стороны - тотже фокспро тянул, во всяком случае, из екселя без проблем
maxxx
guru
Для разбора такого кол-ва мусора можно попробовать создать N-ое кол-во шаблонов.
Например: для поля "Адрес" написать все возможные варианты того как это выглядит у поставщиков информации и что с этим можно сделать.
Так как поставщики разные, то скорее всего у нгих всегда будут данные у каждого в своем формате... Так что можно разнести инфу еще и по поставщикам.
Но вот чем это писать, я я соглашусь с тем что лучше кого то нанять. Искуственного Интелекта у нас еще не придумали.....
Например: для поля "Адрес" написать все возможные варианты того как это выглядит у поставщиков информации и что с этим можно сделать.
Так как поставщики разные, то скорее всего у нгих всегда будут данные у каждого в своем формате... Так что можно разнести инфу еще и по поставщикам.
Но вот чем это писать, я я соглашусь с тем что лучше кого то нанять. Искуственного Интелекта у нас еще не придумали.....

я думаю, что стандартизация ввода информации - есть единственно правильное решение. Дело в том что сами стандарты документов того же ворда от 97 до 07 сильно изменились за 10 лет. и писать универсальный конвертер - архисложная, долгая и неразумная задача.
ну а в качестве универсализации ввода можно использовать либо XML либо JSON - кому как нравиться...
ну а в качестве универсализации ввода можно использовать либо XML либо JSON - кому как нравиться...
ТОП 5
2