是 出了很多问题。其实除了调用的数据库换了,其他的都是按照源码来的,但是就这一个简单的要求,变动的地方还最近在做计算机一级的项目,最开始上手的时候,因为基于ITOO的考试系统,感觉背后有撑腰,毫无压力。
在刚开始的时候,慕夏让我们调框架,要求很简单,调通,能用就行了。虽然要求简单,但是真正实习过程中还
是挺大的。通过梦甜的帮忙,终于是把问题给解决了,出错的原因很简单,自己没有全局观。换数据库,变动的不只
是客户端里的数据库名,还有model层和控制台的配置文件都是需要改变的。
一 句话让我们恍然大悟。原型神马的都不算什么,一级和我们的考试系统很多都是一样的,不一样的地方在哪里?操敲模板是第一步,让我觉得特别高大上,但是没过多长时间,感觉一下回到解放前。经过老师验收原型,老师的
作题!!!选择题,界面设计这些东西都是可以通过ITOO补充的,但是操作题,这是没有接触过的一块新内容,我
们应该把重点放在操作题上。
所以,经过和慕夏的沟通,我们把重点放在了敲Demo上。
大家想想,考一级的时候,操作题有什么?word,excel,PPT,IE和outlook发邮件,Windows操作题。刚开始
看到这些题的时候,我们都蒙了,都是些神马?如何下手?!不过周洲还是挺沉着的,我们把以前的考试题进行分门
别类,发现虽然孩子们做题是难,但是后台判卷还是蛮简单的。只需要根据给的答案,与考生的答案进行对比就行
了。下边举些小demo供大家欣赏:
具体的代码:1、word插入指定内容
解析:这个问题最简单了,只需要查询word中是否有插入的文字就行了。我虚拟了一个内容“没有错误”,下边是
private void button1_Click(object sender, EventArgs e) { //得到指定文档内容 string wordcontent = GetWordContent(@"E:\计算机\NERC\操作题-王虹芸\操作题.docx"); //查询插入的字段 int keyword = wordcontent.LastIndexOf("没有错误"); //返回值,keyword=-1为没有找到插入字段。 if (keyword == -1) { MessageBox.Show("没有插入成功!"); } else { MessageBox.Show("插入成功!"); } }
/// <summary> /// 读取 word文档 返回内容 /// </summary> /// <param name="path"></param> /// <returns></returns> public static string GetWordContent(string path) { try { Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); Type wordType = app.GetType(); Microsoft.Office.Interop.Word.Document doc = null; object unknow = Type.Missing; app.Visible = false; object file = path; doc = app.Documents.Open(ref file, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow, ref unknow); int count = doc.Paragraphs.Count; StringBuilder sb = new StringBuilder(); for (int i = 1; i <= count; i++) { sb.Append(doc.Paragraphs[i].Range.Text.Trim()); } //关闭word进程 doc.Close(ref unknow, ref unknow, ref unknow); wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, app, null); doc = null; app = null; //垃圾回收 GC.Collect(); GC.WaitForPendingFinalizers(); string temp = sb.ToString(); return temp; } catch { return ""; } }
下边打开word的代码部分才是重点,号称wordhelper,是神器呢!
显示效果:
2、excel查看公式备注
解析:什么叫公式备注?你造吗?反正俺是百度才知道的。原来公式备注就是excel里边单元格的批注,下边来
看看代码哈:
看看效果:private void button3_Click(object sender, EventArgs e) { //获取工作表 MSExcel.Worksheet sheet1 = m_workbook.ActiveSheet as MSExcel.Worksheet; //获取当前列内容 MSExcel.Comment currentCell = sheet1.Range["F19"].Comment; //Range currentCell = (Range)sheet1.Cells[17, 6]; //MSExcel.Comment comment = currentCell; MessageBox.Show("单元格备注作者:" + currentCell.Author + " 单元格备注内容:" + currentCell.Text()); }
excel中的备注内容:
显示结果:
3、获取excel图表类型
分析:向excel里插入簇状型柱形图,要通过C#代码,获取图表的类型,代码如下://获取工作表 MSExcel.Worksheet sheet1 = m_workbook.ActiveSheet as MSExcel.Worksheet; MSExcel.ChartObject chartobject1 = (MSExcel.ChartObject)sheet1.ChartObjects("图表 1"); MessageBox.Show(chartobject1.Chart.ChartType.ToString () );
显示结果:
总结
通过敲这些小Demo,发现其实只要找到对应的对象的属性,都是特别容易解决的!所以在这个过程中,学会了
重新锁定关键字,使用搜索引擎;更多的是学会了耐心;该放下的时候就放下,不会的不要一直停留,交给队友。这
是真正接触的第一个项目,还在进行中,能明显感受到团队合作的重要性。剩下的,就是坚持的把这个项目干下去!