zoukankan      html  css  js  c++  java
  • 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());
                            }
                        }
                    }
                }
            }
  • 相关阅读:
    运行了unittest没有结果返回
    python学习笔记11.2-unittest的使用与报告生成
    python学习笔记11.1-类的继承与动态属性的设置
    docker概念
    python学习笔记10-方法
    python学习笔记9-类和对象
    python学习笔记8-异常处理
    python学习笔记2-字典和列表
    3.JavaScript-语法、关键保留字及变量
    如何实现导航菜单栏中的二级下拉菜单?
  • 原文地址:https://www.cnblogs.com/niuge/p/9289443.html
Copyright © 2011-2022 走看看