在开始做之前,首先百度了Word有没有简单的生成方法,果然有--页面布局->稿纸设置->方格式稿纸
效果如下图所示。很规范,但是不是答题卡所需要的,因为这样会把所有页面都设置为这样的稿纸。
搜索了很久,没有找到现成的方法,但是受到了一些启示,因此我做出来以下效果的作文表格:
和作文纸很像了,可以根据具体规格稍加调整即可用了。具体方法很简单,就是表格操作。
具体操作:
-
先插入1列多行的表格
再在一行中插入1行多列
-
调整外表格的表格属性,选中外表格不太好选中,我是点击右下角选中的
-
然后调整方格大小,并插满一行
-
复制一行到其他行,
-
最后一步就是把外表格的边框去掉,选中不好选,我是通过拉大最后一行选中外表格,最后得到完美表格
最后,根据这样的方法,可以利用VSTO直接生成作文表格,代码如下:
public void AddWritten(Range range)
{
range.MoveEnd();
Document doc = Globals.ThisAddIn.Application.ActiveDocument;
Table t = range.Tables.Add(range, , );
foreach (Row item in t.Rows)
{
item.Height = ;
Range rowRange = item.Cells [].Range;
Table rowT = rowRange.Tables.Add(rowRange, , );
rowT.Rows.Height = ;
rowT.Columns.Width = ;
rowT.Borders[WdBorderType.wdBorderTop].LineStyle = WdLineStyle.wdLineStyleSingle;
rowT.Borders[WdBorderType.wdBorderBottom].LineStyle = WdLineStyle.wdLineStyleSingle;
rowT.Borders[WdBorderType.wdBorderLeft].LineStyle = WdLineStyle.wdLineStyleSingle;
rowT.Borders[WdBorderType.wdBorderRight].LineStyle = WdLineStyle.wdLineStyleSingle;
rowT.Borders[WdBorderType.wdBorderVertical].LineStyle = WdLineStyle.wdLineStyleSingle;
rowT.Borders[WdBorderType.wdBorderHorizontal].LineStyle = WdLineStyle.wdLineStyleSingle;
item.Cells.VerticalAlignment =WdCellVerticalAlignment.wdCellAlignVerticalCenter;
}
doc.Paragraphs.Add(); }