我想在Word文档中获取文档文本以进行进一步处理,但是从文档中读取的文本缺少换行符,并且单词被压缩在一起。这是一个测试用例。首先,在新文档中写几行:
PS C:\Users\outlo> $wordInstance = New-Object -ComObject Word.Application
PS C:\Users\outlo> $wordInstance.Visible = $true
PS C:\Users\outlo> $doc = $wordInstance.Documents.Add()
PS C:\Users\outlo> $sel = $wordInstance.Selection
PS C:\Users\outlo> $sel.TypeText("Hello World!")
PS C:\Users\outlo> $sel.TypeParagraph()
PS C:\Users\outlo> $sel.TypeText("Hello World 2!")
PS C:\Users\outlo> $doc.SaveAs("saved.doc", [microsoft.office.interop.word.WdSaveFormat]::wdFormatDocument)
现在阅读:
PS C:\Users\outlo> $wordInstance = New-Object -ComObject Word.Application
PS C:\Users\outlo> $wordInstance.Visible = $true
PS C:\Users\outlo> $wordInstance.Documents.Open("C:`\Users`\outlo`\Documents`\saved.doc")
PS C:\Users\outlo> $allText = $doc.StoryRanges[1].Text
PS C:\Users\outlo> $allText
Hello World!Hello World 2!
中间的换行符丢失。我正在使用Word 2016。
我首先通过将文档保存为.txt
启用换行符,然后阅读该文本来解决该问题。
$txtPath = [System.IO.Path]::ChangeExtension($docPath, '.txt')
$doc.SaveAs2($txtPath, [Microsoft.Office.Interop.Word.WdSaveFormat]::wdFormatTextLineBreaks)
$wordInstance.Quit()
$allText = [System.IO.File]::ReadAllText($txtPath)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句