Example #1
0
        //读取一个工作簿的检查数据,并存进peoples的集合中
        private peopleSet collectdata(string fileWay)
        {
            peopleSet ps = new peopleSet(2);                            //people的数据集合

            openExcel(fileWay);

            String curPeopleID;                                         //存储当前的检测用户

            Sheets r_shs = r_wbk.Sheets;                                //获取excel工作簿的所有工作表
            _Worksheet r_wsh = (_Worksheet)r_shs.get_Item(1);           //获取第一个工作表
            long i=1;                                                   //记录行的位置
            if (Convert.ToString(((Range)r_wsh.Cells[i, ps.pItemData_column]).Text) == "")               //第一行为空
                i = 2;
            int j=ps.itemBegin_column;                                     //数据项的起始位置

            peopledata curpeople ;                                      // 存取当前的体检人员的数据
            KeyValuePair<String,String> itemset_item;

            long allrow = r_wsh.UsedRange.CurrentRegion.Rows.Count;

            this.label3.Text = "正在读取数据,请稍后……";
            while(i <= allrow)
            {
                curPeopleID = Convert.ToString(((Range)r_wsh.Cells[i, ps.pID_column]).Text);
                if (ps.peopledic.ContainsKey(curPeopleID))//该用户ID已经记录
                {
                     itemset_item  = new KeyValuePair<String,String>(Convert.ToString(((Range)r_wsh.Cells[i,ps.pItemSet_column]).Text),Convert.ToString(((Range)r_wsh.Cells[i,ps.pItem_column]).Text));
                     if (Convert.ToString(((Range)r_wsh.Cells[i, ps.pItemData_column]).Text) == "NULL")
                     {
                         ps.peopledic[curPeopleID].element.Add(itemset_item, Convert.ToString(((Range)r_wsh.Cells[i, ps.pItemData_column + 1]).Text));
                     }
                     else
                     {
                         ps.peopledic[curPeopleID].element.Add(itemset_item, Convert.ToString(((Range)r_wsh.Cells[i, ps.pItemData_column]).Text));
                     }

                }
                else //该用户没记录
                {
                    curpeople = new peopledata();

                    //添加检查项目信息
                    itemset_item = new KeyValuePair<String, String>(Convert.ToString(((Range)r_wsh.Cells[i, ps.pItemSet_column]).Text), Convert.ToString(((Range)r_wsh.Cells[i, ps.pItem_column]).Text));
                    curpeople.name = Convert.ToString(((Range)r_wsh.Cells[i, ps.PNname_column]).Text);
                    curpeople.sex = Convert.ToString(((Range)r_wsh.Cells[i, ps.pSex_column]).Text);
                    curpeople.age = Convert.ToString(((Range)r_wsh.Cells[i, ps.pAge_column]).Text);
                    if (Convert.ToString(((Range)r_wsh.Cells[i, ps.pItemData_column]).Text) == "NULL")
                    {
                        curpeople.element.Add(itemset_item, Convert.ToString(((Range)r_wsh.Cells[i, ps.pItemData_column+1]).Text));     //增加检查项目
                    }
                    else
                    {
                        curpeople.element.Add(itemset_item, Convert.ToString(((Range)r_wsh.Cells[i,ps.pItemData_column]).Text));     //增加检查项目
                    }
                    ps.peopledic.Add(curPeopleID, curpeople);

                }
                if(!itemDic.ContainsKey(itemset_item))//不包含这个项目
                {
                    itemDic.Add(itemset_item, j);
                    ++j;
                }
                if (i < allrow)
                {
                    SetTextMessage((int)(i * 100 / allrow));
                }
                else
                {
                    Thread.Sleep(100);
                    SetTextMessage(0);
                }
                ++i;
            }
            app.AlertBeforeOverwriting = false;         // 屏蔽系统的alert
            r_wbk.Close();
            return ps;
        }
Example #2
0
        //读取一个工作簿的检查数据,并存进peoples的集合中
        private void collectdata()
        {
            openExcel(txtboxPath.Text);
            //createExcel();
            //Sheets shs = w_wbk.Sheets;
            //_Worksheet _wsh = (_Worksheet)shs.get_Item(1);
            //_wsh.Name = "汇总";
            //_wsh.Cells[2, 2] = "测试";
            //CloseExcel(w_wbk);

            String curPeopleID;                                         //存储当前的检测用户
            String prePeopleID;                                         //存储前一个用户
            Sheets r_shs = r_wbk.Sheets;                                //获取excel工作簿的所有工作表
            _Worksheet r_wsh = (_Worksheet)r_shs.get_Item(1);           //获取第一个工作表
            long i=1;                                                               //记录行的位置
            int j=itemBegin_column;                                     //数据项的起始位置
            curPeopleID =Convert.ToString(((Range) r_wsh.Cells[1, pID_column]).Text);
            prePeopleID = "";
            peopledata curpeople = new peopledata();                    // 存取当前的体检人员的数据
            KeyValuePair<String,String> itemset_item;
            int oldrowindex;                                            //存在旧的index
            long allrow = r_wsh.UsedRange.CurrentRegion.Rows.Count;
            //while(i !=r_wsh.UsedRange.Cells.Rows.Count)  // 没读到行结束
            //((Range)r_wsh.Cells[i,pID_column]).Text.ToString() !=""
            this.label3.Text = "正在读取数据,请稍后……";
            while(i <= allrow)
            {
                if (curPeopleID == prePeopleID)//用户id没改变
                {
                     itemset_item  = new KeyValuePair<String,String>(Convert.ToString(((Range)r_wsh.Cells[i,pItemSet_column]).Text),Convert.ToString(((Range)r_wsh.Cells[i,pItem_column]).Text));
                     // this.label2.Text = i.ToString();
                     curpeople.element.Add(itemset_item, Convert.ToString(((Range)r_wsh.Cells[i, pItemData_column]).Text));     //增加检查项目
                     if (i == allrow)
                     {
                         peoples.Add(curpeople);

                     }
                }
                else //当前用户不同与上一行的用户id
                {
                      //新用户添加基础信息
                      oldrowindex = peoplesId.IndexOf(curPeopleID);

                      if (oldrowindex != -1)//已经记录过此用户
                      {
                          itemset_item = new KeyValuePair<String, String>(Convert.ToString(((Range)r_wsh.Cells[i, pItemSet_column]).Text), Convert.ToString(((Range)r_wsh.Cells[i, pItem_column]).Text));
                          peoples[oldrowindex].element.Add(itemset_item, Convert.ToString(((Range)r_wsh.Cells[i, pItemData_column]).Text));     //增加检查项目
                          oldrowindex = peoplesId.IndexOf(prePeopleID);
                          if (oldrowindex == -1)
                          {
                              peoplesId.Add(prePeopleID);
                              peoples.Add(curpeople);
                          }
                      }
                      else
                      {
                         // peoplesId.Add(curPeopleID);
                          if (prePeopleID != "")//不是第一个用户
                          {
                              oldrowindex = peoplesId.IndexOf(prePeopleID);
                              if (oldrowindex == -1)
                              {
                                  peoplesId.Add(prePeopleID);
                                  peoples.Add(curpeople);
                              }
                              curpeople = new peopledata();
                          }
                          //添加检查项目信息
                          itemset_item = new KeyValuePair<String, String>(Convert.ToString(((Range)r_wsh.Cells[i, pItemSet_column]).Text), Convert.ToString(((Range)r_wsh.Cells[i, pItem_column]).Text));
                          curpeople.Id = curPeopleID;
                          curpeople.name = Convert.ToString(((Range)r_wsh.Cells[i, PNname_column]).Text);
                          curpeople.sex = Convert.ToString(((Range)r_wsh.Cells[i, pSex_column]).Text);
                          curpeople.age = Convert.ToString(((Range)r_wsh.Cells[i, pAge_column]).Text);
                          curpeople.element.Add(itemset_item, Convert.ToString(((Range)r_wsh.Cells[i, pItemData_column]).Text));     //增加检查项目
                          if (i == allrow)
                          {
                              peoples.Add(curpeople);

                          }
                      }
                }
                if(!itemDic.ContainsKey(itemset_item))//不包含这个项目
                {
                    itemDic.Add(itemset_item, j);
                    ++j;
                }
                if (i < allrow)
                {
                    SetTextMessage((int)(i * 100 / allrow));
                }
                else
                {
                    Thread.Sleep(100);
                    SetTextMessage(0);
                }
                ++i;
                if (i <= allrow)
                {
                    prePeopleID = curPeopleID;
                    curPeopleID = Convert.ToString(((Range)r_wsh.Cells[i, pID_column]).Text);
                }
            }
            app.AlertBeforeOverwriting = false;         // 屏蔽系统的alert
            r_wbk.Close();
        }
Example #3
0
 //重写Equals,用id来判定数据是否重复
 public bool Equals(peopledata other)
 {
     return base.Equals(other.Id);
 }