精华内容
下载资源
问答
  • Word表格编辑等技巧

    千次阅读 2013-11-20 17:00:13
    将插入点定位在单元格中,单击“表格→绘制斜线表头”命令,出现对话框,单击“表头样式”下拉菜单选择一种样式(共有5种可选择),分别填入“行标 题”(右上角的项目)、“列标题”(左下角的项目)和“数据标题”...


    设计斜线表头

    将插入点定位在单元格中,单击“表格→绘制斜线表头”命令,出现对话框,单击“表头样式”下拉菜单选择一种样式(共有5种可选择),分别填入“行标 题”(右上角的项目)、“列标题”(左下角的项目)和“数据标题”(中间格的项目)以及“字体大小”等,最后单击“确定”退出。删除斜线表头的方法是,单 击要删除的斜线表头,当周围出现选定标记时,按Del键即可删除该斜线表头。


    自由修改斜线表头
    斜线表头绘制好后,如果改变字号,或者调整斜线位置,斜线表头便出现诸如字与字互相叠压或线条移动等不匹配的情况,往往令许多人感到束手无策。其实,我们可利用Word的绘图功能加以调整,具体作法是:
    1.选中该表头(其实表格斜线是由线条组合在一起的图形),使之周围出现8个控点;
    2.在“绘图工具栏”上单击“绘图”按钮,在弹出的菜单中选择“取消组合”命令,并在斜线表头所在的单元格之外的区域单击(即取消选定状态);
    3.这时表头中的线条和文字(其实是文本框)均成为独立可调整状态,我们可以任意调整表头的线条和每一个文字的位置,直到满意为止;
    4.按Shift键,依次选择每个线条和每个文字块;
    5.再次在“绘图工具栏”上单击“绘图”按钮,选择“组合”。
    在上面第三步中,你还可能遇到另一种令人头疼的事情:那就是虽然可独立移动斜线位置,但就是移动不到准确的位置,或者说误差非常大。这时,你可尝试如下的步骤:
    1.选中该表头;
    2.在“绘图工具栏”上单击“绘图”按钮,选择“绘图网格”,弹出“绘图网格”对话框(图2);
    图2

    3.在“绘图网格”对话框中将“水平间距”和“垂直间距”均调整成最小值,然后单击“确定”,表头中的内容便可任意调整大小、位置了。

    1.4.3    把文字转换成表格
    选中需要转换的文字,单击“表格→转换→文本转换成表格”命令,设置好需要转换的列数、行数和套用的格式,在“文字分隔位置”中选中文字分隔符(图3),按“确定”按钮就可以把文字转换成表格。
    图3   

    1.4.4    把表格转换成文字
    选中表格,单击“表格→转换→表格转换成文本”命令,在打开的对话框中选好文字分隔符(图4),单击“确定”按钮即可。
    图4

    1.4.5    快速选定整张表格
    按“Alt+5(数字键盘上的数字,且Num Lock键处于关闭状态)”,就可以快速选定整张表格。

    1.4.6    随心所欲调整单元格中的文字对齐方式
    对于单元格中的文字,你可以随意调整它的位置,上、下、左、右、中间任意设定,设置的方法是:在单元格中右键单击,弹出快捷菜单,在“单元格对齐”子菜单中单击相应的命令即可,共有9种设定可供选择。

    1.4.7    更方便地调整表格的位置
    这是在Word中重新定位表格的一个捷径。单击“视图→页面”命令,转换到页面视图模式,在页面视图中,把鼠标指针放在表格的左上角直到出现移动柄(框中有一个4个头的箭头),点击移动柄,用它把表格拖动到一个新位置。

    1.4.8    整体缩放表格
    将光标停留在表格内部,直到表格尺寸控点(一个小“口”)出现在表格右下角,将鼠标移至表格尺寸控点上,待向左倾斜的双向箭头出现,沿需要的方向拖动即可整体缩放表格。

    1.4.9    使你的列标题可见 
    当你在Word中创建一个表格时,你可以利用列标题来描述每一列是什么信息。但如果表格很长,超过一页时,第一页后面的页列标题将看不到,这样你很难分辨每一列的主题是什么。这里将介绍一种使标题可见的技巧: 
    选择表格的第一行或多行,单击“表格→标题行重复”命令,现在,Word能够自动在后续页的顶端重复表格的标题。 
    注意:只有在自动分页时,Word才能够自动重复表格标题,如果你手工插入分页符,表格标题将不会重复。而且,重复的表格标题只要在打印预览视图或当你打印文档时才可见。

    1.4.10    用键盘建立表格 
    你想过只需简单地输入一连串+号和-号,就可以在Word中创建表格吗?下面就是具体的操作方法: 
    利用一个+号开始一行,然后不停输入-号,直至达到合适的列宽度。要想添加一个新列,再次输入+号。在输入最后一个+号后按下回车。Word将把文本转换为表格。要想向表格添加更多的行,移到表格的最后一个单元格并按下Tab键。 
    注意:如果这一技巧不起作用,那么你需要打开Word中的自动套用格式特性。单击“工具→自动更正”命令,然后单击“键入时自动套用格式”选项卡并选中“表格”复选框。

    1.4.11    给表格增加行
    用鼠标点中表格中的最后一个单元,然后按Tab键,即可在表格末端增加一行。

    1.4.12    快速给单元格编号
    选定需要进行编号的行或列后,单击工具栏中的“编号”或“项目符号”按钮就可以自动对单元格逐项进行编号,这种方法不但对单个的行或列起作用,对整个表格也可以使用。

    1.4.13    对齐单元格中的内容
    选中要对齐内容的行或列,然后右键单击,在弹出的“单元格对齐方式”菜单中选择相应的方式即可。

    1.4.14    快速插入一行
    将光标移到表格右侧换行符前按回车键可在下一行插入一行。
    1.4.15    快速插入多行(列)
    选定多行(列)后再右键单击,选择“插入行(列)”命令,即可一次插入多行或多列。

    1.4.16    在表格顶端加空行
    要在表格顶端加一个非表格的空白行,可以使用“Ctrl+Shift+Enter”组合键通过拆分表格来完成。但当你的表格位于文档的最顶端时,有一个更为简捷的方法,就是先把插入点移到表格的第一行的第一个单元格的最前面,然后敲Enter键,就可以添加一个空白行。

    1.4.17    将Word表格转换为Excel表格
    1.将光标移至Word表格的任意单元格中,单击“表格→选择→表格”命令,选定整个表格;
    2.单击“编辑→复制”命令,将Word表格拷贝到剪贴板中;
    3.启动ExceI,然后打开需要转换的工作簿,井将光标移至所需的单元格中;
    4.单击“编辑→粘贴”命令,即可将剪贴板中的信息(即我们所需的表格内容)粘贴到Excel中。

    1.4.18    快速插入公式
    在一个公式较多的中文Word文档中编辑公式时,不但每次都需要调入“公式编辑器”,而且影响了“公式编辑器”的运行速度。为了解决这个麻烦,可以在插入 一个公式之前,建立一个新的文档(作为临时文档),在该临时文档中用“公式编辑器”编辑公式,然后将编辑好的公式复制到剪贴板中,再将公式粘贴到需要的位 置即可。当需要再一次插入公式时,通过选择窗口直接切换到临时文档中进行编辑,然后再按照上述方法进行编辑。

    1.4.19    插入双表
    Word中的表格两侧不能插入其它表格,不过把一个表格“一分为二”可间接得到双表,方法是:选定表格中间作为“分隔”的某列后,然后右键单击,选择“边框和底纹”命令,通过“边框和底纹”对话框中的预览图取消所有的横边框”(图5),就可得到“双表”。
    1.4.20    快速拆分表格
    首先在要拆分的表格行中任一处单击,然后按下“Ctrl+Shift+Enter”组合键,就会在插入点所在行的上方插入一个非表格式的空白行,将表格一分为二。

    1.4.21    把表格一分为二并分页放置
    首先在要拆分的表格行中任一处单击,然后按下“Ctrl+Enter”组合键,就会把表格一分为二并分页设置。

    1.4.22    在Word中复制Excel表格和它的格式
    从Excel复制一个表格到Word,方法如下:
    打开你想要把表格复制到其中的Word文档和包含表格的Excel工作表,在Excel中选中想要复制的表格,单击“编辑→复制”命令,切换到Word,单击要显示表格的位置,再单击“编辑→粘贴”命令,使用“粘贴选项”智能标记,选择下列选项中的一种: 
    1.若要保留在Excel中应用的格式,选择保留源格式;
    2.若要匹配已经在你的Word文档中的表格的样式,选择匹配目标区域表格样式。

    1.4.23    文字与单元格对齐
    Word 2002文字与单元格可以多种方式对齐,操作方法是:选中需要设置文字对齐的单元格,打开“表格和边框”工具栏中的“对齐”工具,单击你需要的对齐方式按钮就可以了。

    1.4.24    按姓氏笔画排序表格中的内容
    在Word的表格功能中,为了适应中文习惯,新增了按“姓氏笔画”排序功能。具体使用方法是:选择需要排序的列,单击“表格→排序”命令,出现“排序”对 话框(图6),选择“类型”组合框中的“笔画”项,并选择“升序”或“降序”,点击“确定”即可。你会看到,此时的表格已按“姓氏笔画”(而不是“姓名笔 画”)的升序(或降序)排列好了。
    1.4.25    快速选定整个表格
    按住Alt键后双击表格中任意位置,可快速选定整个表格,再按“Ctrl+X”可快速删除表格。

    1.4.26    快速选定整行内容
    将鼠标移动到一行左格线和文本之间的空白处,指针变为向右箭头后单击可选定整行内容。

    1.4.27    快速选定整列内容
    将鼠标移动到一列最上方边线处,指针变为向下箭头后单击可选定整列内容。

    1.4.28    固定列宽
    在Word中,表格的列宽可自动调整尺寸以适应文本或图形。如果键入的文字长度超过了列宽,Word将调整列宽以包含文字。如果不需要在键入时调整列宽, 请选中表格,然后单击“表格→表格属性”命令,选择“表格”选项卡,单击“选项”按钮,清除“自动重调尺寸以适应内容”复选框(图7),最后依次单击“确 定”按钮。
    图7

    1.4.29    显示正确行号
    我们在制作大型表格时,会发现分页后行号显示不正确,这是因为在分页时如果分页符拆分了表格中单独的一行,对于新的一页上位于该行以外的其它各行, Word有时会在状态栏中显示不正确的行号。如果需要准确的行号,可以禁止表格跨页断行,方法是:单击“表格→表格属性”命令,选择“行”选项卡,清除 “允许跨页断行”复选框(图8),最后单击“确定”按钮。

    图8

    1.4.30    快速复制表格
    1.首先切换到页面视图方式,然后将指针停留在表格的左上角,直到表格移动控点(即一个方框内有一个四向箭头)出现;
    2.将指针停留在表格移动控点上,直到一个黑色四向箭头出现;
    3.按住Ctrl键,将副本拖动到新的位置。

    1.4.31    粘贴表格
    当你要将表格项从一个表格粘贴到另一个表格中,而且作为该表格中的行、列或嵌套表格,而不是作为文本时,你就必须用到“粘贴表格”命令了。可是这个命令在哪里呢?
    l.单击“工具→自定义”命令,然后选择“命令”选项卡;
    2.在“类别”框中,单击“编辑”,在“命令”框中,找到并选中“粘贴表格”,然后将其拖放到常用工具栏中的适当位置。此时,“粘贴表格”按钮出现在该工具栏中。该按钮命令也被称作“粘贴行”、“粘贴列”或“粘贴为嵌套表格”,这取决于粘贴时单击表格的位置;
    3.单击“关闭”按钮,关闭“自定义”对话框。
    现在,你就可以使用这个“粘贴表格”命令,方便地完成从一个表格到另一个表格的复制工作了。

    1.4.32    自由移动表格
    将光标停留在表格内部,当表格移动控点(带框的四向箭头)出现在表格左上角后,将鼠标移到控点上。待鼠标指针变成四向箭头,你就可以将表格拖动到虚框指示的任意位置。
    1.4.33    将数据库直接转换为Word表格
    单击“视图→工具栏→数据库命令”,在工具栏上出现数据库按钮,单击“插入数据库→获取数据→浏览”,找到需要插入的数据库(表),当然首先确定是插入access数据库还是vfp、dbase等类型数据表,然后选择需要插入的字段再单击“确定”、“调整”按钮即可。 
    提示:Word不仅可以导入数据库,还可以动态刷新,可以处理字段和记录,活脱脱一个小DBMS。

    1.4.34    防止表格在页面末尾被切断
    如果Word表格长度超过了一页,而且在页面末尾被切断,下一页的内容没法正确显示,你可以选中表格,单击“表格→表格属性”命令,然后单击“表格”选项卡,在“文字环绕”标题下,选择“无”,最后单击“确定”按钮即可。

    1.4.35    隐藏表格边框
    如果你在文档中输入一个数字清单,常常上下行的数字难以对齐。如果插入一个表格,对齐的问题就好解决了,但由于表格的行、列边框显示出来,又使文章不美观。怎么办?——隐藏表格边框。
    方法是:插入一个表格,将数字输入到表格中,设置好对齐方式后,选中整个表格,单击“表格→表格属性”,在“表格”选项卡中单击“边框和底纹”按钮,单击“边框”,在设置中选“无”即可(图9)。
    图9

    1.4.36    设置表格内容对齐
    Word 2002表格可以像文字那样设置其中的内容对齐方式,从而给排版带来了极大的方便。设置方法是:在表格的任意位置单击鼠标右键,选择快捷菜单中的“表格属性”命令,打开“表格”选项卡,选中“对齐方式”下需要的选项,单击“确定”按钮即可。
    如果将整个表格选中,使用“格式”工具栏中的“居中”、“右对齐”等按钮,也可以设置表格的内容对齐方式。
    1.4.37    套用表格样式
    选中制作好的表格,单击“表格→自动套用格式”命令,打开“表格自动套用格式”对话框(图10),在“表格样式”中选择你喜欢的某种样式,然后单击“应用”按钮即可作用到表格上。
    图10

    1.4.38    任意合并单元格
    在Word中只要是相邻的单元格都可以合并。操作方法是:选中要合并的单元格,单击“表格→合并单元格”命令即可完成合并,各单元格内原有的文字能自动分行排列。

    1.4.39    表格嵌套
    常用下面两种方法在表格中嵌套表格,即建立表中表。
    1.先按常规方法建立一个表格,将光标放入需要嵌套表格的单元格,单击“表格→绘制表格”命令,按需要画表中的小表即可,此法可以创建比较复杂的嵌套表格;
    2.将光标放入需要嵌套表格的单元格,单击“表格→拆分单元格”命令,根据需要在对话框中选择合适的行、列数,单击“确定”按钮即可在该单元格中嵌套一个小表格。

    1.4.40    任意拆分单元格
    选中要拆分的所有单元格,单击“表格→拆分单元格”命令,打开对话框,在“行数”和“列数”后输入该区域拆分后的表格行列数,单击“确定”按钮即可。

    1.4.41    任意擦除表格线 
    打开“表格和边框”工具栏,单击“擦除”按钮,拖动“橡皮”光标划出红色方框,方框围住的所有表格线就会变粗,松开鼠标,选定的表格线立刻被“擦除”。

    1.4.42    修改表格线
    Word能用各种方法修改表格线,如果修改量不大,可以打开“表格和边框”工具栏,在“线型”和“粗细”下拉列表中选择你喜欢的表格线,按下“绘制表格” 按钮,在需要修改的表格线上拖动光标即可。也可将光标放在表格内,单击“格式→边框和底纹”命令,在“边框”选项卡中进行修改。如果表格的规模较大,此法 更加方便快捷。

    1.4.43    表格左右并列
    用鼠标在表格的左或右边的空白处双击,使该处出现插入点,然后插入一个新表格,只要页面能容纳后插入的表格,这两个表格即可左右“和平共处”。

    1.4.44    将Excel表格粘贴为图片
    如果想把Excel表格变为图片插入到Word文档中,可以进行以下操作:选中要粘贴的Excel单元格区域,单击“复制”按钮将其存入剪贴板。然后切换 至Word文档,单击“编辑→选择性粘贴”命令,在弹出的对话框中选择“图片”或“图片(增强型图元文件)”选项(图11),单击确定,即可将Excel 表格以图片形式插入到当前文档中。
    图11

    1.4.45    行的求和
    有以下两种方法:
    1.把插入点插入到要求行的最后一个单元格内,单击“自动求和”按钮,则该单元格中自动输入该列数字的和;
    提示:计算表格每行数字之和时,要从有数字的最后一行开始,把插入点移到该行中的最后一列,从下向上依次单击“自动求和”按钮,如果某行有空单元格或字母 单元格时,则计算的是空单元格或字母单元格之后格中数字的和,若字母单元格之后同行为空单元格,计算的是字母单元格之前同行的数字之和。如果“自动求和” 按钮没有出现,可以单击“视图→工具栏→表格和边框”打开表格工具栏,“自动求和”的图标为“∑”。
    2.把鼠标移到该行之前,当鼠标变成空心的右向上黑箭头时,单击左键,则选中该行。单击“工具计算”按钮,则在当前窗口下面的提示行中显示出“计算结果为:x x x”,只要把该结果填入表格中的单元格中即可。
    提示:默认情况下,Word工具栏中没有“工具计算”按钮,添加方法为:首先单击“工具→自定义→命令”,在“类别”下拉列表框中选中“工具”,再在右边 “命令”列表框中找到“工具计算”,用鼠标按住“工具计算”并拖至Word工具栏中适当的位置释放鼠标,此时新增的“工具计算”按钮就出现在工具栏中。

    1.4.46    列的求和
    有以下两种方法:
    1.把插入点插入到要求列的最后一个单元格内,单击“自动求和”按钮,则该单元格中自动输入该列数字的和;
    提示:计算表格每列数字之和时,应从最后有数字一列开始由右向左依次单击“自动求和”按钮,若遇到列中有字母单元格或空单元格,则计算的是最后空单元格或字母单元格之后同列数字的和,若空单元格或字母单元格之后同列为空单元格,则计算它之前的数字之和。
    2.把鼠标移到该列之上,当鼠标变成实心向下的黑箭头时,单击左键,则选中该列。单击“工具计算”按钮,则在当前窗口下面的提示行中显示出“计算结果是:x x x”,只要把该结果填入表格中的单元格中即可。

    1.4.47    求整个表格数字之和
    选中整个表格,单击“工具计算”按钮,则在当前窗口下面的提示行中显示出“计算结果是:x x x”,只要把该结果填入表格中的单元格中即可。

    1.4.48    计算表格中数据
    在用“公式”命令计算表格数据时,发现有一个问题,就是不能用一个公式计算很多行的数值,此时有一个好的方法:
    先将“=SUM(LEFT)”公式复制一下,然后在要计算的表格栏内按“Ctrl+F9”,出现{ }标志,此时就处在输入公式的状态,按“Ctrl+ C”将公式粘贴进来,依此类推,很快就可以将要计算的表格单位全部打上公式,此时选中整个表格,按F9,就可以通过公式算出所要的数值。值得注意的是,在 Excel中,如果表格中的源数据出现变化,结果是及时更新的,而在Word中源数据变化,结果是不会自动更新的,要重新选择整个表格,然后按F9更新所 选域数据才会更新。

    1.4.49    对表格进行排序
    1.将插入点置于要进行排序的表格内的任意位置;
    2.单击“表格→排序”命令,打开“排序”对话框(图12);
    图12

    3.在“排序依据”列表框中选择要作为第一个排序依据的列名称,在后面的“类型”列表框中选择“笔画”、“拼音”、“数字”或“日期”,然后选择“升序”或“降序”选项按钮;
    4.如果要用到更多的列作为排序依据,在“次要关键字”、“第三关键字”中重复步骤3的操作即可。

    1.4.50    利用表格快速生成编号
    在现实应用中,有时会出现需要打印很多编号的工作,用Word可以很方便地产生编号。方法如下:如现在我们要产生1~800的编号,首先在Word中使用 表格菜单中的插入表格在选项卡中输入需要的行和列,此时我们输入20和40,如果要打印成一列,最好选择1和800。此时生成了一个有800个单元格的表 格,选中整个表格,然后选择格式菜单中的项目符号和编号,选择第二项编号栏,根据自己的需要选择一种编号形式,此时电脑自动生成编号,选中整个表格,用 “Ctrl+X”剪切,然后使用选择性粘贴,选用无文本格式,此时会直接粘贴上编号而不会出现表格,然后根据自己的需要进行适当的调整就行了。

    1.4.51    在Word中使用Access的数据
    利用下面的方法可以在原有Word文档中插入Access表或查询的内容: 
    1.在一篇Word文档中选定要插入表或查询的位置;
    2.单击“视图→工具栏→数据库”命令,显示“数据库”工具栏,然后单击“插入数据库”按钮;
    3.在弹出的“数据库”窗口中单击“获取数据”按钮获取数据,在“选取数据源”的“文件类型”中选择“MS Access数据库”,选中所需Microsoft Access数据库的名称,然后单击“打开”按钮;
    4.单击“表格”或“查询”,然后选择所需表格或查询,最后单击“确定”按钮;
    5.如果要选定记录、域或二者的子集,并将它们包含在Word表格中,请单击“查询选项”按钮,选好所需选项,再单击“确定”按钮;
    6.如果要自定义Word的表格形式,单击“表格自动套用格式”按钮,选定所需选项后单击“确定”按钮;
    7.单击“插入数据”按钮,在“插入记录”下,选定希望包括在Word表格中的记录;
    8.如果希望源数据改变时可更新Word表格中的数据,可再选中“将数据作为域插入”复选框,然后单击“确定”即可。

    1.4.52    微调表格线
    在调整表格时,可以在按住鼠标左键的同时按住键盘上的Alt键实现微调,但有时会遇到这样的问题,即当多次调节表格大小时总有那么一两条表格线怎么也对不 齐,只差那么一点点,这时候你可以用鼠标选中这条线然后双击左键,表格线就会自动合成一条了,有时这样调整后差距会转移到最右边的线上,这时只需双击一下 这条线即可。

    1.4.53    利用“公式”命令求和
    要计算Word表格中的数据,请先将光标置于需要放置数据计算结果的单元格中,再单击“表格→公式”命令,弹出“公式”对话框。
    1.求某列数字的和
    将光标插入到数字列底部的单元格中,单击“表格→公式”命令,Word自动建议使用“=SUM(ABOVE)”公式,表示自动将光标之上该列的数字进行求和(图13),单击“确定”,则计算结果输入到光标所在的单元格中。
    图13

    2.求某行数字的和
    将光标插入到数字行右边的单元格中,单击“表格→公式”命令,Word自动建议用“=SUM(LEFT)”公式,表示自动将光标所在行的左边的数字进行求和(图14),单击“确定”,则计算结果输入到光标所在的单元格中。
    提示:利用“公式”命令求和时,如果遇到行或列中有空单元格和字母单元格情况,求得的数字的和只是一部分数据的和,至于是哪部分数字的和,请看利用“自动求和”情况。要逐行求和,请从最末行开始向前求起;要逐列求和,请从最末列向前求起。

    重复使用“绘图”栏中的同一按钮


    如果想连续多次使用同一绘图按钮,则双击该按钮即可。使用完毕,单击该按钮或按“Esc”键可退出。

    1.3.2    画圈组合图片
    把数个连在一起的图片组合起来成为一个对象,可以方便你的编辑工作。在Word中,同时选中多个图形对象的方法是按住Shift键,并单击各个图形。但在 图片很多很小又挤在一起时,这种选多个图形的方法就很难奏效了。这时,可以单击“视图→工具栏→绘图”命令,打开“绘图工具栏”,单击绘图工具栏的左端有 一个白色的箭头形状的“选择对象”按钮,再拖动鼠标在想要“组合”的图片周围画一个圈,则圈中的图片就全部被选中了,现在再进行“组合”就容易多了。

    1.3.3    在文档中插入图标
    在文档中加上一个图标,不但可以形象地说明问题,而且能够使文章图文并茂。具体操作是:单击“插入→对象”命令,打开对话框(图1),选中“显示为图标” 选项,然后在“对象类别”列标框中选取所需,单击“ 确定”即可。如不满意图标的样式,可以单击“更改图标”进行修改,随后弹出“更改图标”对话框,默认文件是Windows的系统文件 shell32.dll,这里包含了几乎所有的Windows系统图标。如果插入的是程序图标,则点击“浏览”按钮,找到所需的程序或dll文件,如 IEXPLORER.EXE。选中需要的图标后单击“确定”,或双击选定的图标,此时它就会出现在“对象包装程序”窗口中,单击“文件→更新”,需要的图 标就会出现在当前文档的插入点上了。如果我要插入的是Word工具栏按钮的图标呢?可以在“工具栏”任意位置单击右键,选择“自定义”,打开“自定义”对 话框。不作任何操作,保持打开状态,在需要插入的按钮上点击右键,选择“复制按钮图标”,此时按钮图标已被复写至内存,在文档中需要的地点粘贴即可。这一 招同样适用于Office系列的其它软件,如FrontPage、Excel、PowerPoint等。 
    1.3.4    为图形加上题注
    当你在文档中加入图形和图表时,不要忘了对它们进行编号并加上说明。在Word中,为图形加上题注是很方便的:先选中图形,然后单击“插入→引用→题注” 命令,在对话框中输入对图形的说明,最后点击“确定”,Word将自动对图形进行编号并加上说明(图2)。如果你以后在这个图形之前加上了其它图形,或者 删除了这个图形之前的图形,则Word将自动修改图形编号。
    图2

    如果你想要在文档内部引用图形的题注,你首先必须把题注转换成图文框。然后,把光标移到需要插入题注引用的地方,单击“插入→引用→交叉引用”命 令,从“引用类型”列表,选择“图表”,从“引用内容”列表选择你想要的引用类型.在“引用哪一个题注”中选择正确的题注,最后点击“插入”按钮。现在文 档中插入了对指定图形题注的引用。如果由于图形的前面加上或者删除了其它图形而导致图形编号改变,文档将自动进行相应的更新。

    1.3.5    画圆和圆弧
    在绘图工具栏中点击“椭圆”按钮,按Shift键,可拖动以指针起点为圆心的圆。单击“自选图形”,指向“基本形状”,指向“圆弧”点击,按住Shift键拖动,可画出圆弧。

    1.3.6    画正弦曲线
    单击“绘图”工具栏上的“自选图形→线条→曲线”图标,沿右上角拖动指针至峰点,松手,向右下拖动指针至横轴、松手,向右下拖动指针至谷点、松手……在曲线要结束处双击,一个正弦曲线就画好了。

    1.3.7    画直线、正圆、正方形
    用Word自带的画图工具画图时,按住Shift键后再画,则画出的线条是直线,画出的椭圆变成了圆,画出的长方形变成了正方形。


    1.3.8    将图片和自选图形组合在一起  
    我们在使用Word进行图文混排时会遇到这样的问题:在文档中插入图片时,如果要为其加上标注图形,最后应当将图片和标注图形组合成为一个整体,以便于改 变图片的位置。可是在Word中,却怎么也不能将两个图形组合。这是为什么呢?试试下面的方法,也许可以给你一个明确的答复。
    在Word中插入图片,在图片上单击鼠标的右键,在弹出的“设置图片格式”对话框中选中“版式”标签(图3),看到在环绕方式中有这样几种:嵌入型、四周 型、紧密型、浮于文字上方、衬于文字下方。Word默认的图片与文字的排版方式是嵌入型,我们把图片和文字的排版方式设置为四周型,确定之后回到编辑状态 再单击图片,再进行图片与图片的组合也可以进行了。看来问题出在图片与文字的排版方式设置上。那么Word默认的嵌入型是怎么回事呢?所谓嵌入型是把插入 的图片当作一个字符插入到文本中,要改变其位置可以像改变文字位置一样用键盘上的空格键或Backspace键。我们虽然可以使用图片处理工具对其进行处 理,但是在与别的图片进行排版时它却被当成了文字对象处理,所以就会出现插入的图片与制作的标注图形无法组合的问题。此时我们把图片与文字的环绕方式改为 其它形式即可。
    图3

    1.3.9    组合文字和图形
    要把某些文字与某些图形组合成一体,让它们在编辑排版时不至于分离,其操作方法是:
    1.用“绘图”工具栏上的相应按钮绘出需要的图形; 
    2.单击“文本框”图标,向“文本框”中添加文字,如果不要框线和填充颜色,则选择”无线条颜色”和“无填充颜色;
    3.全选”文本框”和“图形”,单击“绘图”菜单中的“组合”命令。

    1.3.10    分离文档中的图片
    要实现文稿中图片的完整分离,可以利用Word中的HTML超文本转换输出功能。方法如下:首先在Word中打开含有图片的文稿,用鼠标单击“文件→另存 为”命令,在弹出的对话框“保存类型”里,选取“Web页(*.html;*.htm)”,起好文件名,单击“保存”按钮,就可以将文档另存为超文本格 式。然后打开刚刚保存的“Web页”文件的文件夹,你会发现该文件夹中有一个与保存文件同名的文件夹,打开它,就可以发现里面有多个图片(JPG或GIF 格式),这就是文档中的图片。
    注意:当所插入的图片颜色为256色以上时,则分离后的图片格式为JPG格式,否则为GIF格式。
       
    1.3.11    固定图片说明文字
    我们在用Word编辑文章时经常需要插入图形,并配上相应的说明文字。可是一旦进行字间距、行间距、字体调整或移动图片时,原先图片的说明文字就会移位,不得不重新进行调整,其实,利用Word的文本框可以轻松解决这个问题。
    调整好图片的位置后,单击“插入→文本框→横排(或竖排)”命令,在图片旁适当位置拉出一个文本框,加入说明文字。然后设置文本框格式,双击文本框,在弹 出的对话框中选择“颜色与线条”标签,在“填充”的“颜色”选项中选择“无填充颜色”,在“线条”的“颜色”选项中也选择“无线条颜色”,单击“确定”后 可用鼠标再调整一下文本框的精确位置,将文本框和图片同时选中,单击右键选择“组合”命令将文本框与图形联成一体,这样当你再进行文档编辑或移动图片时, 图片的说明字符会与图片一起移动,再也不会到处乱跑了。

    1.3.12    精确旋转图片
    对于添加到文档中的图片,单击选中它,我们可以利用图片上方的调节旋转柄旋转图片,但这种调节只是一种粗略的调节,如果要想精确地调整图片的旋转角度,可以双击图片,在弹出的“设置图片格式”对话框中选择“大小”(图4),在“旋转”中就可以任意输入旋转的角度。
    注意:此时图片的“环绕方式”要为除嵌入式外的其他形式。若是嵌入式则可在“设置图片格式”的“版式”中修改。

    1.3.13    隐藏图形
    如果觉得屏幕滚动得太慢,则请按如下方法操作:在页面视图中单击“工具→选项”命令,然后单击“视图”选项卡(图5),选中“图片框”复选框,可隐藏以嵌入方式(直接在插入点插入至文字的图片)插入的图片,Word将只显示大样而不显示具体图片。
    图5

    清除“图形”复选框上的选中标记,可以隐藏以浮动方式导入的图片(即位于图形层并可根据需要精确地放置在页面上的、还可置于文字和其它对象之前或之后的图片)和用绘图工具创建的对象,如自选图形等。

    1.3.14    快速还原图片尺寸
    有时我们会在文档中放置一些图片,并作适当的修改,如果修改得不满意,想还原后重新修改,可按住Ctrl键,用鼠标双击该图片,即可快速还原。

    1.3.15    将“图片”转换成“图形对象”
    文档中的“图形对象”比“图片”有更大的灵活性,不但可以缩放、移动,还可以旋转,因此,我们有时就想让图片也转换成图形,这样就可以更加自由地进行编辑 了。转换的方法是:选中图片,单击绘图工具栏中的“绘图”按钮,在弹出的菜单中选中“文字环绕”中的一种方式,此时,文档中的“图片”就转换成与“图形对 象”一样可自由移动、旋转的对象。如果要几个图片与图形对象组合,经过对图片的上述操作,就可利用“绘图”工具栏的“选择对象”按钮和“绘图”菜单中的 “组合”命令,使几个对象组合成一体。

    1.3.16    组合图形
    用Word自带的绘图工具,将几个简单的图形拼接成一个复杂的图形;或者用插入图片的方法插入多个图片构成一个复杂的图片。如果想要将这些图片组合成一个 图形后整体移动,可以在按住Shift键的同时,逐个点击单个的图片选中所有的图片,再右击鼠标,选“组合”选项下的“组合”命令即可。

    1.3.17    让图形排列整齐
    首先通过按Shift键并依次单击想对齐的每一个图形来选中它们,然后单击绘图工具栏上的“绘图”按钮,选取弹出式菜单中的“对齐或分布”选项,并选择一种对齐或分布的方法。

    1.3.18    编辑环绕顶点
    单击“绘图”工具栏上“文字环绕”中的“编辑环绕顶点”,图片周围会出现许多顶点,拖动它们可以调整文字环绕位置,按住Ctrl键再单击顶点间连线(顶点)可以增加(或删除)顶点。

    1.3.19    精确地控制图片移动的位置
    当你在Word文档中放置图片时,它会自动与一个可见的网格对齐,以确保所有内容整齐地排列。如果需要精确地控制图片的放置位置,你可以在拖动对象时按住Alt键,以暂时忽略网格。你可以看到该图片将平滑地移动,而不是按照网格间距移动。 
    注意:如果图片不需要与文字对齐,你可以使用这一技巧。为了确保该技巧生效,双击该图片,然后选择“版式”选项卡,选择环绕方式区域下非嵌入式的任意方式,最后单击“确定”。

    1.3.20    快速复制图片
    按住CtrI键,光标再移动到对象上且拖动,可在新位置处复制出图片。

    1.3.21    快速复制、移动图形对象
    按住Shift键,光标移动到对象上且拖动.可按垂直或水平方向移动图形对象到新位置;按住Shift键的同时再按住Ctrl键,光标移动到对象上且拖动.可在垂直或水平方向上的新位置处复制出图形对象。

    1.3.22    快速插入多个相同图片
    有时候在Word文档中想多次插入一种小图标,反复用“插入→图片→来自文件”命令则非常麻烦,其实可以用“替换”的方法来快速实现:  
    1.先在文档中需要插入图片的地方输入一个字母组合(如tu);
    2.整篇文档录入完毕后,将需要插入的图片复制到“剪贴板”上;
    3.单击“编辑→替换”命令,打开“查找与替换”对话框,并点击“高级”按钮,在“查找内容”框中填入“tu”,点击“替换为”框,再单击“特殊字符”按钮,并选“剪贴板内容”选项;
    4.按“全部替换”按钮,即可将全文的字母“tu”一次性替换为剪贴板上的图片了。

    1.3.23    一次在文档中插入多个图片
    在一般情况下,我们是利用“插入→图片→来自文件”打开插入图片对话框,然后选择图片进行插入。如果我们要在文档中插入数个图片,一个一个的重复以上的操 作就显得很烦琐,事实上我们可以在插入图片对话框中用Ctrl和Shift键来帮助我们快速选定多个图片。你可以按住Ctrl键的同时用鼠标逐个点击要添 加的图片,也可以按住Shift键,然后单击不同的两个图片,也可以将处在它们之间的图片选中,最后单击“插入”按钮即可把选中的图片一次性插入到文档 中。

    1.3.24    找回丢失的图片
    单击“绘图”工具栏上的“选择对象”按钮,在文档中丢失的原有图片,就会再现出来。

    展开全文
  • word文档中包含多个连续11位电话号码,怎样提取这些号码? 怎样提取多个word中的手机号码?最近总有些人问到这个问题 excel用函数如何提取11位号码很多人不会操作,今天我们玩个骚操作 文本从内直接提取手机号码 ...

    word文档中包含多个连续11位电话号码,怎样提取这些号码?

    怎样提取多个word中的手机号码,分离出文本中的邮箱和手机?最近总有些人问到这个问题

    WPS和excel用函数如何提取11位号码很多人不会操作,今天我们玩个骚操作

    文本从内直接提取手机号码,比如说像这样的:

    如何快速的将手机号码从里面分离出来下面用到一个软件,快速文本号码数据处理系统

    文章后面放了下载链接,先学习怎么用后面再自己去试

    第一步、启用复制粘贴

    第二步、将文本复制到原始文本框内

    第三步、根据需求要不要选择去重,然后一键提取

    第四步、导出提取出来的结果

    可以提取手机规则的数据,也可以提取邮箱规则的数据、也可以将文本去掉英文、去掉数字等等

    几万个号码提取也就几分钟,再也不需要一个一个复制了解放双手玩游戏了

    如果有其他规则的数据提取

    可以在评论区留言,我们根据需求更新软件即可

    好了不赘诉了,下面是软件地址,有需求的可以已下载试试:

    CSDN贵族下载地址:https://download.csdn.net/download/bbyn3316/16307383

    百度云盘下载地址:https://pan.baidu.com/s/1TJ2H1oJgdh0d41ENCSUd5w 提取码:8888 

    腾讯云盘下载地址:https://share.weiyun.com/xrOW6pdR

     

     

    展开全文
  • using System; using System.Collections.Generic; using System.Text; using System.IO; using Microsoft.Win32;...using Microsoft.Office.Interop.Word; using System.Net; using System.Web; using System

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using Microsoft.Win32;
    using Microsoft.Office.Interop.Word;
    using System.Net;
    using System.Web;
    using System.Text.RegularExpressions;

    namespace OfficeOperate
    {
        public class WordOperate
        {

            #region 新建Word文档
            /// <summary>
            /// 动态生成Word文档并填充内容 
            /// </summary>
            /// <param name="dir">文档目录</param>
            /// <param name="fileName">文档名</param>
            /// <returns>返回自定义信息</returns>
            public static bool CreateWordFile(string dir, string fileName)
            {
                try
                {
                    Object oMissing = System.Reflection.Missing.Value;

                    if (!Directory.Exists(dir))
                    {
                        //创建文件所在目录
                        Directory.CreateDirectory(dir);
                    }
                    //创建Word文档(Microsoft.Office.Interop.Word)
                    Microsoft.Office.Interop.Word._Application WordApp = new Application();
                    WordApp.Visible = true;
                    Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Add(
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing);
                                    
                    //保存
                    object filename = dir + fileName;
                    WordDoc.SaveAs(ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
                    WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
                    WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                    return true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.StackTrace);
                    return false;
                }
            }

            #endregion 新建Word文档

            #region 给word文档添加页眉页脚
            /// <summary>
            /// 给word文档添加页眉
            /// </summary>
            /// <param name="filePath">文件名</param>
            /// <returns></returns>
            public static bool AddPageHeaderFooter(string filePath)
            {
                try
                {
                    Object oMissing = System.Reflection.Missing.Value;
                    Microsoft.Office.Interop.Word._Application WordApp = new Application();
                    WordApp.Visible = true;
                    object filename = filePath;
                    Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing, 
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                    添加页眉方法一:
                    //WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;
                    //WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;
                    //WordApp.ActiveWindow.ActivePane.Selection.InsertAfter( "**公司" );//页眉内容

                    添加页眉方法二:
                    if (WordApp.ActiveWindow.ActivePane.View.Type == WdViewType.wdNormalView ||
                        WordApp.ActiveWindow.ActivePane.View.Type == WdViewType.wdOutlineView)
                    {
                        WordApp.ActiveWindow.ActivePane.View.Type = WdViewType.wdPrintView;
                    }
                    WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekCurrentPageHeader;
                    WordApp.Selection.HeaderFooter.LinkToPrevious = false;
                    WordApp.Selection.HeaderFooter.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
                    WordApp.Selection.HeaderFooter.Range.Text = "页眉内容";
                    
                    WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekCurrentPageFooter;
                    WordApp.Selection.HeaderFooter.LinkToPrevious = false;
                    WordApp.Selection.HeaderFooter.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
                    WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("页脚内容");

                    //跳出页眉页脚设置
                    WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;

                    //保存
                    WordDoc.Save();
                    WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
                    WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                    return true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.StackTrace);
                    return false;
                }
            }
            #endregion 给word文档添加页眉页脚

            #region 设置文档格式并添加文本内容
            /// <summary>
            /// 设置文档格式并添加文本内容
            /// </summary>
            /// <param name="filePath">文件名</param>
            /// <returns></returns>
            public static bool AddContent(string filePath)
            {
                try
                {
                    Object oMissing = System.Reflection.Missing.Value;
                    Microsoft.Office.Interop.Word._Application WordApp = new Application();
                    WordApp.Visible = true;
                    object filename = filePath;
                    Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing,
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                    //设置居左
                    WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;

                    //设置文档的行间距
                    WordApp.Selection.ParagraphFormat.LineSpacing = 15f;
                    //插入段落
                    //WordApp.Selection.TypeParagraph();
                    Microsoft.Office.Interop.Word.Paragraph para;
                    para = WordDoc.Content.Paragraphs.Add(ref oMissing);
                    //正常格式
                    para.Range.Text = "This is paragraph 1";
                    //para.Range.Font.Bold = 2;
                    //para.Range.Font.Color = WdColor.wdColorRed;
                    //para.Range.Font.Italic = 2;
                    para.Range.InsertParagraphAfter();

                    para.Range.Text = "This is paragraph 2";
                    para.Range.InsertParagraphAfter();

                    //插入Hyperlink
                    Microsoft.Office.Interop.Word.Selection mySelection = WordApp.ActiveWindow.Selection;
                    mySelection.Start = 9999;
                    mySelection.End = 9999;
                    Microsoft.Office.Interop.Word.Range myRange = mySelection.Range;
                                    
                    Microsoft.Office.Interop.Word.Hyperlinks myLinks = WordDoc.Hyperlinks;
                    object linkAddr = @"http://www.cnblogs.com/lantionzy";
                    Microsoft.Office.Interop.Word.Hyperlink myLink = myLinks.Add(myRange, ref linkAddr, 
                        ref oMissing);
                    WordApp.ActiveWindow.Selection.InsertAfter("/n");
                  
                    //落款
                    WordDoc.Paragraphs.Last.Range.Text = "文档创建时间:" + DateTime.Now.ToString();
                    WordDoc.Paragraphs.Last.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;

                    //保存
                    WordDoc.Save();
                    WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
                    WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                    return true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.StackTrace);
                    return false;
                }
            }

            #endregion 设置文档格式并添加文本内容

            #region 文档中添加图片
            /// <summary>
            /// 文档中添加图片
            /// </summary>
            /// <param name="filePath">word文件名</param>
            /// <param name="picPath">picture文件名</param>
            /// <returns></returns>
            public static bool AddPicture(string filePath, string picPath)
            {
                try
                {
                    Object oMissing = System.Reflection.Missing.Value;
                    Microsoft.Office.Interop.Word._Application WordApp = new Application();
                    WordApp.Visible = true;
                    object filename = filePath;
                    Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing,
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                    //移动光标文档末尾
                    object count = WordDoc.Paragraphs.Count;
                    object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdParagraph;
                    WordApp.Selection.MoveDown(ref WdLine, ref count, ref oMissing);//移动焦点
                    WordApp.Selection.TypeParagraph();//插入段落

                    object LinkToFile = false;
                    object SaveWithDocument = true;
                    object Anchor = WordDoc.Application.Selection.Range;
                    WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(picPath, ref LinkToFile, ref SaveWithDocument, ref Anchor);

                    //保存
                    WordDoc.Save();
                    WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
                    WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                    return true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.StackTrace);
                    return false;
                }
            }
            #endregion 文档中添加图片

            #region 表格处理(插入表格、设置格式、填充内容)
            /// <summary>
            /// 表格处理
            /// </summary>
            /// <param name="filePath">word文件名</param>
            /// <returns></returns>
            public static bool AddTable(string filePath)
            {
                try
                {
                    Object oMissing = System.Reflection.Missing.Value;
                    Microsoft.Office.Interop.Word._Application WordApp = new Application();
                    WordApp.Visible = true;
                    object filename = filePath;
                    Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                    //插入表格
                    Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12, 3, ref oMissing, ref oMissing);
                    //设置表格
                    newTable.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleThickThinLargeGap;
                    newTable.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
                    newTable.Columns[1].Width = 100f;
                    newTable.Columns[2].Width = 220f;
                    newTable.Columns[3].Width = 105f;
                    
                    //填充表格内容
                    newTable.Cell(1, 1).Range.Text = "我的简历";
                    //设置单元格中字体为粗体
                    newTable.Cell(1, 1).Range.Bold = 2;

                    //合并单元格
                    newTable.Cell(1, 1).Merge(newTable.Cell(1, 3));
                    
                    //垂直居中
                    WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
                    //水平居中
                    WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;

                    //填充表格内容
                    newTable.Cell(2, 1).Range.Text = "座右铭:...";
                    //设置单元格内字体颜色
                    newTable.Cell(2, 1).Range.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorDarkBlue;
                    //合并单元格
                    newTable.Cell(2, 1).Merge(newTable.Cell(2, 3));
                    WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;

                    //填充表格内容
                    newTable.Cell(3, 1).Range.Text = "姓名:";
                    newTable.Cell(3, 2).Range.Text = "雷鑫";
                    //纵向合并单元格
                    newTable.Cell(3, 3).Select();
                    //选中一行
                    object moveUnit = Microsoft.Office.Interop.Word.WdUnits.wdLine;
                    object moveCount = 3;
                    object moveExtend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;
                    WordApp.Selection.MoveDown(ref moveUnit, ref moveCount, ref moveExtend);
                    WordApp.Selection.Cells.Merge();

                    //表格中插入图片
                    string pictureFileName = System.IO.Directory.GetCurrentDirectory() + @"/picture.jpg";
                    object LinkToFile = false;
                    object SaveWithDocument = true;
                    object Anchor = WordDoc.Application.Selection.Range;
                    WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(pictureFileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
                    //图片宽度
                    WordDoc.Application.ActiveDocument.InlineShapes[1].Width = 100f;
                    //图片高度
                    WordDoc.Application.ActiveDocument.InlineShapes[1].Height = 100f;
                    //将图片设置为四周环绕型
                    Microsoft.Office.Interop.Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
                    s.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapSquare;

                    newTable.Cell(12, 1).Range.Text = "备注:";
                    newTable.Cell(12, 1).Merge(newTable.Cell(12, 3));
                    //在表格中增加行
                    WordDoc.Content.Tables[1].Rows.Add(ref oMissing);

                    //保存
                    WordDoc.Save();
                    WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
                    WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                    return true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.StackTrace);
                    return false;
                }
            }
            #endregion #region 表格处理

            #region 把Word文档转化为Html文件
            /// <summary>
            /// 把Word文档转化为Html文件
            /// </summary>
            /// <param name="wordFileName">word文件名</param>
            /// <param name="htmlFileName">要保存的html文件名</param>
            /// <returns></returns>
            public static bool WordToHtml(string wordFileName, string htmlFileName)
            {
                try
                {
                    Object oMissing = System.Reflection.Missing.Value;
                    Microsoft.Office.Interop.Word._Application WordApp = new Application();
                    WordApp.Visible = true;
                    object filename = wordFileName;
                    Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing,
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                        ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                   // Type wordType = WordApp.GetType();
                    // 打开文件
                    Type docsType = WordApp.Documents.GetType();
                    // 转换格式,另存为
                    Type docType = WordDoc.GetType();
                    object saveFileName = htmlFileName;
                    docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, WordDoc, 
                        new object[] { saveFileName, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML });

                    #region 其它格式:
                    ///wdFormatHTML
                    ///wdFormatDocument
                    ///wdFormatDOSText
                    ///wdFormatDOSTextLineBreaks
                    ///wdFormatEncodedText
                    ///wdFormatRTF
                    ///wdFormatTemplate
                    ///wdFormatText
                    ///wdFormatTextLineBreaks
                    ///wdFormatUnicodeText
                    // 退出 Word
                    //wordType.InvokeMember( "Quit", System.Reflection.BindingFlags.InvokeMethod,
                    //    null, WordApp, null );
                    #endregion

                    //保存
                    WordDoc.Save();
                    WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
                    WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                    return true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.StackTrace);
                    return false;
                }
            }
            #endregion 把Word文档转化为Html文件
            
            #region word中添加新表
            /// <summary>
            /// word中添加新表
            /// </summary>
            public static void AddTable()
            {
                object oMissing = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Word._Application WordApp;
                Microsoft.Office.Interop.Word._Document WordDoc;
                WordApp = new Microsoft.Office.Interop.Word.Application();
                WordApp.Visible = true;
                WordDoc = WordApp.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                object start = 0;
                object end = 0;
                Microsoft.Office.Interop.Word.Range tableLocation = WordDoc.Range(ref start, ref end);
                WordDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);//3行4列的表
            }
            #endregion word中添加新表

            #region 在表中插入新行

            /// <summary>
            /// 在表中插入新的1行
            /// </summary>
            public static void AddRow()
            {
                object oMissing = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Word._Application WordApp;
                Microsoft.Office.Interop.Word._Document WordDoc;
                WordApp = new Microsoft.Office.Interop.Word.Application();
                WordApp.Visible = true;
                WordDoc = WordApp.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                object start = 0;
                object end = 0;
                Microsoft.Office.Interop.Word.Range tableLocation = WordDoc.Range(ref start, ref end);
                WordDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

                Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables[1];
                object beforeRow = newTable.Rows[1];
                newTable.Rows.Add(ref beforeRow);
            }
            #endregion

            #region 合并单元格
            /// <summary>
            /// 合并单元格
            /// </summary>
            public static void CombinationCell()
            {
                object oMissing = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Word._Application WordApp;
                Microsoft.Office.Interop.Word._Document WordDoc;
                WordApp = new Microsoft.Office.Interop.Word.Application();
                WordApp.Visible = true;
                WordDoc = WordApp.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                object start = 0;
                object end = 0;
                Microsoft.Office.Interop.Word.Range tableLocation = WordDoc.Range(ref start, ref end);
                WordDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

                Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables[1];
                object beforeRow = newTable.Rows[1];
                newTable.Rows.Add(ref beforeRow);

                Microsoft.Office.Interop.Word.Cell cell = newTable.Cell(2, 1);//2行1列合并2行2列为一起
                cell.Merge(newTable.Cell(2, 2));
                //cell.Merge( newTable.Cell( 1, 3 ) );
            }
            #endregion 合并单元格

            #region 分离单元格
            /// <summary>
            /// 分离单元格
            /// </summary>
            public static void SeparateCell()
            {
                object oMissing = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Word._Application WordApp;
                Microsoft.Office.Interop.Word._Document WordDoc;
                WordApp = new Microsoft.Office.Interop.Word.Application();
                WordApp.Visible = true;
                WordDoc = WordApp.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                object start = 0;
                object end = 0;
                Microsoft.Office.Interop.Word.Range tableLocation = WordDoc.Range(ref start, ref end);
                WordDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

                Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables[1];
                object beforeRow = newTable.Rows[1];
                newTable.Rows.Add(ref beforeRow);

                Microsoft.Office.Interop.Word.Cell cell = newTable.Cell(1, 1);
                cell.Merge(newTable.Cell(1, 2));

                object Rownum = 2;
                object Columnnum = 2;
                cell.Split(ref Rownum, ref  Columnnum);
            }
            #endregion 分离单元格

            #region 通过段落控制插入
            /// <summary>
            /// 通过段落控制插入Insert a paragraph at the beginning of the document.
            /// </summary>
            public static void InsertParagraph()
            {
                object oMissing = System.Reflection.Missing.Value;
                //object oEndOfDoc = "//endofdoc"; 
                //endofdoc is a predefined bookmark

                //Start Word and create a new document.
                Microsoft.Office.Interop.Word._Application WordApp;
                Microsoft.Office.Interop.Word._Document WordDoc;
                WordApp = new Microsoft.Office.Interop.Word.Application();
                WordApp.Visible = true;

                WordDoc = WordApp.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                //Insert a paragraph at the beginning of the document.
                Microsoft.Office.Interop.Word.Paragraph oPara1;
                oPara1 = WordDoc.Content.Paragraphs.Add(ref oMissing);
                oPara1.Range.Text = "Heading 1";
                oPara1.Range.Font.Bold = 1;
                oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.
                oPara1.Range.InsertParagraphAfter();
            }
            #endregion 通过段落控制插入

            #region word文档设置及获取光标位置

            /// <summary>
            /// word文档设置及获取光标位置
            /// </summary>
            public static void WordSet()
            {
                object oMissing = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Word._Application WordApp;
                WordApp = new Microsoft.Office.Interop.Word.Application();

                #region 文档格式设置
                WordApp.ActiveDocument.PageSetup.LineNumbering.Active = 0;//行编号
                WordApp.ActiveDocument.PageSetup.Orientation = Microsoft.Office.Interop.Word.WdOrientation.wdOrientPortrait;//页面方向
                WordApp.ActiveDocument.PageSetup.TopMargin = WordApp.CentimetersToPoints(float.Parse("2.54"));//上页边距
                WordApp.ActiveDocument.PageSetup.BottomMargin = WordApp.CentimetersToPoints(float.Parse("2.54"));//下页边距
                WordApp.ActiveDocument.PageSetup.LeftMargin = WordApp.CentimetersToPoints(float.Parse("3.17"));//左页边距
                WordApp.ActiveDocument.PageSetup.RightMargin = WordApp.CentimetersToPoints(float.Parse("3.17"));//右页边距
                WordApp.ActiveDocument.PageSetup.Gutter = WordApp.CentimetersToPoints(float.Parse("0"));//装订线位置
                WordApp.ActiveDocument.PageSetup.HeaderDistance = WordApp.CentimetersToPoints(float.Parse("1.5"));//页眉
                WordApp.ActiveDocument.PageSetup.FooterDistance = WordApp.CentimetersToPoints(float.Parse("1.75"));//页脚
                WordApp.ActiveDocument.PageSetup.PageWidth = WordApp.CentimetersToPoints(float.Parse("21"));//纸张宽度
                WordApp.ActiveDocument.PageSetup.PageHeight = WordApp.CentimetersToPoints(float.Parse("29.7"));//纸张高度
                WordApp.ActiveDocument.PageSetup.FirstPageTray = Microsoft.Office.Interop.Word.WdPaperTray.wdPrinterDefaultBin;//纸张来源
                WordApp.ActiveDocument.PageSetup.OtherPagesTray = Microsoft.Office.Interop.Word.WdPaperTray.wdPrinterDefaultBin;//纸张来源
                WordApp.ActiveDocument.PageSetup.SectionStart = Microsoft.Office.Interop.Word.WdSectionStart.wdSectionNewPage;//节的起始位置:新建页
                WordApp.ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = 0;//页眉页脚-奇偶页不同
                WordApp.ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = 0;//页眉页脚-首页不同
                WordApp.ActiveDocument.PageSetup.VerticalAlignment = Microsoft.Office.Interop.Word.WdVerticalAlignment.wdAlignVerticalTop;//页面垂直对齐方式
                WordApp.ActiveDocument.PageSetup.SuppressEndnotes = 0;//不隐藏尾注
                WordApp.ActiveDocument.PageSetup.MirrorMargins = 0;//不设置首页的内外边距
                WordApp.ActiveDocument.PageSetup.TwoPagesOnOne = false;//不双面打印
                WordApp.ActiveDocument.PageSetup.BookFoldPrinting = false;//不设置手动双面正面打印
                WordApp.ActiveDocument.PageSetup.BookFoldRevPrinting = false;//不设置手动双面背面打印
                WordApp.ActiveDocument.PageSetup.BookFoldPrintingSheets = 1;//打印默认份数
                WordApp.ActiveDocument.PageSetup.GutterPos = Microsoft.Office.Interop.Word.WdGutterStyle.wdGutterPosLeft;//装订线位于左侧
                WordApp.ActiveDocument.PageSetup.LinesPage = 40;//默认页行数量
                WordApp.ActiveDocument.PageSetup.LayoutMode = Microsoft.Office.Interop.Word.WdLayoutMode.wdLayoutModeLineGrid;//版式模式为“只指定行网格”
                #endregion 文档格式设置

                #region 段落格式设定
                WordApp.Selection.ParagraphFormat.LeftIndent = WordApp.CentimetersToPoints(float.Parse("0"));//左缩进
                WordApp.Selection.ParagraphFormat.RightIndent = WordApp.CentimetersToPoints(float.Parse("0"));//右缩进
                WordApp.Selection.ParagraphFormat.SpaceBefore = float.Parse("0");//段前间距
                WordApp.Selection.ParagraphFormat.SpaceBeforeAuto = 0;//
                WordApp.Selection.ParagraphFormat.SpaceAfter = float.Parse("0");//段后间距
                WordApp.Selection.ParagraphFormat.SpaceAfterAuto = 0;//
                WordApp.Selection.ParagraphFormat.LineSpacingRule = Microsoft.Office.Interop.Word.WdLineSpacing.wdLineSpaceSingle;//单倍行距
                WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;//段落2端对齐
                WordApp.Selection.ParagraphFormat.WidowControl = 0;//孤行控制
                WordApp.Selection.ParagraphFormat.KeepWithNext = 0;//与下段同页
                WordApp.Selection.ParagraphFormat.KeepTogether = 0;//段中不分页
                WordApp.Selection.ParagraphFormat.PageBreakBefore = 0;//段前分页
                WordApp.Selection.ParagraphFormat.NoLineNumber = 0;//取消行号
                WordApp.Selection.ParagraphFormat.Hyphenation = 1;//取消段字
                WordApp.Selection.ParagraphFormat.FirstLineIndent = WordApp.CentimetersToPoints(float.Parse("0"));//首行缩进
                WordApp.Selection.ParagraphFormat.OutlineLevel = Microsoft.Office.Interop.Word.WdOutlineLevel.wdOutlineLevelBodyText;
                WordApp.Selection.ParagraphFormat.CharacterUnitLeftIndent = float.Parse("0");
                WordApp.Selection.ParagraphFormat.CharacterUnitRightIndent = float.Parse("0");
                WordApp.Selection.ParagraphFormat.CharacterUnitFirstLineIndent = float.Parse("0");
                WordApp.Selection.ParagraphFormat.LineUnitBefore = float.Parse("0");
                WordApp.Selection.ParagraphFormat.LineUnitAfter = float.Parse("0");
                WordApp.Selection.ParagraphFormat.AutoAdjustRightIndent = 1;
                WordApp.Selection.ParagraphFormat.DisableLineHeightGrid = 0;
                WordApp.Selection.ParagraphFormat.FarEastLineBreakControl = 1;
                WordApp.Selection.ParagraphFormat.WordWrap = 1;
                WordApp.Selection.ParagraphFormat.HangingPunctuation = 1;
                WordApp.Selection.ParagraphFormat.HalfWidthPunctuationOnTopOfLine = 0;
                WordApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndAlpha = 1;
                WordApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndDigit = 1;
                WordApp.Selection.ParagraphFormat.BaseLineAlignment = Microsoft.Office.Interop.Word.WdBaselineAlignment.wdBaselineAlignAuto;
                #endregion 段落格式设定

                #region 字体格式设定
                WordApp.Selection.Font.NameFarEast = "华文中宋";
                WordApp.Selection.Font.NameAscii = "Times New Roman";
                WordApp.Selection.Font.NameOther = "Times New Roman";
                WordApp.Selection.Font.Name = "宋体";
                WordApp.Selection.Font.Size = float.Parse("14");
                WordApp.Selection.Font.Bold = 0;
                WordApp.Selection.Font.Italic = 0;
                WordApp.Selection.Font.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineNone;
                WordApp.Selection.Font.UnderlineColor = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic;
                WordApp.Selection.Font.StrikeThrough = 0;//删除线
                WordApp.Selection.Font.DoubleStrikeThrough = 0;//双删除线
                WordApp.Selection.Font.Outline = 0;//空心
                WordApp.Selection.Font.Emboss = 0;//阳文
                WordApp.Selection.Font.Shadow = 0;//阴影
                WordApp.Selection.Font.Hidden = 0;//隐藏文字
                WordApp.Selection.Font.SmallCaps = 0;//小型大写字母
                WordApp.Selection.Font.AllCaps = 0;//全部大写字母
                WordApp.Selection.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorAutomatic;
                WordApp.Selection.Font.Engrave = 0;//阴文
                WordApp.Selection.Font.Superscript = 0;//上标
                WordApp.Selection.Font.Subscript = 0;//下标
                WordApp.Selection.Font.Spacing = float.Parse("0");//字符间距
                WordApp.Selection.Font.Scaling = 100;//字符缩放
                WordApp.Selection.Font.Position = 0;//位置
                WordApp.Selection.Font.Kerning = float.Parse("1");//字体间距调整
                WordApp.Selection.Font.Animation = Microsoft.Office.Interop.Word.WdAnimation.wdAnimationNone;//文字效果
                WordApp.Selection.Font.DisableCharacterSpaceGrid = false;
                WordApp.Selection.Font.EmphasisMark = Microsoft.Office.Interop.Word.WdEmphasisMark.wdEmphasisMarkNone;
                #endregion 字体格式设定

                #region 获取光标位置
                get_Information
                WordApp.Selection.get_Information(WdInformation.wdActiveEndPageNumber);
                //关于行号-页号-列号-位置
                //information 属性 
                //返回有关指定的所选内容或区域的信息。variant 类型,只读。 
                //expression.information(type) 
                //expression 必需。该表达式返回一个 range 或 selection 对象。 
                //type long 类型,必需。需要返回的信息。可取下列 wdinformation 常量之一: 
                //wdactiveendadjustedpagenumber 返回页码,在该页中包含指定的所选内容或区域的活动结尾。如果设置了一个起始页码,并对页码进行了手工调整,则返回调整过的页码。 
                //wdactiveendpagenumber 返回页码,在该页中包含指定的所选内容或区域的活动结尾,页码从文档的开头开始计算而不考虑对页码的任何手工调整。 
                //wdactiveendsectionnumber 返回节号,在该节中包含了指定的所选内容或区域的活动结尾。 
                //wdatendofrowmarker 如果指定的所选内容或区域位于表格的行结尾标记处,则本参数返回 true。 
                //wdcapslock 如果大写字母锁定模式有效,则本参数返回 true。 
                //wdendofrangecolumnnumber 返回表格列号,在该表格列中包含了指定的所选内容或区域的活动结尾。 
                //wdendofrangerownumber 返回表格行号,在该表格行包含了指定的所选内容或区域的活动结尾。 
                //wdfirstcharactercolumnnumber 返回指定的所选内容或区域中第一个字符的位置。如果所选内容或区域是折叠的,则返回所选内容或区域右侧紧接着的字符编号。 
                //wdfirstcharacterlinenumber 返回所选内容中第一个字符的行号。如果 pagination 属性为 false,或 draft 属性为 true,则返回 - 1。 
                //wdframeisselected 如果所选内容或区域是一个完整的图文框文本框,则本参数返回 true。 
                //wdheaderfootertype 返回一个值,该值表明包含了指定的所选内容或区域的页眉或页脚的类型,如下表所示。 值 页眉或页脚的类型 
                //- 1 无 
                //0 偶数页页眉 
                //1 奇数页页眉 
                //2 偶数页页脚 
                //3 奇数页页脚 
                //4 第一个页眉 
                //5 第一个页脚 
                //wdhorizontalpositionrelativetopage 返回指定的所选内容或区域的水平位置。该位置是所选内容或区域的左边与页面的左边之间的距离,以磅为单位。如果所选内容或区域不可见,则返回 - 1。 
                //wdhorizontalpositionrelativetotextboundary 返回指定的所选内容或区域相对于周围最近的正文边界的左边的水平位置,以磅为单位。如果所选内容或区域没有显示在当前屏幕,则本参数返回 - 1。 
                //wdinclipboard 有关此常量的详细内容,请参阅 microsoft office 98 macintosh 版的语言参考帮助。 
                //wdincommentpane 如果指定的所选内容或区域位于批注窗格,则返回 true。 
                //wdinendnote 如果指定的所选内容或区域位于页面视图的尾注区内,或者位于普通视图的尾注窗格中,则本参数返回 true。 
                //wdinfootnote 如果指定的所选内容或区域位于页面视图的脚注区内,或者位于普通视图的脚注窗格中,则本参数返回 true。 
                //wdinfootnoteendnotepane 如果指定的所选内容或区域位于页面视图的脚注或尾注区内,或者位于普通视图的脚注或尾注窗格中,则本参数返回 true。详细内容,请参阅前面的 wdinfootnote 和 wdinendnote 的说明。 
                //wdinheaderfooter 如果指定的所选内容或区域位于页眉或页脚窗格中,或者位于页面视图的页眉或页脚中,则本参数返回 true。 
                //wdinmasterdocument 如果指定的所选内容或区域位于主控文档中,则本参数返回 true。 
                //wdinwordmail 返回一个值,该值表明了所选内容或区域的的位置,如下表所示。值 位置 
                //0 所选内容或区域不在一条电子邮件消息中。 
                //1 所选内容或区域位于正在发送的电子邮件中。 
                //2 所选内容或区域位于正在阅读的电子邮件中。 
                //wdmaximumnumberofcolumns 返回所选内容或区域中任何行的最大表格列数。 
                //wdmaximumnumberofrows 返回指定的所选内容或区域中表格的最大行数。 
                //wdnumberofpagesindocument 返回与所选内容或区域相关联的文档的页数。 
                //wdnumlock 如果 num lock 有效,则本参数返回 true。 
                //wdovertype 如果改写模式有效,则本参数返回 true。可用 overtype 属性改变改写模式的状态。 
                //wdreferenceoftype 返回一个值,该值表明所选内容相对于脚注、尾注或批注引用的位置,如下表所示。 值 描述 
                //— 1 所选内容或区域包含、但不只限定于脚注、尾注或批注引用中。 
                //0 所选内容或区域不在脚注、尾注或批注引用之前。 
                //1 所选内容或区域位于脚注引用之前。 
                //2 所选内容或区域位于尾注引用之前。 
                //3 所选内容或区域位于批注引用之前。 
                //wdrevisionmarking 如果修订功能处于活动状态,则本参数返回 true。 
                //wdselectionmode 返回一个值,该值表明当前的选定模式,如下表所示。 值 选定模式 
                //0 常规选定 
                //1 扩展选定 
                //2 列选定 
                //wdstartofrangecolumnnumber 返回所选内容或区域的起点所在的表格的列号。 
                //wdstartofrangerownumber 返回所选内容或区域的起点所在的表格的行号。 
                //wdverticalpositionrelativetopage 返回所选内容或区域的垂直位置,即所选内容的上边与页面的上边之间的距离,以磅为单位。如果所选内容或区域没有显示在屏幕上,则本参数返回 - 1。 
                //wdverticalpositionrelativetotextboundary 返回所选内容或区域相对于周围最近的正文边界的上边的垂直位置,以磅为单位。如果所选内容或区域没有显示在屏幕上,则本参数返回 - 1。 
                //wdwithintable 如果所选内容位于一个表格中,则本参数返回 true。 
                //wdzoompercentage 返回由 percentage 属性设置的当前的放大百分比。
                #endregion 获取光标位置

                #region 光标移动
                //移动光标
                //光标下移3行 上移3行
                object unit = Microsoft.Office.Interop.Word.WdUnits.wdLine;
                object count = 3;
                WordApp.Selection.MoveEnd(ref unit, ref count);
                WordApp.Selection.MoveUp(ref unit, ref count, ref oMissing);

                //Microsoft.Office.Interop.Word.WdUnits说明
                //wdCell                  A cell. 
                //wdCharacter             A character. 
                //wdCharacterFormatting   Character formatting. 
                //wdColumn                A column. 
                //wdItem                  The selected item. 
                //wdLine                  A line. //行
                //wdParagraph             A paragraph. 
                //wdParagraphFormatting   Paragraph formatting. 
                //wdRow                   A row. 
                //wdScreen                The screen dimensions. 
                //wdSection               A section. 
                //wdSentence              A sentence. 
                //wdStory                 A story. 
                //wdTable                 A table. 
                //wdWindow                A window. 
                //wdWord                  A word.

                //录制的vb宏
                //     ,移动光标至当前行首
                //    Selection.HomeKey unit:=wdLine
                //    '移动光标至当前行尾
                //    Selection.EndKey unit:=wdLine
                //    '选择从光标至当前行首的内容
                //    Selection.HomeKey unit:=wdLine, Extend:=wdExtend
                //    '选择从光标至当前行尾的内容
                //    Selection.EndKey unit:=wdLine, Extend:=wdExtend
                //    '选择当前行
                //    Selection.HomeKey unit:=wdLine
                //    Selection.EndKey unit:=wdLine, Extend:=wdExtend
                //    '移动光标至文档开始
                //    Selection.HomeKey unit:=wdStory
                //    '移动光标至文档结尾
                //    Selection.EndKey unit:=wdStory
                //    '选择从光标至文档开始的内容
                //    Selection.HomeKey unit:=wdStory, Extend:=wdExtend
                //    '选择从光标至文档结尾的内容
                //    Selection.EndKey unit:=wdStory, Extend:=wdExtend
                //    '选择文档全部内容(从WholeStory可猜出Story应是当前文档的意思)
                //    Selection.WholeStory
                //    '移动光标至当前段落的开始
                //    Selection.MoveUp unit:=wdParagraph
                //    '移动光标至当前段落的结尾
                //    Selection.MoveDown unit:=wdParagraph
                //    '选择从光标至当前段落开始的内容
                //    Selection.MoveUp unit:=wdParagraph, Extend:=wdExtend
                //    '选择从光标至当前段落结尾的内容
                //    Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
                //    '选择光标所在段落的内容
                //    Selection.MoveUp unit:=wdParagraph
                //    Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
                //    '显示选择区的开始与结束的位置,注意:文档第1个字符的位置是0
                //    MsgBox ("第" & Selection.Start & "个字符至第" & Selection.End & "个字符")
                //    '删除当前行
                //    Selection.HomeKey unit:=wdLine
                //    Selection.EndKey unit:=wdLine, Extend:=wdExtend
                //    Selection.Delete
                //    '删除当前段落
                //    Selection.MoveUp unit:=wdParagraph
                //    Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
                //    Selection.Delete


                //表格的光标移动
                //光标到当前光标所在表格的地单元格
                WordApp.Selection.Tables[1].Cell(1, 1).Select();
                //unit对象定义
                object unith = Microsoft.Office.Interop.Word.WdUnits.wdRow;//表格行方式
                object extend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;//extend对光标移动区域进行扩展选择
                object unitu = Microsoft.Office.Interop.Word.WdUnits.wdLine;//文档行方式,可以看成表格一行.不过和wdRow有区别
                object unitp = Microsoft.Office.Interop.Word.WdUnits.wdParagraph;//段落方式,对于表格可以选择到表格行后的换车符,对于跨行合并的行选择,我能找到的最简单方式
                //object count = 1;//光标移动量

                #endregion 光标移动
            }
            #endregion word文档设置及获取光标位置

            #region 读取Word表格中某个单元格的数据。其中的参数分别为文件名(包括路径),行号,列号。

            /// <summary>
            /// 读取Word表格中某个单元格的数据。其中的参数分别为文件名(包括路径),行号,列号。
            /// </summary>
            /// <param name="fileName">word文档</param>
            /// <param name="rowIndex">行</param>
            /// <param name="colIndex">列</param>
            /// <returns>返回数据</returns>
            public static string ReadWord_tableContentByCell(string fileName, int rowIndex, int colIndex)
            {
                Microsoft.Office.Interop.Word._Application cls = null;
                Microsoft.Office.Interop.Word._Document doc = null;
                Microsoft.Office.Interop.Word.Table table = null;
                object missing = System.Reflection.Missing.Value;
                object path = fileName;
                cls = new Application();
                try
                {
                    doc = cls.Documents.Open
                      (ref path, ref missing, ref missing, ref missing,
                      ref missing, ref missing, ref missing, ref missing,
                      ref missing, ref missing, ref missing, ref missing,
                      ref missing, ref missing, ref missing, ref missing);
                    table = doc.Tables[1];
                    string text = table.Cell(rowIndex, colIndex).Range.Text.ToString();
                    text = text.Substring(0, text.Length - 2);  //去除尾部的mark
                    return text;
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
                finally
                {
                    if (doc != null)
                        doc.Close(ref missing, ref missing, ref missing);
                    cls.Quit(ref missing, ref missing, ref missing);
                }
            }
            #endregion 读取Word表格中某个单元格的数据。
            
            #region 修改word表格中指定单元格的数据
            /// <summary>
            /// 修改word表格中指定单元格的数据
            /// </summary>
            /// <param name="fileName">word文档包括路径</param>
            /// <param name="rowIndex">行</param>
            /// <param name="colIndex">列</param>
            /// <param name="content"></param>
            /// <returns></returns>
            public static bool UpdateWordTableByCell(string fileName, int rowIndex, int colIndex, string content)
            {
                Microsoft.Office.Interop.Word._Application cls = null;
                Microsoft.Office.Interop.Word._Document doc = null;
                Microsoft.Office.Interop.Word.Table table = null;
                object missing = System.Reflection.Missing.Value;
                object path = fileName;
                cls = new Application();
                try
                {
                    doc = cls.Documents.Open
                        (ref path, ref missing, ref missing, ref missing,
                      ref missing, ref missing, ref missing, ref missing,
                      ref missing, ref missing, ref missing, ref missing,
                      ref missing, ref missing, ref missing, ref missing);

                    table = doc.Tables[1];
                    //doc.Range( ref 0, ref 0 ).InsertParagraphAfter();//插入回车
                    table.Cell(rowIndex, colIndex).Range.InsertParagraphAfter();//.Text = content;
                    return true;
                }
                catch
                {
                    return false;
                }
                finally
                {
                    if (doc != null)
                    {
                        doc.Close(ref missing, ref missing, ref missing);
                        cls.Quit(ref missing, ref missing, ref missing);
                    }
                }
            }
            #endregion

            #region 关闭word进程
            /// <summary>
            /// 关闭word进程
            /// </summary>
            public static void KillWordProcess()
            {
                System.Diagnostics.Process[] myProcess;
                myProcess = System.Diagnostics.Process.GetProcesses();
                foreach (System.Diagnostics.Process process in myProcess)
                {
                    if (process.Id != 0)
                    {
                        string myS = "WINWORD.EXE" + process.ProcessName + "  ID:" + process.Id.ToString();
                        try
                        {
                            if (process.Modules != null)
                                if (process.Modules.Count > 0)
                                {
                                    System.Diagnostics.ProcessModule pm = process.Modules[0];
                                    myS += "/n Modules[0].FileName:" + pm.FileName;
                                    myS += "/n Modules[0].ModuleName:" + pm.ModuleName;
                                    myS += "/n Modules[0].FileVersionInfo:/n" + pm.FileVersionInfo.ToString();
                                    if (pm.ModuleName.ToLower() == "winword.exe")
                                        process.Kill();
                                }
                        }
                        catch
                        { }
                        finally
                        {
                        }
                    }
                }
            }
            #endregion 关闭word进程

            #region 判断系统是否装word

            /// <summary>
            /// 判断系统是否装word
            /// </summary>
            /// <returns></returns>
            public static bool IsWordInstalled()
            {
                RegistryKey machineKey = Registry.LocalMachine;
                if (IsWordInstalledByVersion("12.0", machineKey))
                {
                    return true;
                }
                if (IsWordInstalledByVersion("11.0", machineKey))
                {
                    return true;
                }
                return false;
            }


            /// <summary>
            /// 判断系统是否装某版本的word
            /// </summary>
            /// <param name="strVersion">版本号</param>
            /// <param name="machineKey"></param>
            /// <returns></returns>
            private static bool IsWordInstalledByVersion(string strVersion, RegistryKey machineKey)
            {
                try
                {
                    RegistryKey installKey = 
                        machineKey.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey(
                        "Office").OpenSubKey(strVersion).OpenSubKey("Word").OpenSubKey("InstallRoot");
                    if (installKey == null)
                    {
                        return false;
                    }
                    return true;
                }
                catch(Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.StackTrace);
                    return false;
                }
            }
            #endregion 判断系统是否装word
        }
    }

     转自:http://kb.cnblogs.com/a/1588511/

    展开全文
  • 需求:根据word模板,动态填充模板内容,生成新的word。 实现:获取数据库数据,根据word模板填充内容,生成新的word文档。 应用场景:笔者的应用场景是生成客户合同,根据用户提交的具体合同内容,填充进合同模板内...

    一、需求(实现功能)

    需求:根据word模板,动态填充模板内容,生成新的word。
    实现:获取数据库数据,根据word模板填充内容,生成新的word文档。
    应用场景:笔者的应用场景是生成客户合同,根据用户提交的具体合同内容,填充进合同模板内,生成新的word即填充了内容的完整合同。

    二、使用技术

    1、poi-tl

    poi-tl(poi template language)是基于Apache POI的Word模板引擎,纯Java组件,跨平台,代码短小精悍,通过插件机制使其具有高度扩展性。
    官方文档:poi-tl官方文档

    2、poi-tl的优点

    根据官方文档介绍,poi-tl具有以下优点:
    A、支持动态填充文本、图片、表格、列表、文档
    B、支持DOCX格式,所有的模板标签都是以 {{ 开头,以 }} 结尾,模板标签可以出现在任何非文本框的位置,包括页眉,页脚,表格内部等等。
    C、poi-tl的一个核心特点是数据模型与样式的分离,同样的数据模型可以用来渲染各种不同样式的模板。
    D、文档的样式继承模板标签的样式,即如果模板{{title}}是蓝色微软雅黑加粗四号字体,则替换后的文本也是蓝色微软雅黑加粗四号字体。

    三、具体应用

    1、依赖

    <dependency>
        <groupId>com.deepoove</groupId>
        <artifactId>poi-tl</artifactId>
        <version>1.5.0</version>
    </dependency>
    

    2、Java类

    import com.deepoove.poi.XWPFTemplate;
    import com.deepoove.poi.data.PictureRenderData;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.util.Assert;
    
    import java.io.File;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @author Jerry
     * @Title: WordUtil
     * @Description: Word工具类
     * @date 219/10/6 9:09
     */
    public class WordUtil {
    
        private static Logger logger = LoggerFactory.getLogger(WordUtil.class);
    
    
        /**
         * 根据模板填充内容生成word
         * 调用方法参考下面的main方法,详细文档参考官方文档
         * Poi-tl模板引擎官方文档:http://deepoove.com/poi-tl/
         *
         * @param templatePath word模板文件路径
         * @param fileDir      生成的文件存放地址
         * @param fileName     生成的文件名,不带格式。假如要生成abc.docx,则fileName传入abc即可
         * @param paramMap     替换的参数集合
         * @return 生成word成功返回生成的文件的路径,失败返回空字符串
         */
        public static String createWord(String templatePath, String fileDir, String fileName, Map<String, Object> paramMap) {
            Assert.notNull(templatePath, "word模板文件路径不能为空");
            Assert.notNull(fileDir, "生成的文件存放地址不能为空");
            Assert.notNull(fileName, "生成的文件名不能为空");
    
            // 生成的word格式
            String formatSuffix = ".docx";
            // 拼接后的文件名
            fileName = fileName + formatSuffix;
    
            // 生成的文件的存放路径
            if (!fileDir.endsWith("/")) {
                fileDir = fileDir + File.separator;
            }
    
            File dir = new File(fileDir);
            if (!dir.exists()) {
                logger.info("生成word数据时存储文件目录{}不存在,为您创建文件夹!", fileDir);
                dir.mkdirs();
            }
    
            String filePath = fileDir + fileName;
            // 读取模板templatePath并将paramMap的内容填充进模板,即编辑模板+渲染数据
            XWPFTemplate template = XWPFTemplate.compile(templatePath).render(paramMap);
            try {
                // 将填充之后的模板写入filePath
                template.writeToFile(filePath);
                template.close();
            } catch (Exception e) {
                logger.error("生成word异常", e);
                e.printStackTrace();
                return "";
            }
            return filePath;
        }
        
        public static void main(String[] args) {
            Map<String, Object> params = new HashMap<>();
            // 渲染文本
            params.put("projectName", "XXX工程");
            ...
            // 渲染图片
            params.put("picture", new PictureRenderData(120, 120, "D:\\wx.png"));
            // TODO 渲染其他类型的数据请参考官方文档
            String templatePath = "D:\\zdd.docx";
            String fileDir = "D:\\template";
            String fileName = "zdd2";
    
            String wordPath = WordUtil.createWord(templatePath, fileDir, fileName, params);
            System.out.println("生成文档路径:" + wordPath);
        }
    }
    

    3、word模板格式

    在这里插入图片描述

    4、最终生成word的效果

    在这里插入图片描述

    四、存在问题

    poi-tl依赖的是poi 3.16版本,包括poi-ooxml、poi、poi-ooxml-schemas三个依赖,如果项目中有这三个依赖的其他版本可能会导致上面的代码报错,因此最好是使用3.16版本的这三个依赖。

    个人笔记:http://note.youdao.com/noteshare?id=e45282913259ab8043d823f2ec883299

    展开全文
  • SpringBoot 项目使用poi-tl实现导出word功能: 获取数据录入到固定的word模板,最后生成新的word文档。 ...一、需求 根据word模板,动态填充模板...Apache POI不仅在上层封装了易用的文档API(文本、图片、表格、页眉、页脚
  • C#操作MicroSoft Word的代码

    千次阅读 2017-08-07 14:08:58
    C#操作Microsoft Office的代码本代码包含: word的创建 插入文字,选择文字,编辑文字的字号、粗细、...插入表格,格式化表格,往表格中插入数据 保存word,打印wordword文档装化为Html文件 word模板的导入与导出
  • 一、C# Word操作引入Word COM组件菜单=》项目=》添加引用=》COM=》Microsoft Word 11.0 Object Libraryusing Word = Microsoft.Office.Interop.Word;1、功能:将数据以自制表格形式插入WOR
  • word学习道路

    2019-07-26 23:50:37
    我要干掉word! 界面:视图 选项卡 显示比例 快捷摁钮 滚动条 新建:模板 页面边距 版面率 标尺 黄金分割 保存:保护窗体 保存文件 文件本质 文档模板 保存类型 保存位置 传播:打开方式 存取控制 pdf转化 设置密码...
  • Word学习笔记分享

    千次阅读 2019-02-22 13:57:10
    第一章、Word 的常规排版 1-5 文字选择 Ctrl+鼠标选取——多选 Alt+鼠标选取——框选 1-11 文字效果 为文字添加填充与边框 1-13 字体其他效果 为字体添加着重号、删除线、上下标等效果 Ctrl+D ——打开字体选项栏 1-...
  • Python操作Word文档的节属性和页眉/页脚 Python控制Word文件中段落格式与文本格式 Python把PDF文件中每页内容分离为独立图片文件 Python实现Excel与Word文件中表格数据的导入导出 Python+pandas分离Excel数据到同一...
  • C# Word常用操作

    千次阅读 2016-11-24 15:43:44
    一、word文档表格操作、分页及换行//合并单元格 table.Cell(2, 2).Merge(table.Cell(2, 3)); //单元格分离 object Rownum = 2; object Columnnum = 2; table.Cell(2, 2).Split(ref Rownum, ref ...
  • C#操作Word的超详细总结

    千次阅读 2020-02-17 14:31:27
    本文中用C#来操作Word,包括: 创建Word; 插入文字,选择文字,编辑文字的字号、粗细、...插入表格,格式化表格,往表格中插入数据; 保存Word,打印Word; 重新打开Word等。 Visual studio版本:Visual...
  • 需求需求:根据 word 模板,动态填充模板内容,生成新的 word。实现:获取数据库数据,根据 word 模板填充内容,生成新的 word 文档。“应用场景:笔者的应用场景是生成客户合...
  • C#与Word的操作--转载

    2020-08-01 19:13:31
    插入表格,格式化表格,往表格中插入数据; 保存Word,打印Word; 重新打开Word等。 Visual studio版本:Visual Studio 2013(2010应该也可以) 准备工作: /* 添加引用COM里面的 Microsoft Word 12.0
  • word 操作

    2015-07-01 11:21:00
    需要引入类库 Microsoft.Office.Interop.Word using System; using System.Collections.Generic; using System.Text; using Microsoft.Office.Interop.Word; using System.IO; using System.Web; using ...
  • Word001

    2014-12-29 16:06:00
    C# Word 类库 2009-08-06 22:10 13470人阅读 评论(10) 收藏 举报 c#objectstring文档microsoftexcel using System;using System.Collections.Generic;using System.Text;using Microsoft.Office.Interop.Word...
  • WORD类库

    2011-07-10 20:39:22
    Word操作类库C#
  • 一、C# Word操作引入Word COM组件菜单=》项目=》添加引用=》COM=》Microsoft Word 11.0 Object ...1、功能:将数据以自制表格形式插入WORD中2、主要程序代码如下:创建新Wordobject oMissing = System.Reflecti...
  • 本文中用C#来操作Word,包括: 创建Word; 插入文字,选择文字,编辑文字的字号、粗细、颜色、...插入表格,格式化表格,往表格中插入数据; 保存Word,打印Word; 重新打开Word等。 Visual studio版本:V...
  • C# word类库

    2019-07-23 22:01:48
    using System; using System.Collections.Generic;...using Microsoft.Office.Interop.Word; using System.IO; using System.Web; using System.Data; using System.Reflection; using Mic...
  • c# word 操作

    2016-02-19 00:17:00
    1 public class WordOperate 2 { 3 4 #region 新建Word文档 5 /// <summary> 6 /// 动态生成Word文档并填充内容 7 /// </summary> 8 ///...
  • c# 操作Word总结

    2017-08-25 09:54:00
    当把数据保存到数据库中,需要新建很多的字段,而且操作很繁琐,于是想到网页的信息创建到一个word文本中,在显示的时,可以在线打开word,也可以把word转换成html标签显示。 这样使用word代替网页的原因有:  第一...
  • word2010学习

    2020-06-29 09:39:33
    表格制作 绘图 写书排版 所有功能设置都在选项中设置。 功能区: 开发工具 快速访问工具栏 浮动工具栏 1-3节: 打开:保存,设置保存的格式是doc还是docx 加密保存的文件 打开前预览,可以在右边看到打开前的预览...
  • word2003编程

    2011-08-01 16:10:00
    注意,下文的WAPP是我定义的word文档工程变量的//合并单元格table.Cell(2,2).Merge(table.Cell(2,3));//单元格分离objectRownum=2;objectColumnnum=2;table.Cell(2,2).Split(refRownum,refColumnnum);//单元...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 989
精华内容 395
关键字:

word表格文本框分离