c#生成试卷。。。
.net下,操作Word的插件有NPOI,Spire,一版大家经常用的是NPOI,我在着手开发的时候,优先考虑的也是NPOI,然而时间比较着急,没有找到NPOI支持2003版本,
就放弃了,从网上发行Spire也可以支持Office的操作,就研究了一下。。。
注意,下载的时候要使用Free Spire.Doc版本,不要使用付费版本,非Free版本,生成的会有 红色提示。。标志
附上生成表格的方法。。
特别注意的是Section尽量用原来的。。
private void addDTK(Section section, int ishitinum) { int tihao = 1; if(ishitinum<=0) { return; } int isize = 10; int iRow = ishitinum / isize;//要加上一列。。。题号/答案显示文本 if (ishitinum % isize != 0) { iRow += 1; } if (ishitinum < isize)//防止多造单元格。。 { isize = ishitinum; } //实际上要创建2*iRow行10列的表格 Table table = section.AddTable(true); //table.ApplyStyle(DefaultTableStyle.DarkList); table.ResetCells(2*iRow, isize + 1); //table.ResetCells(2 * iRow, isize); for (int i = 0; i < iRow * 2; i++) { TableRow row = table.Rows[i]; //table.Rows[0].Cells[0].Width = table.Rows[0].Cells[1].Width = 50; //table.Rows[1].Cells[0].Width = table.Rows[1].Cells[1].Width = 150; for (int j = 0; j < (isize + 1); j++)//isize+1考虑到第一列。。 { row.Cells[j].Width = 50;//这个地方控制列宽 //题号都是奇数行 if (i % 2 != 0)//如果是奇数行,值设置j=0的单元格 { if (j == 0) { Paragraph para1 = row.Cells[0].AddParagraph(); TextRange TR1 = para1.AppendText("答案"); } } else { Paragraph para1 = row.Cells[j].AddParagraph(); if (j == 0) { TextRange TR1 = para1.AppendText("题号"); } else { if (tihao > ishitinum) { break; } para1.AppendText((tihao++).ToString()); } } } } }