Şu anda oldukça şaşırıyorum. Can I use Win32 COM to replace text inside a word document?'a dayanarak, bir şablon sözcüğü doc'dan (Python'da) kelime dokümanları üreten basit bir şablon sistemini kodlayabildim.Bir dizenin tüm yinelemelerini python ile ms word belgesinde nasıl arar ve değiştiririm?
Sorunum, "Metin Alanları" içindeki metnin bu yolu bulamamasıdır. Word'de bile, her şeyi arama seçeneği yoktur - aslında "Ana Belge" ile "Metin Alanları" arasında seçim yapmanız gerekir. Windows dünyasında yeni olmak için VBA dokümanlarına göz atmaya çalıştım ama hiçbir yardım bulamadım (muhtemelen "metin alanı" nın çok yaygın bir terim olduğu için).
word.Documents.Open(f)
wdFindContinue = 1
wdReplaceAll = 2
find_str = '\{\{(*)\}\}'
find = word.Selection.Find
find.Execute(find_str, False, False, True, False, False, \
True, wdFindContinue, False, False, False)
while find.Found:
t = word.Selection.Text.__str__()
r = process_placeholder(t, answer_data, question_data)
if type(r) == dict:
errors.append(r)
else:
find.Execute(t, False, True, False, False, False, \
True, False, False, r, wdReplaceAll)
Bu, kodumun ilgili kısmıdır. Şu ana kadar tüm sorunları kendi başıma çözebildim (ipucu: 256 karakterden fazla karakter dizisi ile değiştirmek istiyorsanız, pano vb. Ile bunu yapmak zorundasınız ...)
Hayır, özür dilerim. MS Word kullanımı zorunludur. – Mark
Tamam. Ancak OpenOffice, MS Word dosyalarını oldukça iyi işleyebilir. Böylece Word dosyalarını da işleyebilirsiniz. Bu köprüyü dokümanlar, ppt, odt veya pdf gibi çeşitli formatlarda oluşturmak için kullanıyorum. –
Veya işlemin MS Word'de yapılması gerekiyor mu? –