Создание календаря из документа Word

0

Кто-нибудь знает приложение календаря, которое может читать документ Word и строить календарь на основе каждой строки?

Пример:

Monday 
 1. 8-9 Wake up
 2. 9-12 Work out
 3. 12-6 Work

Используя это, он должен создать простой текстовый календарь, который должен выглядеть примерно так:

Кто-нибудь знает что-нибудь подобное?

Cokal
источник
Поэтому мне бы хотелось, чтобы это выглядело больше как goo.gl/EQLff, чем просто текст. Спасибо
Cokal
Извините, это не должно быть помечено как внешний вид, что является ошибкой. Это не имеет ничего общего с мировоззрением. Это то, что я ищу для обычного текста со временем, как в примере, зайдите в приложение календаря и создайте его для вас.
Кокал
Я включил изображение в ваш пост, спасибо за его очистку. Так почему же эти документы Word там? Почему они должны быть простым текстовым календарем? Если бы вы объяснили больше об обстоятельствах, было бы легче найти возможные обходные пути для вашей реальной проблемы, а не исправить ваше попытанное решение.
slhck
Спасибо за вашу помощь и понимание. У старого сотрудника есть массивный текстовый документ, который имеет его в виде простого текста, и его просто не легко потреблять, но если бы это было что-то вроде календаря, его было бы намного легче понять и увидеть.
Кокал

Ответы:

0

Я предполагаю, что вы хорошо разбираетесь со стилями и т. Д. В Word, и просто перекомпоновка в Word не работает для вас.

Я не понимаю, если вы ищете:

  1. Выполните однократное преобразование или сохраните документ как есть;
  2. Вставьте эти строки в виде записей в программе календаря или просто отобразите данные в формате calendar-y.

Если вы выполняете однократное преобразование, просто сохраните документ в текстовом формате и поработайте со строками.

Если вы хотите импортировать строки в программу календаря, вы можете экспортировать их в файлы .ics, которые можно импортировать практически в любую программу для составления календаря, например, Календарь Google и т. Д. См. Http://en.wikipedia.org/wiki/ ICalendar для получения подробной информации о макете.

Если вы просто ищете дисплей, пометьте строки именами стиля даты / активности, используя синтаксис, например

<style type="text/css">
 ol.daylist { list-style-type: lower-roman }
 li.dayofweek { list-style-type: none }
 li.todoitem { background-color:#00ff00;}
</style>
<ol class="daylist">
    <li class="dayofweek">Monday</ol>
    <li class="todoitem">8-9 Wake up</li>
    <li class="todoitem">9-12 Work out</li>
</ol>

и использовать файл CSS для отображения данных, как вам нравится.

Если вы хотите использовать существующий документ как есть и просто отображать его динамически, используйте VBA, чтобы прочитать содержимое документа и записать строки в виде html-файла, который затем можно открыть в системном веб-браузере.

Этот пример кода, адаптированный с http://www.exceltip.com/show_tip/Applications_-_Word,_Outlook_in_VBA/Control_Word_from_Excel_using_VBA_in_Microsoft_Excel/465.html, показывает, как можно использовать макрос VBA для открытия документа и чтения каждой строки.

Вы можете увидеть, где, если в документе используются стили, вы можете проверить стиль и использовать его, чтобы определить, какой стиль назначить строке, когда вы записываете ее в HTML-файл.

Sub OpenAndReadWordDoc()
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim tString As String, tRange As Word.Range
Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.Documents.Open("c:\calendar.docm")
With wrdDoc
    For p = 1 To .Paragraphs.Count
        Set tRange = .Range(Start:=.Paragraphs(p).Range.Start, End:=.Paragraphs(p).Range.End)
            tString = tRange.Text
            tString = Left(tString, Len(tString) - 1) 'this is to avoid including CR/LF
           MsgBox (tString)
        Next p
        .Close ' close the document
    End With
    wrdApp.Quit ' close the Word application
    Set wrdDoc = Nothing
    Set wrdApp = Nothing
End Sub
calenti
источник
Обновлен ответ, основанный на изменении без Outlook. Также попытался отформатировать код более уместно на этот раз.
Каленти