.doc的显示格式错误

时间:2012-02-02 09:32:23

标签: c# ms-word

基本上我想在WWW中显示.doc文件,我试图通过下面的代码获取数据 我可以从.doc获取数据,但输出不是预期的格式。

.doc内的数据

  

A

     

     

C

输出结果

  

A B C

我的预期结果是

  

A

     

     

C

protected void Button2_Click(object sender,EventArgs e)         {

        Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();

        // File Path

        string strFilePath = @"C:\Users\Roy\Desktop\fypdoc.doc";

        // Create obj filename to pass it as paremeter in open 
        object objFile = strFilePath; object objNull = System.Reflection.Missing.Value;

        object objReadOnly = true;//Open Document
        Microsoft.Office.Interop.Word.Document Doc = wordApp.Documents.Open(ref objFile, ref objNull, ref objReadOnly, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull, ref objNull);

        // To read each line consider each line as paragraph Docuemnt

        int i = 1;

        foreach (Microsoft.Office.Interop.Word.Paragraph objParagraph in Doc.Paragraphs)
        {

            try
            {
               p1.InnerHtml += Doc.Paragraphs[i].Range.Text.Replace(Environment.NewLine,"</br>");

          }
            catch (Exception ex) { throw ex; } i++;

        } // close document and Quit Word ApplicationDoc.Close(ref objNull, ref objNull, ref objNull);

        wordApp.Quit(ref objNull, ref objNull, ref objNull);

    }

4 个答案:

答案 0 :(得分:3)

不要使用换行符,而是尝试保留段落的语义值:

p1.InnerHtml += "<p>" + Doc.Paragraphs[i].Range.Text + "</p>";

答案 1 :(得分:0)

尝试将</br>替换为<br />

答案 2 :(得分:0)

我认为这里的问题是你正在阅读3段,但在将它们转移到你的html时却没有在它们之间添加添加行。

答案 3 :(得分:0)

看起来你正在遍历每个段落,如果你希望每个段落都是由换行符分隔的文本块,那么它们本身就不会包含任何换行符。

在连接文本后添加br或使用段落标记。