从 Word 文档构建日历

从 Word 文档构建日历

有人知道可以读取 Word 文档并根据每一行构建日历的日历应用程序吗?

例子:

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

使用它它应该可以构建一个纯文本日历,其内容如下:

有人知道这样的事吗?

答案1

我假设您熟悉 Word 中的样式等,而仅在 Word 中重新布局对您来说并不适用。

我不明白您是否想:

  1. 进行一次性转换或保持文档原样;
  2. 将这些行作为条目插入日历程序中,或者仅以日历格式显示数据。

如果您进行一次性转换,则只需将文档保存为纯文本格式并使用这些行即可。

如果你想将这些线条导入日历程序,你可以将它们导出到 .ics 文件,这些文件可以导入几乎任何日历程序,如谷歌日历等。请参阅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 文件,然后可以使用系统 Web 浏览器打开该文件。

此示例代码改编自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

相关内容