设计背景
设定excel列表表,随机抽取列表。
设计的想法
使用Timer计时器,运行计时器随机滚动列表,停止计时器以获得抽签结果
相关技术
随机数
Excel导入/导出
读写XML文档
类库
C1.C1Excel Excel操作相关
功能
读取Excel列表
名单随机抽选
计分功能
Excel导出功能
代码示例
导入列表
using (system.windows.forms.openfiledialogdialog=newopenfiledialog ()
{
dialog.initial directory=application.startup path;
dialog.Filter=’Excel文件(*.xls )|*.xls );
dialog.CheckFileExists=true;
if(dialog.showdialog(this )==system.windows.forms.dialogresult.ok ) ) ) ) )。
{
this.txtlist.text=dialog.filename;
this.dt=import excel (dialog.filename,false,false );
() ) ) ) )。
() ) ) ) )。
抓阄儿
Random rd=new Random (;
this.lbshow.text=this.dt.rows [ rd.next (1,this.dt.Rows.Count ) ][0].ToString );
导出分数
stringa ppath=application.executable path;
apppath=appath.substring(0,appath.lastindexof((\) );
文件. exists (AP path ‘\evaluation.XML ‘ ) )
{
XML document xmldoc=new XML document (;
xmldoc.load (AP path (\evaluation.XML ) );
xmlnodelistnodelist=xmldoc.selectnodes (/evaluation//evaluation );
DataTable dt=new DataTable (;
dt.Columns.Add (姓名);
dt.Columns.Add (‘评分);
dt.Columns.Add (‘时间);
for(intI=0; i nodeList.Count; I )
{
DataRow dr=dt.NewRow (;
XMLelementxe=(XMLelement ) nodeList[i];
dr[0]=(XMLelement ) xe.selectnodes ) )/evaluation//name ) I ).InnerText;
dr[1]=(XMLelement ) xe.selectnodes ) )/evaluation//points ) ) I ).InnerText;
dr[2]=(XMLelement ) xe.selectnodes ) )/evaluation//time ) I ).InnerText;
dt.Rows.add(dr );
() ) ) ) )。
导出至(evaluation )、导出至(evaluation )、导出至(dt );
MessageBox.Show (‘导出分数表将删除分数记录。 请自己保存!’ );
file.delete (AP path ‘\evaluation.XML ‘;
() ) ) ) )。
else
{
MessageBox.Show (‘无评分记录!’ );
() ) ) ) )。
GitHub