如何从word文件中仅获取标题及其副标题

时间:2015-01-12 13:16:22

标签: c# .net ms-office office-interop

我希望以编程方式将单词标题中的所有标题与单词文件分开使用c#例如我有以下内容:

  
      
  • HEADING 1 XYZ
  •   
     

标题2标题3

     
      
  • HEADING 1 ABC

  •   
  • HEADING 1 DEF

  •   
     

标题2 lorem ispum

所以我的代码应该给我回复:

  
      
  • 标题1 XYZ

         

    标题2标题3

  •   

单独和类似的剩余标题和副标题也。

我试过了,但是我的代码并没有单独归还所有标题和副标题,这是我获取标题的代码:

foreach (Microsoft.Office.Interop.Word.Paragraph paragraph in oMyDoc.Paragraphs )
{
    Microsoft.Office.Interop.Word.Style style = 
        paragraph.get_Style() as Microsoft.Office.Interop.Word.Style;

    string styleName = style.NameLocal;
    string text = paragraph.Range.Text;

    if (styleName == "Title")
    {
        title = text.ToString();
    }
    else if (styleName == "Subtitle")
    {
        st = text.ToString() + "\n";
    }
    else if (styleName=="Heading 1")
    {
        heading1[h1c] = text.ToString()+"\n";
    }
}

2 个答案:

答案 0 :(得分:1)

我假设你有title和st声明为字符串,每次迭代循环旧值都被当前值替换。如果使用列表,则可以向其添加文本和副标题。然后,您可以轻松地按照自己的意愿行事。

List<String> title = new List<String>();
List<String> st = new List<String>();

foreach (Microsoft.Office.Interop.Word.Paragraph paragraph in oMyDoc.Paragraphs )
        {
            Microsoft.Office.Interop.Word.Style style = paragraph.get_Style() as Microsoft.Office.Interop.Word.Style;
            string styleName = style.NameLocal;
            string text = paragraph.Range.Text;


            if (styleName == "Title")
            {
                title.Add(text.ToString());
            }
            else if (styleName == "Subtitle")
            {
                st.Add(text.ToString());

            }
            else if (styleName=="Heading 1")
            {
                heading1[h1c] = text.ToString()+"\n";


            }
}

答案 1 :(得分:-2)

split