Esempio n. 1
0
        private void ReadClassRoomData(string filePath, int gzbwz, int jshs, string strartTime, string EndTime, int pkts)
        {
            //string filePath = openFileDialog1.FileName;//获取文件名
            //工作薄:excel文件对象
            HSSFWorkbook hssfworkbook;

            #region//初始化信息
            try
            {
                using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    hssfworkbook = new HSSFWorkbook(file);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("打开excel文档出错,请检查文件格式" + ex.Message);
            }
            #endregion
            int      index      = gzbwz - 1;                                                                      //周工作表所在索引0,第1个,1为第二个工作表
            int      jiaoshinum = jshs;                                                                           //需要读几个教室的
            DateTime t1         = DateTime.Parse(strartTime);                                                     //开始日期
            DateTime t2         = DateTime.Parse(EndTime);                                                        //结束日期
            int      sp1        = (t2 - t1).Days + 1;                                                             //两者之间的天数:需要加1,因为有前有后
            // MessageBox.Show(sp1 + " 时期 ");
            string[] TimeFaleString = new string[] { "8:30-10:20", "10:40-12:30", "13:30-15:20", "15:30-17:20" }; //时间标识字符串
            string[] TimeFWString   = new string[] { "上午8:30-10:20", "上午10:40-12:30", "下午13:30-15:20", "下午15:30-17:20" };
            //日期字符串数组
            List <string> dataStringList = new List <string>(); //保存这些天的日期标识
            for (int d = 0; d < sp1; d++)
            {
                dataStringList.Add(t1.AddDays(d).ToString("yyyy-MM-dd"));
            }
            string[] WeekStringList = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
            //星期字符串数组
            List <string> WeekStringListData = new List <string>(); //保存这些天的星期标识集合
            for (int d = 0; d < sp1; d++)
            {
                DateTime dataTimeTemp = t1.AddDays(d);
                //求星期
                WeekStringListData.Add(WeekStringList[(int)dataTimeTemp.DayOfWeek]);
            }

            //获取工作薄的第一个工作表文件
            using (HSSFSheet sheet = hssfworkbook.GetSheetAt(index)) //索引值获取工作表的第几张
            {
                #region 读取教室安排数据信息
                int startRowIndex = 4;                              //第5行,以0开始所有少1
                int startColIndex = 2;                              //第3列,以0开始所有少1
                for (int i = 1; i <= sp1; i++)                      //循环几天 控件所有的天数循环
                {
                    string strWeekShow = WeekStringListData[i - 1]; //星期数
                    string strDataShow = dataStringList[i - 1];
                    for (int j = 1; j <= jiaoshinum; j++)           //每天循环所有教室资源循环
                    {
                        //定位行数据
                        HSSFRow dataHSSRow = sheet.GetRow((i - 1) * jiaoshinum + startRowIndex + (j - 1)); //第几天*教室数+起始行
                        string  ZYName     = GetCellValue(dataHSSRow.GetCell(startColIndex));              //资源名
                        //定义列数据 //每次读三次,循环三次,每次三列//三列读取为一次课的安排,2节课一次安排
                        for (int k = 1; k <= 4; k++)
                        {
                            string KChengName = GetCellValue(dataHSSRow.GetCell(startColIndex + 1 + (k - 1) * 3)); //科目名
                            string teachName  = GetCellValue(dataHSSRow.GetCell(startColIndex + 2 + (k - 1) * 3)); //教员名
                            string bjname     = GetCellValue(dataHSSRow.GetCell(startColIndex + 3 + (k - 1) * 3)); //班级名
                            string timename   = TimeFaleString[k - 1];
                            string timefwname = TimeFWString[k - 1];
                            //构建一个对象,用来存储数据项。。。。。
                            APaonKeBiao pb = new APaonKeBiao();
                            pb.教员名  = teachName;
                            pb.内容   = KChengName;
                            pb.日期   = strDataShow;
                            pb.时间段  = timename;
                            pb.授课班级 = bjname;
                            pb.时间范围 = timefwname;
                            pb.星期   = strWeekShow;
                            pb.资源名  = ZYName;
                            pb.资源类型 = "教室";
                            //加入到集合中
                            apaokebiaoList.Add(pb);
                        }
                    }
                }



                #endregion

                //读完后显示数据
                //this.dataGridView1.DataSource = apaokebiaoList.ToList();
                #region 读取机房安排信息

                #endregion
            }
        }
Esempio n. 2
0
        public void ReadMachineData(string filePath, int gzbwz, int jshs, string strartTime, string EndTime, int pkts)
        {
            //string filePath = openFileDialog1.FileName;//获取文件名
            //工作薄:excel文件对象
            HSSFWorkbook hssfworkbook;

            #region//初始化信息
            try
            {
                using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    hssfworkbook = new HSSFWorkbook(file);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            #endregion
            int      index      = gzbwz - 1;                                                                      //周工作表所在索引0,第1个,1为第二个工作表
            int      jiaoshinum = jshs;                                                                           //需要读几个教室的
            DateTime t1         = DateTime.Parse(strartTime);                                                     //开始日期
            DateTime t2         = DateTime.Parse(EndTime);                                                        //结束日期
            int      sp1        = (t2 - t1).Days + 1;                                                             //两者之间的天数:需要加1,因为有前有后
            // MessageBox.Show(sp1 + " 时期 ");
            string[] TimeFaleString = new string[] { "8:30-10:20", "10:40-12:30", "13:30-15:20", "15:30-17:20" }; //时间标识字符串
            string[] TimeFWString   = new string[] { "上午8:30-10:20", "上午10:40-12:30", "下午13:30-15:20", "下午15:30-17:20" };
            //日期字符串数组
            List <string> dataStringList = new List <string>(); //保存这些天的日期标识
            for (int d = 0; d < sp1; d++)
            {
                dataStringList.Add(t1.AddDays(d).ToString("yyyy-MM-dd"));
            }
            string[] WeekStringList = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
            //星期字符串数组
            List <string> WeekStringListData = new List <string>(); //保存这些天的星期标识集合
            for (int d = 0; d < sp1; d++)
            {
                DateTime dataTimeTemp = t1.AddDays(d);
                //求星期
                WeekStringListData.Add(WeekStringList[(int)dataTimeTemp.DayOfWeek]);
            }

            //获取工作薄的第一个工作表文件
            using (HSSFSheet sheet = hssfworkbook.GetSheetAt(index)) //索引值获取工作表的第几张
            {
                #region 读取机房安排数据信息
                int startRowIndex = 4;                              //第5行,以0开始所有少1
                //int startColIndex = 14;//第15列,以0开始所有少1
                for (int i = 1; i <= sp1; i++)                      //循环几天 控件所有的天数循环
                {
                    string strWeekShow = WeekStringListData[i - 1]; //星期数
                    string strDataShow = dataStringList[i - 1];
                    for (int j = 1; j <= jiaoshinum; j++)           //每天循环所有教室资源循环
                    {
                        //定位行数据
                        HSSFRow dataHSSRow = sheet.GetRow((i - 1) * jiaoshinum + startRowIndex + (j - 1));            //第几天*教室数+起始行

                        string SW_data1 = dataHSSRow.GetCell(15) == null ? "" : GetCellValue(dataHSSRow.GetCell(15)); //上午安排的班级
                        string XW_data2 = dataHSSRow.GetCell(16) == null ? "" : GetCellValue(dataHSSRow.GetCell(16));
                        string zyname   = dataHSSRow.GetCell(17) == null ? "" : GetCellValue(dataHSSRow.GetCell(17)); //资源名在第17列,,下标为
                        // MessageBox.Show(SW_data1 + "  " + XW_data2 + "   " + zyname);

                        APaonKeBiao pb = new APaonKeBiao();
                        pb.教员名  = "自行安排";
                        pb.内容   = "自习";
                        pb.日期   = strDataShow;
                        pb.时间段  = TimeFaleString[0];
                        pb.授课班级 = SW_data1;
                        pb.时间范围 = TimeFWString[0];
                        pb.星期   = strWeekShow;
                        pb.资源名  = zyname;
                        pb.资源类型 = "机房";
                        //加入到集合中
                        apaokebiaoList.Add(pb);

                        APaonKeBiao pb1 = new APaonKeBiao();
                        pb1.教员名  = "自行安排";
                        pb1.内容   = "自习";
                        pb1.日期   = strDataShow;
                        pb1.时间段  = TimeFaleString[1];
                        pb1.授课班级 = SW_data1;
                        pb1.时间范围 = TimeFWString[1];
                        pb1.星期   = strWeekShow;
                        pb1.资源名  = zyname;
                        pb1.资源类型 = "机房";

                        //加入到集合中
                        apaokebiaoList.Add(pb1);

                        APaonKeBiao pb2 = new APaonKeBiao();
                        pb2.教员名  = "自行安排";
                        pb2.内容   = "自习";
                        pb2.日期   = strDataShow;
                        pb2.时间段  = TimeFaleString[2];
                        pb2.授课班级 = XW_data2;
                        pb2.时间范围 = TimeFWString[2];
                        pb2.星期   = strWeekShow;
                        pb2.资源名  = zyname;
                        pb2.资源类型 = "机房";

                        //加入到集合中
                        apaokebiaoList.Add(pb2);


                        APaonKeBiao pb3 = new APaonKeBiao();
                        pb3.教员名  = "自行安排";
                        pb3.内容   = "自习";
                        pb3.日期   = strDataShow;
                        pb3.时间段  = TimeFaleString[3];
                        pb3.授课班级 = XW_data2;
                        pb3.时间范围 = TimeFWString[3];
                        pb3.星期   = strWeekShow;
                        pb3.资源名  = zyname;
                        pb3.资源类型 = "机房";

                        //加入到集合中
                        apaokebiaoList.Add(pb3);
                    }
                }
                #endregion
            }
        }