/// <summary>
 /// 检查第四行
 /// </summary>
 /// <returns></returns>
 private bool check4thRow(List <String> excelPathList, out int maxColIndex)
 {
     maxColIndex = 0;
     //先清除所有记录。
     AR_Temp.deleteTheARTemp();
     foreach (string excelPath in excelPathList)
     {
         //打开文档
         MyExcel myExcel = new MyExcel(excelPath);
         myExcel.open();
         Worksheet firstWS = myExcel.getFirstWorkSheetAfterOpen();
         string    fileNameWithoutSuffix = DirectoryHelper.getFileNameWithoutSuffix(excelPath);
         int       checkedColIndex       = 0;
         if (!AttendanceRHelper.isAllDigit(firstWS, 4, out checkedColIndex))
         {
             myExcel.close();
             lblPrompt.Visible = false;
             ShowResult.show(lblResult, fileNameWithoutSuffix + ": 第4行" + checkedColIndex.ToString() + "列非数字;   导入取消。", false);
             timerRestoreTheLblResult.Start();
             return(false);
         }
         if (maxColIndex == 0)
         {
             Usual_Excel_Helper uEHelper = new Usual_Excel_Helper(firstWS);
             maxColIndex = uEHelper.getMaxColIndexBeforeBlankCellInSepcificRow(4);
         }
         myExcel.close();
     }
     return(true);
 }
 private void saveCriticalARInfo(List <string> xlsFilePathList)
 {
     //先清除所有记录。
     AR_Temp.deleteTheARTemp();
     for (int i = 0; i <= xlsFilePathList.Count - 1; i++)
     {
         string excelPath = xlsFilePathList[i];
         //打开文档
         MyExcel myExcel = new MyExcel(excelPath);
         myExcel.openWithoutAlerts();
         Worksheet firstWS = myExcel.getFirstWorkSheetAfterOpen();
         //删除  时间后立即为空的行。
         AttendanceRHelper.clearSheet(firstWS);
         Usual_Excel_Helper uEHelper  = new Usual_Excel_Helper(firstWS);
         string             excelName = Usual_Excel_Helper.getExcelName(excelPath);
         //先获取第4行的最大行列数目。
         int rowMaxIndex = firstWS.UsedRange.Rows.Count;
         int pbMaximum   = rowMaxIndex - 4;
         int pbValue     = 0;
         //0: 表示 lblResult.Visible
         checkNameBGWorker.ReportProgress(0, "lblResult.Visible");
         checkNameBGWorker.ReportProgress(pbMaximum, "pb.Maximum");
         checkNameBGWorker.ReportProgress(pbValue, "pb.Value");
         //lblPrompt.Text = excelName + ": 基本信息采集中...";
         checkNameBGWorker.ReportProgress(0, string.Format(@"lblPrompt.Text={0}: 姓名采集中...", excelName));
         for (int rowIndex = 5; rowIndex <= rowMaxIndex; rowIndex++)
         {
             //偶数行为 时间。
             if (0 == rowIndex % 2)
             {
                 checkNameBGWorker.ReportProgress(pbValue++, "pb.Value");
                 continue;
             }
             //姓名 存于第11列。
             string  name    = uEHelper.getCellContentByRowAndColIndex(rowIndex, 11);
             AR_Temp ar_Temp = new AR_Temp();
             ar_Temp.Attendance_machine_flag = int.Parse(excelName.Substring(excelName.Length - 1, 1));
             ar_Temp.Row_Index  = rowIndex;
             ar_Temp.Job_number = uEHelper.getCellContentByRowAndColIndex(rowIndex, 3);
             ar_Temp.Name       = name;
             /// <summary>
             /// 保存 ATTENDANCE_MACHINE_FLAG,
             ///     row_index,
             ///     job_number,
             ///     name
             /// 至AR_Temp中
             ar_Temp.saveRecord();
             checkNameBGWorker.ReportProgress(pbValue++, "pb.Value");
         }
         myExcel.close();
     }
 }
Esempio n. 3
0
 private void saveCriticalARInfo(List <String> excelPathList)
 {
     //先清除所有记录。
     AR_Temp.deleteTheARTemp();
     foreach (string excelPath in excelPathList)
     {
         //打开文档
         MyExcel myExcel = new MyExcel(excelPath);
         myExcel.open();
         Worksheet firstWS = myExcel.getFirstWorkSheetAfterOpen();
         //删除  时间后立即为空的行。
         AttendanceRHelper.clearSheet(firstWS);
         Usual_Excel_Helper uEHelper = new Usual_Excel_Helper(firstWS);
         string             fileNameWithoutSuffix = DirectoryHelper.getFileNameWithoutSuffix(excelPath);
         //先获取第4行的最大行列数目。
         int rowMaxIndex = firstWS.UsedRange.Rows.Count;
         pb.Value          = 0;
         pb.Maximum        = rowMaxIndex - 4;
         pb.Visible        = true;
         lblPrompt.Visible = true;
         lblResult.Visible = false;
         lblPrompt.Text    = fileNameWithoutSuffix + ": 基本信息采集中...";
         for (int rowIndex = 5; rowIndex <= rowMaxIndex; rowIndex++)
         {
             if (0 == rowIndex % 2)
             {
                 pb.Value++;
                 continue;
             }
             //姓名 存于第11列。
             string  name    = uEHelper.getCellContentByRowAndColIndex(rowIndex, 11);
             AR_Temp ar_Temp = new AR_Temp();
             ar_Temp.Attendance_machine_flag = int.Parse(fileNameWithoutSuffix.Substring(fileNameWithoutSuffix.Length - 1, 1));
             ar_Temp.Row_Index  = rowIndex;
             ar_Temp.Job_number = uEHelper.getCellContentByRowAndColIndex(rowIndex, 3);
             ar_Temp.Name       = name;
             ar_Temp.saveRecord();
             pb.Value++;
         }
         lblPrompt.Visible = false;
         pb.Visible        = false;
         myExcel.save();
         myExcel.close();
     }
 }