使用vb.net从asp.net中的.doc或.docx文件中读取文本

时间:2013-05-02 14:43:48

标签: asp.net vb.net docx

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

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

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

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

有人能建议我一些想法吗?

2 个答案:

答案 0 :(得分:1)

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

那就是说,我从未在.net中使用ifilter接口,只在非托管c ++中使用,但它应该是可能的。一个快速的谷歌搜索出现this作为一个可能的起点(它有一些要避免的事情和一些代码的建议。我不保证代码有效,你可能必须找到别的东西。但ifilter技术本身确实有效,我以前在项目中使用过它。除了带有Reader的pdf的ifilter之外,只有“工作”,几乎没有,最后我检查过。虽然办公室ifilters工作正常。)

答案 1 :(得分: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