有人知道可以读取 Word 文档并根据每一行构建日历的日历应用程序吗?
例子:
Monday
1. 8-9 Wake up
2. 9-12 Work out
3. 12-6 Work
使用它它应该可以构建一个纯文本日历,其内容如下:
有人知道这样的事吗?
答案1
我假设您熟悉 Word 中的样式等,而仅在 Word 中重新布局对您来说并不适用。
我不明白您是否想:
- 进行一次性转换或保持文档原样;
- 将这些行作为条目插入日历程序中,或者仅以日历格式显示数据。
如果您进行一次性转换,则只需将文档保存为纯文本格式并使用这些行即可。
如果你想将这些线条导入日历程序,你可以将它们导出到 .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