设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 7102|回复: 11
打印 上一主题 下一主题

C#如何设置Word页脚?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2016-4-9 00:38:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Word页脚设置是个比较头疼的问题

在Word中录制宏难以产生代码,即使产生代码都不能直接执行,要转化成C#有点困难



需求:
奇偶页不同

奇数页  右对齐  微软雅黑  四号字体     格式:  - 1 -

偶数页  左对齐  微软雅黑  四号字体     格式: - 2 -

MSDN参考资料
https://msdn.microsoft.com/zh-cn/library/ms178795.aspx?cs-save-lang=1&cs-lang=csharp

望帮助!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2016-4-9 07:59:00 | 只看该作者
Word还真没弄过,
你所说的 左对齐,右对齐 是针对此页所有内容,还是只是页码

点击这里给我发消息

3#
 楼主| 发表于 2016-4-9 09:25:12 来自手机 | 只看该作者
tmtony 发表于 2016-4-9 07:59
Word还真没弄过,
你所说的 左对齐,右对齐 是针对此页所有内容,还是只是页码

页码
来自: 微社区

点击这里给我发消息

4#
发表于 2016-4-9 12:13:27 | 只看该作者
int OddAndEvenPagesHeaderFooter {get; set;}
应该是整型
bool OddAndEvenPagesHeaderFooter { get; set; }
逻辑型
设置为-1 或 0 即可

[img]file:///D:\Users\tmtony\AppData\Local\Temp\8LDO48C$8@[GWU0353$FOVS.png[/img]https://msdn.microsoft.com/zh-cn/library/office/microsoft.office.interop.excel.pagesetup.oddandevenpagesheaderfooter.aspx
或 System.Boolean.  可出来值

晕 ,excel 和word 好像不同
excel是boolean
word是 int
[img]file:///D:\Users\tmtony\AppData\Roaming\Tencent\Users\18449932\QQ\WinTemp\RichOle\PZO[~UQVVZ1[Z%DCWF%H9}B.png[/img]

word你就用 int型
file:///D:\Users\tmtony\AppData\Roaming\Tencent\Users\18449932\QQ\WinTemp\RichOle\)EDTBF1%KCT8QCUVR5LBESP.png
可以为3种值
Can be True, False, or wdUndefined.
  
true 就是 -1
false 就是 0

实际上还是逻辑值,只是因为word还有个 wdUndefined
所以 要用 int
你填 1  或 -1 值
看看哪个可以
不行,再用int.parse
app.ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = int.Parse("-1");

点击这里给我发消息

5#
 楼主| 发表于 2016-4-9 12:16:02 | 只看该作者
tmtony 发表于 2016-4-9 12:13
int OddAndEvenPagesHeaderFooter {get; set;}
应该是整型
bool OddAndEvenPagesHeaderFooter { get; set ...

谢谢王站指导

页码设置的需求麻烦王站再帮忙看一下

Word录制宏有限制,有一些操作没法录制,弄起来也是蛮纠结的,加上英语不好
奇数页  右对齐  微软雅黑  四号字体     格式: - 1 -
偶数页  左对齐  微软雅黑  四号字体     格式: - 2 -

点击这里给我发消息

6#
发表于 2016-4-9 12:56:39 | 只看该作者
你是说 设置 字体?
你把属性贴出来
7#
发表于 2016-4-9 22:47:15 | 只看该作者
Sub test()
    Application.ScreenUpdating = False
    With ActiveDocument.Sections(1)
        .PageSetup.OddAndEvenPagesHeaderFooter = True
        With .Footers(wdHeaderFooterPrimary)
            With .PageNumbers
                .Add PageNumberAlignment:=wdAlignPageNumberRight
                .NumberStyle = wdPageNumberStyleNumberInDash
            End With
            With .Range.Frames(1)
                .HorizontalPosition = wdFrameRight
                With .Range.ParagraphFormat
                    .Alignment = wdAlignParagraphRight
                    .CharacterUnitRightIndent = 1
                End With
            End With
        End With
        With .Footers(wdHeaderFooterEvenPages).Range.Frames(1)
            .HorizontalPosition = wdFrameLeft
            With .Range.ParagraphFormat
                .Alignment = wdAlignParagraphLeft
                .CharacterUnitLeftIndent = 1
            End With
        End With
    End With
    Application.ScreenUpdating = True
End Sub

在网上找到VBA 代码

点击这里给我发消息

8#
 楼主| 发表于 2016-4-9 23:23:09 | 只看该作者
闻启学 发表于 2016-4-9 22:47
Sub test()
    Application.ScreenUpdating = False
    With ActiveDocument.Sections(1)

谢谢····

点击这里给我发消息

9#
 楼主| 发表于 2016-4-9 23:23:53 | 只看该作者
C#代码 纠结了一天多,终于搞定了,感谢 @只为设计 全程指导

  1.             //关闭屏幕更新
  2.             app.ScreenUpdating = false;

  3.             //设置奇数页页脚
  4.             word.HeaderFooter secFooter = app.ActiveDocument.Sections[1].Footers[word.WdHeaderFooterIndex.wdHeaderFooterPrimary];
  5.             secFooter.PageNumbers.Add(PageNumberAlignment:word.WdPageNumberAlignment.wdAlignPageNumberInside);
  6.             secFooter.PageNumbers.NumberStyle = word.WdPageNumberStyle.wdPageNumberStyleNumberInDash;
  7.             secFooter.Range.Font.Name = "方正仿宋_GBK";
  8.             secFooter.Range.Font.Size = int.Parse("14");
  9.             
  10.             //设置奇偶页不同
  11.             app.ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = int.Parse("-1");

  12.             //设置偶数页页脚
  13.             word.HeaderFooter secEven = app.ActiveDocument.Sections[1].Footers[word.WdHeaderFooterIndex.wdHeaderFooterEvenPages];
  14.             secEven.PageNumbers.Add(PageNumberAlignment: word.WdPageNumberAlignment.wdAlignPageNumberOutside);
  15.             secEven.PageNumbers.NumberStyle = word.WdPageNumberStyle.wdPageNumberStyleNumberInDash;
  16.             secEven.Range.Font.Name = "方正仿宋_GBK";
  17.             secEven.Range.Font.Size = int.Parse("14");

  18.             //清除奇数页页眉横线
  19.             app.ActiveWindow.ActivePane.View.SeekView = word.WdSeekView.wdSeekPrimaryHeader;
  20.             app.Selection.ClearFormatting();

  21.             //清除偶数页页眉横线
  22.             app.ActiveWindow.ActivePane.View.SeekView = word.WdSeekView.wdSeekEvenPagesHeader;
  23.             app.Selection.ClearFormatting();

  24.             //退出页眉视图
  25.             app.ActiveWindow.ActivePane.View.SeekView = word.WdSeekView.wdSeekMainDocument;

  26.             //启用屏幕更新
  27.             app.ScreenUpdating = true;
复制代码

点击这里给我发消息

10#
发表于 2016-4-10 12:15:22 | 只看该作者

强!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 04:34 , Processed in 0.245878 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表