Автоматично видаляйте власні стилі з документа Word, але зберігайте форматування


1

Дано: файл .doc (x) зі спеціальними стилями форматування, застосованими до деякого тексту ( приклад ).

Отримайте: .doc (x) файл, який форматується як даний файл, але не визначає будь-яких спеціальних стилів ( приклад ).

Я спробував перейти на .rtf, але, на жаль, це економить інформацію про стилі.


Команда "Очистити форматування" очищає форматування (скидає за замовчуванням), але мені потрібно зберегти його. Видалення стилю робить те саме ( приклад ). Це не те, що я хочу.

Мені просто потрібно видалити власні стилі, але зберегти форматування.


Ви маєте на увазі зробити це в коді або через інтерфейс Word? Якщо перше, яке вподобане середовище?

@plutext, я вдячний за будь-який спосіб цього зробити. Хоча я віддаю перевагу Python.
utapyngo

Люди, які не мають права голосу, які не дали тобі потрібної відповіді, не зроблять тебе популярним. Відповіді, які вам не сподобалися, все ще можуть служити іншим, хто знайде це питання за допомогою googling. Ви повинні подякувати тому, хто докладе зусиль від вашого імені, навіть якщо це не допомагає.
harrymc

Відповіді:


1

Якщо у вас є доступ до Microsoft Excel:

  1. Виберіть все у документі Word
  2. Вставити в Excel (який підтримує форматування, але не стилі)
  3. Поки вміст все ще вибирається в Excel (після вставки), негайно скопіюйте
  4. Вставте назад у новий документ Word

Я перевірив це разом з вашими документами за допомогою Word та Excel 2010; він зберігає форматування, але позбавляється від користувацьких стилів.

EDIT: для розміщених складніших прикладів виконайте те саме, що вище, але використовуйте WordPad замість Excel. Тобто скопіюйте все в Word, вставте в WordPad, потім виберіть все в WordPad і вставте назад у новий документ. Це вдається (у моєму тесті) у всьому, крім колонтитула, що, звичайно, ви можете зробити окремо (скопіюйте, вставте, потім скопіюйте / вставте назад у нижній колонтитул нового документа).


Гей, у мене стіл! Здається, ваше рішення працює лише для однорядних документів. Для більш-менш складних документів я отримую жахливі результати. Я оновлю файли прикладу.
utapyngo

Відредагував мою відповідь, щоб включити рішення, яке також обробляє таблицю.
Джефф

-1

Спробуйте наступне (не перевірено):

Sub DeleteUsedStyles()
    For Each sty In ActiveDocument.Styles
        If sty.InUse Then
            sty.Delete
        End If
    Next sty
End Sub

Якщо ви видалите стиль, чи не втрачаєте ви форматування тексту, до якого застосовано стиль?
utapyngo

Це, безумовно, не працює - я використовую цю техніку як простий спосіб видалити все форматування з документа. Видалення стилю повертає текст, який був відформатований у цьому стилі, до формату за замовчуванням.
Буде M

@ Добре: гаразд. Тоді чи визначити голий стиль і призначити цю роботу?
Чарльз Стюарт

Не думай, але не знаєш.
Буде M

-2

Скопіюйте та вставте в блокнот, потім скопіюйте та вставте в нове слово doc. Це завжди працювало для мене в подібних ситуаціях, особливо при копіюванні та вставці між електронними листами Outlook у форматі HTML.

У Word також є опція "Спеціальна вставка" з виділенням для неформатованого тексту, але це не завжди доступно у всіх контекстах.


Я не хочу позбуватися форматування. Я хочу, щоб весь текст був прив’язаний до звичайного стилю з додаванням форматування.
utapyngo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.