答题卡作文模块的一种方法-VSTO

Posted betty-it

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了答题卡作文模块的一种方法-VSTO相关的知识,希望对你有一定的参考价值。

 

在开始做之前,首先百度了Word有没有简单的生成方法,果然有--页面布局->稿纸设置->方格式稿纸

技术分享图片

效果如下图所示。很规范,但是不是答题卡所需要的,因为这样会把所有页面都设置为这样的稿纸。

技术分享图片

搜索了很久,没有找到现成的方法,但是受到了一些启示,因此我做出来以下效果的作文表格:

技术分享图片

和作文纸很像了,可以根据具体规格稍加调整即可用了。具体方法很简单,就是表格操作。

具体操作:

  1. 先插入1列多行的表格

    技术分享图片

  2. 再在一行中插入1行多列

  3. 技术分享图片

  4. 调整外表格的表格属性,选中外表格不太好选中,我是点击右下角选中的

    技术分享图片

    技术分享图片

    技术分享图片

  5. 然后调整方格大小,并插满一行

    技术分享图片

  6. 复制一行到其他行,

    技术分享图片

  7. 最后一步就是把外表格的边框去掉,选中不好选,我是通过拉大最后一行选中外表格,最后得到完美表格

    技术分享图片

 最后,根据这样的方法,可以利用VSTO直接生成作文表格,代码如下:

 1 public void AddWritten(Range range)
 2         {
 3             range.MoveEnd();
 4             Document doc = Globals.ThisAddIn.Application.ActiveDocument;
 5             Table t = range.Tables.Add(range, 10, 1);
 6             foreach (Row item in t.Rows)
 7             {
 8                 item.Height = 32;
 9                 Range rowRange = item.Cells [1].Range;
10                 Table rowT = rowRange.Tables.Add(rowRange, 1, 17);
11                 rowT.Rows.Height = 24;
12                 rowT.Columns.Width = 24;
13                 rowT.Borders[WdBorderType.wdBorderTop].LineStyle = WdLineStyle.wdLineStyleSingle;
14                 rowT.Borders[WdBorderType.wdBorderBottom].LineStyle = WdLineStyle.wdLineStyleSingle;
15                 rowT.Borders[WdBorderType.wdBorderLeft].LineStyle = WdLineStyle.wdLineStyleSingle;
16                 rowT.Borders[WdBorderType.wdBorderRight].LineStyle = WdLineStyle.wdLineStyleSingle;
17                 rowT.Borders[WdBorderType.wdBorderVertical].LineStyle = WdLineStyle.wdLineStyleSingle;
18                 rowT.Borders[WdBorderType.wdBorderHorizontal].LineStyle = WdLineStyle.wdLineStyleSingle;
19                 item.Cells.VerticalAlignment =WdCellVerticalAlignment.wdCellAlignVerticalCenter;
20             }
21             doc.Paragraphs.Add();
22 
23         }

 

以上是关于答题卡作文模块的一种方法-VSTO的主要内容,如果未能解决你的问题,请参考以下文章

为啥用VSTO代替VBA-VSTO 源码技巧区

VSTO Excel 功能区选项卡 - 将代码 (.NET) 分离到模块中

有条件地导入 python 类的片段

有关职业的英语作文

vsto 如何在range中插入变量

VSTO开发之一