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());
                            }
                        }
                    }
                }
            }
  • 相关阅读:
    .net批量插入SqlServer数据库的方法:
    Google主页中国元宵节
    左岸读书你是想读书,还是想读完书?
    Google主页中国著名教育家和画家 丰子恺先生 诞辰114周年
    【转载】图的遍历
    Google主页爱尔兰作家 布拉姆斯托克诞辰165周年
    诺基亚黯然关闭其在欧洲的最后一个手机工厂的背后
    [POJ 1012] Joseph(约瑟夫)
    台湾南投3.27地震
    左岸读书语不惊人死不休(95)
  • 原文地址:https://www.cnblogs.com/niuge/p/9289443.html
Copyright © 2011-2022 走看看