Другие языки программирования и технологии

На чём лучше написать конвертер doc/x, xls/x в любой формат? Смотрю в сторону C#?

Ян Муравский
Ян Муравский
95 914
На том языке, который ты лучше знаешь и выберешь для этой задачи. На любом языке можно написать. Тебе писать, ты и выбирай.
Игорь Дальян
Игорь Дальян
36 282
Лучший ответ
Тут есть 3 подхода.
1. Ты используешь COM/ActiveX. В этом случае надо брать язык, который его поддерживает, выбор за тобой. Учитывай, что в этом случае твоя программа будет работать только при установленном MS Office, что делает необходимость в ней крайне неочевидной - MS Office и сам умеет конвертировать много что много куда.
2. Ты пишешь свой парсер. Тогда выбор языка совершенно не критичен - все равно тебе жизни не хватит, чтобы написать полноценный парсер. Помниццо, лет 20 назад мне что-то подобное понадобилось и я скачал PDF со спецификацией файлов MS Excel - там было что-то вроде полутора тысяч страниц. Думаю, с тех пор их меньше не стало.
3. Ты используешь парсеры из Open Office или подобных проектов - тогда тебе лучше всего писать на языке, на котором написаны эти проекты.
Anton Ankid Парсер XML есть в библиотеках для любого языка программирования. Распаковка ZIP тоже. Это если вопрос о расширениях, заканчивающихся на X. Со старыми форматами гораздо сложнее.
Что формат сложный, с этим я согласен, но не обязательно конвертировать все составляющие документа.
На с# Много приблуд и документации Для работы с этими форматами. Используй этот инструмент 100%
А если вырубить .NET, на чём тогда будешь писать?)))
На любом. Хотя работа с технологиями активХ или сом не стоят особого внимания чтоб тратить время на их освоение и использование, так как узконаправленны и врятли эти знания пригодятся в будущем.
Олег Карпов
Олег Карпов
10 755
не факт, что стоит это делать с помощью автоматизации MS Office как предлагают выше.
да, она максимально поддерживает эти форматы, но имеет плохое быстродействие. у сторонних библиотек лучше. 10000 ячеек будешь заполнять долго.

если все-таки MS Office, то варианты:
1. внешнее приложение на C#
2. макрос для офиса на VBA
3. надстройка для офиса на C# (это профи-вариант)

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

а если библиотеки, то лучше всего ситуация с ними у c# и java. такие библиотеки как NPOI и Apache POI, а также множество платных