首页 新闻 赞助 找找看

c# word文档,同一行设置为两种字体。比如 我爱 中国;我爱为黑体,中国为宋体。

0
悬赏园豆:10 [已解决问题] 解决于 2016-09-29 17:09

如题,在同一行。希望各位大神多多指教,先谢谢了,困扰三天了,烦。。。

问题补充:

foreach (DataInfoObj c in obj.attributes)
{
if (c.name.Equals("中文名称"))
{
string strContent;//文本内容变量
strContent = " " + c.value + " ";
//wordApp.Selection.EndKey(ref unite, ref Nothing);
wordDoc.Paragraphs.Last.Range.Font.Bold = 0;//Bold=0为不加粗 
wordDoc.Paragraphs.Last.Range.Font.Name = "黑体";
wordDoc.Paragraphs.Last.Range.Font.NameOther = "Times New Roman";
wordDoc.Paragraphs.Last.Range.Font.Size = 16F;
wordDoc.Paragraphs.Last.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;
wordDoc.Paragraphs.Last.Range.ParagraphFormat.LineSpacing = 12F;//设置文档的行间距 
//wordApp.Selection.ParagraphFormat.FirstLineIndent = 56.6;//首行缩进的长度
wordApp.CentimetersToPoints(float.Parse("56.6"));//首行缩进
wordDoc.Paragraphs.Last.SpaceBefore = float.Parse("0");//段前间距
wordDoc.Paragraphs.Last.SpaceAfter = float.Parse("0");//段后间距
wordDoc.Paragraphs.Last.Range.InsertAfter(strContent);
}
if (c.name.Equals("活动简述"))
{
string strContent;//文本内容变量
strContent = " " + c.value;
wordDoc.Paragraphs.Last.Range.Font.Bold = 0;//Bold=0为不加粗
//wordApp.Selection.EndKey(ref unite, ref Nothing);
wordDoc.Paragraphs.Last.Range.Font.Name = "仿宋 GB2312";
wordDoc.Paragraphs.Last.Range.Font.NameOther = "Times New Roman";
wordDoc.Paragraphs.Last.Range.Font.Size = 16F;
wordDoc.Paragraphs.Last.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;
wordDoc.Paragraphs.Last.Range.ParagraphFormat.LineSpacing = 12F;//设置文档的行间距 
wordDoc.Paragraphs.Last.SpaceBefore = float.Parse("0");//段前间距
wordDoc.Paragraphs.Last.SpaceAfter = float.Parse("0");//段后间距
wordDoc.Paragraphs.Last.Range.InsertAfter(strContent);
}

strContent = " " + c.value + " "这句如果改成strContent = " " + c.value + "\n",那么前黑体后宋体,可是就会多一个回车符。如果不加,就会全是宋体。怎样不加"\n",也能保持前黑后宋体????

life清者自清的主页 life清者自清 | 初学一级 | 园豆:76
提问于:2016-09-29 10:41
< >
分享
最佳答案
0

你录制一段宏,录制的时候把你的操作给重复一遍,然后去看下录制的宏的写法吧。

收获园豆:9
Daniel Cai | 专家六级 |园豆:10424 | 2016-09-29 11:22

有什么意义???

life清者自清 | 园豆:76 (初学一级) | 2016-09-29 11:33

n能解决我所问的吗????

life清者自清 | 园豆:76 (初学一级) | 2016-09-29 11:34

我试了,没成功

life清者自清 | 园豆:76 (初学一级) | 2016-09-29 12:55

@life清者自清: 这是我录制的一段宏。

Sub 宏1()
'
' 宏1 宏
'
'
    Selection.TypeText Text:="abcddfdfdfdf"
    Selection.MoveLeft Unit:=wdCharacter, Count:=7, Extend:=wdExtend
    Selection.Font.Bold = wdToggle
    Selection.Font.Italic = wdToggle
End Sub

把后面几个字母改粗改斜体。对照你的代码感觉是应该指定一个range(类似鼠标选择几个字符),然后再对这个对象改属性。

Daniel Cai | 园豆:10424 (专家六级) | 2016-09-29 15:51

@Daniel Cai: 按照你的方法解决了,从头到尾所有的控件都换了,谢了。不过录制的宏还得修改,大体思路是对的,要早知道这个录制宏,开始设置word格式就不会浪费这么多时间了,郁闷。

life清者自清 | 园豆:76 (初学一级) | 2016-09-29 17:08
其他回答(1)
0

给你个思路,用程序将你需要设成粗体的部分设置成range或者书签,然后再对其进行针对性的加粗处理

收获园豆:1
合抱之木,生于毫末 | 园豆:229 (菜鸟二级) | 2016-09-29 14:51

解决了才看到你的,给你个小豆子,嘻嘻

支持(0) 反对(0) life清者自清 | 园豆:76 (初学一级) | 2016-09-29 17:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册