首页 新闻 会员 周边 捐助

大家好,问一个东西,关于C#操作word

0
悬赏园豆:10 [已解决问题] 解决于 2012-04-17 19:25

  我做了一个项目,是把通过界面上的数据,替换到word模板中去,只替换特定的地方。

替换我已经做好了,是用书签去替换的,但有个问题是:

    举个例子

          [4.2  [一号楼]

                  此号楼是[三层],高是[15米] ]

          4.3   [二号楼]

                 此号楼是[三层],高是[15米]

          。。。。

       这个4.2 章节 ,4.3章节  是不固定的,有可能有4.1章节,4.2章节,4.3章节 ,但每个章节之间的模板差不多是一样,只是有些数据不一样(比如高),  这个时候 怎么去生成章节,而且需要用书签去替换。   

   提醒下,如果把4.2章节复制一份到word文档下面,那么 4.2这个章节里面的书签 就会消失,原因是复制了后,书签不能同名,书签是不能复制的。

   我用的是using Microsoft.Office.Interop.Word;   C# 

   请高手们请教,真心求教.谢谢谢谢

        

Piero's的主页 Piero's | 初学一级 | 园豆:0
提问于:2012-01-06 17:51
< >
分享
最佳答案
3
///<summary>
/// 设置段落基本样式,有编号样式
///</summary>
///<param name="alignment">段落对齐方式</param>
///<param name="level">段落大纲级别,0为文本</param>
///<param name="numberFormat">设置编号样式</param>
public void SetParagraphStyle(string alignment, int level,string numberFormat)
{
SetAlignment(alignment);
SetParagraphOutlineLevel(level);
Word.ListTemplate listTemp = myWord.ListGalleries[Word.WdListGalleryType.wdNumberGallery].ListTemplates.get_Item(1);
myWord.Selection.Range.ListFormat.ApplyListTemplate(listTemp, ref bContinuousPrev, ref applyTo, ref defaultListBehaviour);
myWord.Selection.Range.ListFormat.ListTemplate.ListLevels[1].NumberFormat = numberFormat;
}
///<summary>
/// 设置段落大纲级别
///</summary>
///<param name="level">级别,0代表文本</param>
private void SetParagraphOutlineLevel(int level)
{
switch (level)
{
case 1:
myWord.Selection.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel1;
break;
case 2:
myWord.Selection.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel2;
break;
case 3:
myWord.Selection.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel3;
break;
case 4:
myWord.Selection.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel4;
break;
case 5:
myWord.Selection.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel5;
break;
case 6:
myWord.Selection.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel6;
break;
case 7:
myWord.Selection.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel7;
break;
case 8:
myWord.Selection.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel8;
break;
case 9:
myWord.Selection.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevel9;
break;
case 0:
myWord.Selection.ParagraphFormat.OutlineLevel = Word.WdOutlineLevel.wdOutlineLevelBodyText;
break;
}
}
收获园豆:6
zakkia | 菜鸟二级 |园豆:280 | 2012-01-10 17:43
其他回答(2)
2
收获园豆:4
2012 | 园豆:21645 (高人七级) | 2012-01-10 17:36
0

楼主解决了这个问题没有,能不能发我一份源码学习下?最近在做一个大作业,很急~谢谢

琳伊琳伊琳伊 | 园豆:29 (初学一级) | 2014-01-26 13:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册