Сделал простенький компонент для замены текста в документах Word (docx) и OpenDocument (odt). Особенностью данного компонента является отсутствие необходимости какого-либо дополнительного ПО типа MS Office или OpenOffice и использует только встроенные библиотеки. В связи с чем он может работать на различных платформах (но ещё не проверял ).
Думаю стоит немного объяснить принцип работы компонента.
Дело в том, что в документах одно слово может храниться частями. Часто это бывает, если использовать использовать стили на части слова, например:
Firemonkey
В документе данное слово будет разделено на "Fire" и "monkey". Данному компоненту это не помеха, но стоит знать, что при замене вставленное слово будет иметь стиль левой части, т.е. если мы заменим "Firemonkey" на "Delphi", то отображаться он будет следующим образом:
Delphi
Проблемы:
Спойлер
1. Не знаю как реализовать чувствительность к регистру (связано с использованием функции IndexOf)
Вопрос
Шамсуддин
Доброго времени суток!
Сделал простенький компонент для замены текста в документах Word (docx) и OpenDocument (odt). Особенностью данного компонента является отсутствие необходимости какого-либо дополнительного ПО типа MS Office или OpenOffice и использует только встроенные библиотеки. В связи с чем он может работать на различных платформах (но ещё не проверял ).
DocumentProcessing.zip
Как использовать:
uses DocumentProcessing; ... procedure TForm2.Button1Click(Sender: TObject); var Document: TDocumentProcessor; begin Document:= TDocumentProcessor.Create(Self); Document.FilePath:= 'D:\test.docx'; Document.Open(TDocumentKind.dkDocx); Document.ReplaceText('Familiya', 'Cat'); Document.Save; Document.Open('D:\test.odt', TDocumentKind.dkOdt); Document.ReplaceText('Familiya', 'Cat', [rfReplaceAll]); Document.Save; end;
Немного о принципе работы:
Думаю стоит немного объяснить принцип работы компонента.
Дело в том, что в документах одно слово может храниться частями. Часто это бывает, если использовать использовать стили на части слова, например:
Firemonkey
В документе данное слово будет разделено на "Fire" и "monkey". Данному компоненту это не помеха, но стоит знать, что при замене вставленное слово будет иметь стиль левой части, т.е. если мы заменим "Firemonkey" на "Delphi", то отображаться он будет следующим образом:
Delphi
Проблемы:
1. Не знаю как реализовать чувствительность к регистру (связано с использованием функции IndexOf)
Улучшена производительность
Ссылка на комментарий
0 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.