C#如何根据WORD的标题样式获取相关文字(如获取WORD中所有"标题1" 样式的内容)

flyword2008 2010-09-21 04:25:43
最近用VS.NET2005 C#做 类RP 工具,需要根据word的样式批量获取文档中对应的内容,
遇到了下面两个问题,请各位指导一下
1、获取WORD中所有"标题1" 样式的内容
2、如何获取WORD中所有标题的样式
...全文
1529 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
newton8409 2011-06-08
  • 打赏
  • 举报
回复
顶啊!!!同求!!
灵儿 2011-05-10
  • 打赏
  • 举报
回复
顶啊!!!同求!!
zjj54180 2011-03-22
  • 打赏
  • 举报
回复
我也在求此答案!!!!
  • 打赏
  • 举报
回复
碰到类似的问题了,同求啊~~~~~~~~~~~~~
flyword2008 2010-09-25
  • 打赏
  • 举报
回复
感谢各位的关注:
小弟用的WORD.DLL,想实现两个功能
1、根据样式获取WORD文档中所有该样式的内容,例如:获取WORD中所有"标题1" 或"标题2" 样式的内容
2、获取WORD中所有 "有效样式" 信息 例如:标题、标题1、标题2、标题3、标题4等等
flyword2008 2010-09-25
  • 打赏
  • 举报
回复
顶一下
robbish 2010-09-21
  • 打赏
  • 举报
回复
三楼虽然贴了代码,但是和问题无关,目前我也需要整个类似的东西出来:就是把一个word文档中的各级标题提取出来作为树状节点,然后点击出现对应的内容。思考后有点头绪,C#中可以用TablesOfContents.Add做出目录来,那么也就是所说的各级标题(当然可以设定目录深度,如楼主要求只要一级标题那就简单多了,那第一个问题就解决了)。另外,第二个问题不知道理解是否正确,是要提取出样式中的字体,大小,斜体……这些信息吗?如果是的话,我还没思路。我用的Aspose.words控件,没用微软的WORD.DLL。如果楼主也用Aspose.words的话,可以交流下。里面用的是builder.ParagraphFormat.StyleIdentifier = StyleIdentifier.Heading1类似的语句可以提出各级标题来,希望上面的信息对你有帮助。
flyword2008 2010-09-21
  • 打赏
  • 举报
回复
弄了一天了,还没头绪 呵呵
v6hacker 2010-09-21
  • 打赏
  • 举报
回复
支持一下~~
fangxiaofelix 2010-09-21
  • 打赏
  • 举报
回复
这篇文章可能会对你有帮助C# word控件编程
http://www.taian-seo.com/it/csharp_word.html

另附操作word

1 对项目添加引用,Microsoft Word 11.0 Object Library
2 程序中添加引用
using Word = Microsoft.Office.Interop.Word;
3 程序中添加
static Word.Application app = new Microsoft.Office.Interop.Word.Application();
//可以打开word程序
static Word.Document doc = null;
//一会要记录word打开的文档
4 程序中添加以下
C# code
static public void openFile(object fileName)
{
try
{
if (app.Documents.Count > 0)
{
object unknow = Type.Missing;
doc = app.ActiveDocument;
app.Visible = false;
app.ActiveDocument.Close(ref unknow,ref unknow,ref unknow);

}
}
catch (Exception)
{
//MessageBox.Show("您可能关闭了文档");
Microsoft.Office.Interop.Word.ApplicationClass app;
app = new Word.ApplicationClass();
}

try
{
object unknow = Type.Missing;
app.Visible = false;
doc = app.Documents.Open(ref fileName,
ref unknow, ref unknow, ref unknow, ref unknow, ref unknow,
ref unknow, ref unknow, ref unknow, ref unknow, ref unknow,
ref unknow, ref unknow, ref unknow, ref unknow, ref unknow);
}
catch (Exception ex)
{
Console.WriteLine("出现错误:" + ex.ToString());
}

}
static public object readPar(int i)
{
try
{
string temp = doc.Paragraphs[i].Range.Text.Trim();
return temp;
}
catch (Exception e)
{
Console.WriteLine("Error:" + e.ToString());
return null;
}
}

static public int getParCount()
{
return doc.Paragraphs.Count;
}

static public void closeFile()
{
try
{
object unknow = Type.Missing;
object saveChanges = Word.WdSaveOptions.wdPromptToSaveChanges;
app.ActiveDocument.Close(ref saveChanges, ref unknow, ref unknow);
}
catch (Exception ex)
{
Console.WriteLine("Error:" + ex.ToString());
}
}

static public void quit()
{
try
{
object unknow = Type.Missing;
object saveChanges = Word.WdSaveOptions.wdSaveChanges;
app.Quit(ref saveChanges, ref unknow, ref unknow);
}
catch (Exception)
{

}
}

static public void replaceChar()
{
try
{
object replaceAll = Word.WdReplace.wdReplaceAll;
object missing = Type.Missing;

app.Selection.Find.ClearFormatting();
app.Selection.Find.Text = "^l";

app.Selection.Find.Replacement.ClearFormatting();
app.Selection.Find.Replacement.Text = "^p";

app.Selection.Find.Execute(
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref replaceAll, ref missing, ref missing, ref missing, ref missing);
}
catch (Exception e)
{
Console.WriteLine("文档出现错误,请重新操作");
}
}



public override void openFile(object fileName){} //打开文档
public override object readPar(int i){} //读取word文档的第i段
public override int getParCount(){} //返回word文档一共几段
public override void closeFile(){} //关闭文档
public override void quit(){} //关闭word程序

flyword2008 2010-09-21
  • 打赏
  • 举报
回复
自己顶一下
适用人群Word初学者、办公文秘、写作者、各行各业与Word打交道的人课程概述特别说明:本课程隶属于“365天个人职场技能成长训练营”,如果已经购买该课程,则不必购买本课程,请勿重复购买。课程目标通过全程实战案例快速掌握Word文字排版精髓,妙用样式、快捷键和通用模板实现一劳永逸适用人群Word初学者、办公文秘、写作者、各行各业与Word打交道的人课程简介本课程通过一个完整的实战案例,教你快速掌握使用Word进行文字样式定制、快捷键指定、将样式与通用模板绑定的全套方法,让你在以后的工作,只需要输入文字后按快捷键就可以快速应用常用的样式,不必再每次输入后一一调整格式。特别适合经常跟Word长文档打交道的人,例如长篇论文、产品手册、各种书籍排版等,用这种方法可以让你提高不止10倍工作效率。东东老师是微软认证Office办公软件讲师,策划出版过多本相关书籍,具有10年以上Office办公软件使用与培训经验,同时也是使用Word进行长文档(书籍)排版的日常实践者,对于长文档排版样式与模板的使用具有非常丰富的经验。希望这次分享的经验能够帮助到更多需要的人。如果在学习时有对Word其它方面技巧的需求,也请在评论区留言,东东老师将根据留言设计更多实用的课程。祝您学习愉快!!!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧