StarkSoft题库管理系统(二)--生成word格式试卷

导出试卷到WORD

#region 创建word试卷(直接导出为word)
        /// <summary>
        /// 创建word试卷
        /// </summary>
        /// <param name="PathName"></param>
        public void CreateWordFile(string PathName)
        {
            try
            {
                Object Nothing = System.Reflection.Missing.Value;
                object filename = PathName;  //文件保存路径
                //1.创建Word文档
                Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
                Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);

                //2.添加页眉
                WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;
                WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;
                WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("[入职考试试卷]");
                WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;//设置右对齐
                WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;//跳出页眉设置
                WordApp.Selection.ParagraphFormat.LineSpacing = 8f;//设置文档的行间距
                //3.移动焦点并换行
                object count = 14;
                object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdLine;//换一行;
                WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点
                WordApp.Selection.TypeParagraph();//插入段落
                #region 标题
                WordApp.Selection.Font.Size = 20;
                WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; // 居中
                WordApp.Selection.Font.Bold = 1;    // 黑体
                WordApp.Selection.TypeText("长城信息入职考试");
                WordApp.Selection.TypeParagraph();
                //WordApp.Selection.TypeParagraph();
                #endregion

                //设置内容部分格式
                WordApp.Selection.Font.Size = 12;
                WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft; // 居中
                WordApp.Selection.Font.Bold = 0;    // 黑体

                string sql = @"select * from base_tx";
                DataTable dt = DataBaseAccess.GetDataTable(sql);
                for (int i = 0; i < dt.Rows.Count;i++ )
                {
                    //写标题
                    WordApp.Selection.TypeText((i+1)+"、"+dt.Rows[i]["name"].ToString()+"(每题3分)" + "\n\n");                   

                    int txid = Convert.ToInt32(dt.Rows[i]["id"]);//题型ID
                    DataRow[] rows = dtxz.Select("xztxid=" + txid, "xztxid asc");
                    DataTable dttemp = dtxz.Clone();
                    dttemp.Clear();
                    foreach (DataRow dr2 in rows)
                    {
                        dttemp.Rows.Add(dr2.ItemArray);
                    }

                    for (int k = 0; k < dttemp.Rows.Count; k++)
                    {
                        string sqlstr = @"select * from base_st where id=" + dttemp.Rows[k]["xzstid"] + "";
                        DataTable dtst = DataBaseAccess.GetDataTable(sqlstr);

                        //获取题目内容
                        byte[] bWrite = (byte[])dtst.Rows[0]["contents"];//从数据库中读出数据
                        string s = System.Text.Encoding.UTF8.GetString(bWrite, 0, bWrite.Length);
                        //开始写内容
                        WordApp.Selection.TypeText(s);
                    }
                }

                WordDoc.Paragraphs.Last.Range.Text = "文档创建时间:" + DateTime.Now.ToString();//“落款”
                WordDoc.Paragraphs.Last.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;

                //文件保存
                WordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);                MessageBoxEx.Show("导出成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
            catch (Exception ex)
            {
                MessageBoxEx.Show("导出失败!" + "\n" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        #endregion

附完整源代码下载:http://www.51aspx.com/Code/StarkSoftExam

时间: 2024-07-28 19:22:36

StarkSoft题库管理系统(二)--生成word格式试卷的相关文章

StarkSoft题库管理系统

一.功能介绍    1.自定义试题库管理系统目录.难易程度,题型,知识库等.    2.试题录入.    3.强大的试题编辑功能,并与通常应用编辑工具有共通.    4.灵活的试卷构造功能,用户可自定义试卷标题.试题分类,试题数量.总分.试题难度系数等.    5.人工生成试卷和自动生成试卷文档格式标准通用.能够合理使用,有效再编辑,保存,方便浏览和打印输出.    6.题库管理,可以随时分散和集中管理题库数据.二.菜单功能    1.基础数据维护:试题分类设置:题型设置:难易程度:知识点库设置

Java毕业设计----基于Java web的在线试题库管理系统

联系qq:2835777178 有兴趣者可先看代码运行视频再决定 部分论文: 目录 1 前 言 1 1.1 在线试题库管理系统现状 1 1.2 在线试题库管理系统的意义 2 2 系统的开发环境及技术简介 2 2.1 Eclipse简介 4 2.2 JSP简介 4 2.3 TOMCAT简介 4 2.4 MYSQL简介 4 3 系统可行性分析 5 3.1可行性分析 5 3.1.1经济可行性 5 3.1.2技术可行性 5 3.1.3操作可行性 5 4系统设计 6 4.1设计思想 6 4.2系统总体功能

《通用试题库管理系统的设计与实现 》19

一.基本信息 标题:<通用试题库管理系统的设计与实现 > 时间:2014 来源:承德石油高等专科学校 关键字:试题库; 设计; 实现 二.研究内容 问题定义:本文献设计的通用试题库管理系统,重点要解决传统试题库的通 用性差.交互性弱和界面缺乏友好等问题,同时对存放试题的数据库进行合理的设计,提高扩展性和并 发控制的能力,为以后试题库改版为 C/S 或 B/S 模式做好准备,同时对传统的组卷算法进行改进,提高 组卷的速度和合理性. 三.流程图 四.总结 本通用题库管理系统具有良好的通用性;题库管

Java 将html导出word格式

@RequestMapping("download") public void exportWord( HttpServletRequest request, HttpServletResponse response) throws Exception { User user = AppContext.getLoginUser(); Student student = studentSvc.findByUserId(user.getId()); try { //word内容 Strin

POI加dom4j将数据库的数据按一定格式生成word文档

一:需求:将从数据库查处来的数据,生成word文档,并有固定的格式.(dom4j的jar包+poi的jar包) 二:解决:(1)先建立固定格式的word文档(2007版本以上),另存成为xml文件,作为模板.(修改xml节点,添加属性,用于标示要填固定数据的节点) (2)dom4j解析模板xml文件,将文件读入内存,并把数据库数据写入内存的xml模型中 (3)利用poi将内存中的含有数据库内容的xml模型转换成word内存模型,利用输出流输出word文档 三:DEMO [1]模板的word文档

java生成word文档【二】

/** * <p>expWordByItext方法主要用于-采用itext导出文档到word.</p> * <p>优缺点-可将随意控制生成word的格式,但代码控制上比采用模板的方式稍微复杂,可设置页眉页脚等其他文档属性.</p> * <p>第三方jar-itext-2.1.7.jar.itext-rtf-2.1.7.jar.<br> * import com.lowagie.text.Document;<br> * im

C# 生成 DataMatrix 格式的二维码

该文主要是利用OnBarcode.dll 生成 DataMatrix 格式的二维码的一些简单方法和操作技巧.关于QrBarcode的二维码比较常见和简单,网上有很多资源. 1.附件为dll 2.利用上述控件生成二维码的核心代码:     (a)C# 代码: DataMatrix datamatrix = new DataMatrix(); datamatrix.Data = "0123456789"; // Create Data Matrix and encode barcode t

《基于 VBA 技术的通用试题库管理系统的设计与实现》20

一.基本信息 标题:<基于 VBA 技术的通用试题库管理系统的设计与实现> 时间:2017 来源:吉 林 大 学 关键字:VBA,试题库,随机抽题,自动组卷 二.研究内容 问题定义:该系统主要包括三个模块.题库维护模块:在题库文档中利用Word的图文混排功能,对试题和答案进行增加.删除和修改,并且“题库文档”提供了“参数检测”.“标题涂色”和“查找重复题”的功能,“标题涂色”使试题看起来更醒目,“查找重复题”使查找重复题目更轻松,“参数检测”避免人为错误,提高程序的实用性.信息统计模块:可以对

java通过freemarket生成word文档

1.使用freemarker的原因是:由于POI和ITEXT在处理复杂word文档格式时欠缺,尤其在生成WORD文档时,(其他处理word的工具需要动态加载windows动态链接库,有些还要收费),并且需求要在WORD指定位置插入图片,所以在参考了POI和ITEXT官网处理WORD和网络上其他处理WORD的工具后,发现freemarker可以通过设定WORD模板,经过处理生成ftl文件后,可直接通过freemarker的工具jar包可以生成指定位置的WORD文件.(不过用模板生成有个别缺点,一是