public static void outPutRailcarItinerary(ArrayList<ArrayList<Block>> bl){
		try{
			jxl.Workbook readWorkBook = jxl.Workbook.getWorkbook(new File("Output_File.xls"));   //唯讀的Excel工作薄物件
			jxl.write.WritableWorkbook writeWorkBook = Workbook.createWorkbook(new File("Output_File.xls"), readWorkBook);   //寫入
			jxl.write.WritableSheet writeSheet = writeWorkBook.createSheet("railcar_itinerary", 3);   //建立一個工作表名字，然後0表示為第一頁		
			
			writeSheet.addCell(new Label(0, 0, "Car No"));
			writeSheet.addCell(new Label(1, 0, "Destination of block"));
			writeSheet.addCell(new Label(2, 0, "Inbound Train No"));
			writeSheet.addCell(new Label(3, 0, "ArrivalDay No"));
			writeSheet.addCell(new Label(4, 0, "arriving time at receiving area"));
			writeSheet.addCell(new Label(5, 0, "Receiving track No"));
			writeSheet.addCell(new Label(6, 0, "Starting time of humping job"));
			writeSheet.addCell(new Label(7, 0, "Ending time of humping job"));
			writeSheet.addCell(new Label(8, 0, "Departure Day No"));
			writeSheet.addCell(new Label(9, 0, "Pull back engine No"));
			writeSheet.addCell(new Label(10, 0, "Starting time of pull back job"));
			writeSheet.addCell(new Label(11, 0, "Ending time of pull back job"));
			writeSheet.addCell(new Label(12, 0, "Departure time at departure area"));
			writeSheet.addCell(new Label(13, 0, "outbound Train No"));
			writeSheet.addCell(new Label(14, 0, "Departure track No"));
			
			int count=1;
			for(int i=0 ; i<bl.size() ; i++){
				for(int j=0 ; j<bl.get(i).size() ; j++, count++){
					writeSheet.addCell(new Label(0, count, Integer.toString(bl.get(i).get(j).carNo)));
					writeSheet.addCell(new Label(1, count, bl.get(i).get(j).blockName));
					writeSheet.addCell(new Label(2, count, "i" + bl.get(i).get(j).trainId));
					writeSheet.addCell(new Label(3, count, Integer.toString(bl.get(i).get(j).arrivalDay)));
					writeSheet.addCell(new Label(4, count, changeToFormatTime(bl.get(i).get(j).timeAtReceivingArea)));
					writeSheet.addCell(new Label(5, count, "R" + (bl.get(i).get(j).receivingTrackNo+1)));
					writeSheet.addCell(new Label(6, count, changeToFormatTime(bl.get(i).get(j).timeStartHump)));
					writeSheet.addCell(new Label(7, count, changeToFormatTime(bl.get(i).get(j).timeEndHump)));
					writeSheet.addCell(new Label(8, count, Integer.toString(bl.get(i).get(j).departureDay)));
					writeSheet.addCell(new Label(9, count, Integer.toString(bl.get(i).get(j).pullBackEngineNo)));
					writeSheet.addCell(new Label(10, count, changeToFormatTime(bl.get(i).get(j).timeStartPullBack)));
					writeSheet.addCell(new Label(11, count, changeToFormatTime(bl.get(i).get(j).timeEndPullBack)));
					writeSheet.addCell(new Label(12, count, changeToFormatTime(bl.get(i).get(j).timeDepartureAtDepartureArea)));
					writeSheet.addCell(new Label(13, count, "o" + (bl.get(i).get(j).outboundTrainNo+1)));
					writeSheet.addCell(new Label(14, count, "D" + (bl.get(i).get(j).departureTrackNo+1)));
				}
			}		
			
			writeWorkBook.write();
			writeWorkBook.close();
		}
		catch (FileNotFoundException e) {
			e.printStackTrace();
		}catch (IOException e) {
			e.printStackTrace();
		} catch (RowsExceededException e) {
			e.printStackTrace();
		} catch (WriteException e) {
			e.printStackTrace();
		} catch (BiffException e) {
			e.printStackTrace();
		}
	}