Gợi ý code, giải thuật đọc, ghi file excel từ trang ĐKHP regis.agu.edu.vn (ĐH AN GIANG) hoặc những trang regis tương tự

1. Hướng dẫn đọc file excel regis.agu.edu.vn ==> import sqllite (Đăng kí học phần trực tuyến)

- Ý tưởng: đọc từng dòng, từng cột dựa vào thư viện poi3.jar

HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);
HSSFSheet mySheet = myWorkBook.getSheetAt(0);
Iterator rowIter = mySheet.rowIterator();
while (rowIter.hasNext()) {
 HSSFRow myRow = (HSSFRow) rowIter.next();
 if(myRow.getRowNum()>=13) {
 Iterator cellIter = myRow.cellIterator();
 while (cellIter.hasNext()) {
 HSSFCell myCell = (HSSFCell) cellIter.next();
 Log.d("NguyenNgocTan", "" + myCell.getStringCellValue().toString()+" socot:"+myCell.getColumnIndex());
 int SOCOT=myCell.getColumnIndex();
 if(SOCOT==1)
 MMH=myCell.getStringCellValue().toString();
 else if(SOCOT==6)
 TENMH=myCell.getStringCellValue();
 else if(SOCOT==34)
 PHONGHOC=myCell.getStringCellValue();
 else if(SOCOT==26)
 THU=myCell.getStringCellValue();
 else if(SOCOT==28)
 TIETBATDAU=myCell.getStringCellValue();
 else if(SOCOT==29)
 SOTIET=myCell.getStringCellValue();
 else if(SOCOT==36)
 TGHOC=myCell.getStringCellValue();
 }
}

- Giải thích:
+ myRow.getRowNum()>=13: Đọc dòng chứa nội dung mã môn học đầu tiên
+ SOCOT=GIÁ TRỊ: Do số cột trên file excel của regis quá nhiều. Có những cột null giá trị do trộn ô (merge cell). Để biết số cột và giá trị như thế nào. Chúng ta dựa vào dòng

Log.d("NguyenNgocTan", "" + myCell.getStringCellValue().toString()+" socot:"+myCell.getColumnIndex());

==> Ý nghĩa là để Log ra nội dung cột và thứ tự cột

2. Xem TKB theo tuần. 

- Hình ảnh Cột tuần trong TKB của regis.agu.edu.vn (ĐH AN GIANG)

- Ý tưởng:

B1: Đọc từng ký tự trong cột thời gian học

B2: Kiểm tra xem số tuần học

     + Nếu số tuần học >=10. Thì gán số tuần học =số tuần học % 10 (VD: 11%10=1 -> tuần thứ 11)

     + Nếu số tuần học <=10. Thì giữ nguyên số tuần được chọn.

- Code tham khảo: (Cột thời gian học) ThoiGianHoc.Substring((SoTuanHoc-1),SoTuanHoc).equals(SoTuanHoc)

3. Tính số tuần, thứ trong tuần tuần dựa vào thời gian bắt đầu nhập học và thời gian đang chọn

- Ý tưởng:

     + B1: Lấy thời gian đang chọn - thời gian bắt đầu =A thời gian

     + B2: Tính số tuần =(A thời gian / 1000*60*60*24)/7

     + B3: Tính thứ trong tuần (Lưu ý: Thứ =1 là chủ nhật):

Calendar c = Calendar.getInstance();
c.setTime(Common.Static_NGAY_THANG_NAM_SELECT);
int Thu_TrongTuan = c.get(Calendar.DAY_OF_WEEK);

 - Code tham khảo

Long TRU_THOIGIAN= (Common.Static_NGAY_THANG_NAM_SELECT.getTime()-Common.Static_NGAY_THANG_NAM_CSDL.getTime());
  int SoTuan=Integer.valueOf(String.valueOf((TRU_THOIGIAN/(1000*60*60*24))/7));
  Calendar c = Calendar.getInstance();
  c.setTime(Common.Static_NGAY_THANG_NAM_SELECT); // yourdate is a object of type Date
  int Thu_TrongTuan = c.get(Calendar.DAY_OF_WEEK);
  if(Thu_TrongTuan==1)
     txt_thu.setText("CHỦ NHẬT");
  else
     txt_thu.setText("THỨ "+(Thu_TrongTuan));

4. Tải Ứng Dụng Xem Thời Khóa Biểu ĐHAG (Regis.agu.edu.vn): Đang Cập Nhật Ứng Dụng Trong TG Sớm Nhất