2

我可以上传一个文本文件并在文本框中阅读其文本。

现在我想对 .doc 或 .docx 文件做同样的事情。

当我以类似的方式尝试它时,我阅读了文本文件,我在整个文档中得到了一些加密格式的文本。从 .txt 文件中读取的代码如下:

txtReadFiles.Text = My.Computer.FileSystem.ReadAllText(Path)

谁能给我一些建议?

4

2 回答 2

1

您想要的是 .doc(x) 文件的ifilter。Ifilters 被设计用于 Windows 的索引服务,但它们也经常被其他应用程序使用,以从包含文本的二进制文件中读取文本。IFilter 经常免费发布 - 我相信包含 doc/docx 文件(和其他 Office 文件)的正确 ifilter。

也就是说,我从未在 .net 中使用过 ifilter 接口,仅在非托管 C++ 中使用过,但它应该是可能的。快速谷歌搜索发现是一个可能的起点(它有一些要避免的事情的建议和一些代码。我不保证代码有效,您可能需要找到其他东西。但 ifilter 技术本身确实有效,我以前在项目中使用过它。除了 Reader 附带的用于 pdf 的 ifilter,它只是“工作”,几乎没有,最后我检查了。不过,Office ifilter 工作正常。)

于 2013-05-02T15:05:25.223 回答
0

Imports Microsoft.Office.Interop.Word 'above public class

If OpenFileDialogFile.ShowDialog() = System.Windows.Forms.DialogResult.OK Then TBfile.Text = OpenFileDialogFile.FileName 'alamat n nama file asli '----------- Dim ext As String ext = Path.GetExtension(OpenFileDialogFile.FileName) If ext = ".txt" Then 'tampilkan isi file TB1.Text = My.Computer.FileSystem.ReadAllText(OpenFileDialogFile.FileName) ElseIf ext = ".doc" Then Dim App As Application = New Application Dim doc As Document Try doc = App.Documents.Open(OpenFileDialogFile.FileName) Dim co As Integer = doc.Words.Count For i As Integer = 1 To co Dim tex As String = doc.Words(i).Text 'tampilkan isi file TB1.Text += tex Next doc.Close() Catch ex As Exception End Try ElseIf ext = ".docx" Then Dim App As Application = New Application Dim doc As Document Try doc = App.Documents.Open(OpenFileDialogFile.FileName) Dim co As Integer = doc.Words.Count For i As Integer = 1 To co Dim tex As String = doc.Words(i).Text 'tampilkan isi file TB1.Text += tex Next doc.Close() Catch ex As Exception End Try End If '---------- Else Call kosongkan() CBkunci1.Focus() End If

于 2016-05-16T15:38:03.063 回答