⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getstarters.java

📁 java写的读取香港马术比赛数据,分析并导入到EXCEL的源码,可供研究用。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			    		cells.set(3, D);
			    		cells.set(4, E);
			    		cells.set(5, F);
			    		cells.set(6, G);
			    		cells.set(7, H);
			    		cells.set(8, I);
			    		cells.set(9, J);
			    		cells.set(10, K);
			    		cells.set(11, L);
			    		cells.set(12, M);
			    		cells.set(13, N);
			    		cells.set(14, O);
			    		cells.set(15, P);
			    		cells.set(16, Q);
			    		cells.set(19, T);
			    		cells.set(20, U);
			    		cells.set(21, V);
			    		cells.set(22, W);
			    		
			    		HSSFRow row = sheet.createRow((short) count);
			    		setRow(wb, row, cells);
						count++;
						
						hourseCount++;
					}
				}
			}
			//T列
			parser.setInputHTML(html);
			nl = parser.extractAllNodesThatMatch(reversedFilter);
			if (nl.size() > 0) {
//				for (int i=0;i<nl.size();i++) {
//					System.out.println(i + ": " + nl.elementAt(i).getParent().toPlainTextString());
//				}
				List<TableRow> reversed = new ArrayList<TableRow>();
				NodeList children = nl.elementAt(0).getParent().getParent().getParent().getChildren();
				for (int i=0;i<children.size();i++) {
					if (children.elementAt(i) instanceof TableRow) {
						reversed.add((TableRow)children.elementAt(i));
					}
				}
				if (reversed.size() > 2) {
					for (int i=2;i<reversed.size();i++) {
						TableRow TR = reversed.get(i);
						NodeList Cols = TR.getChildren();
						List<String> cells = new ArrayList<String>();
			    		for (int m=0;m<50;m++) cells.add(null);
			    		cells.set(3, D);
			    		cells.set(4, E);
			    		cells.set(5, F);
			    		cells.set(6, G);
			    		cells.set(7, H);
			    		cells.set(8, I);
			    		cells.set(9, J);
			    		cells.set(10, K);
			    		cells.set(11, Cols.elementAt(1).toPlainTextString().trim());
			    		cells.set(12, Cols.elementAt(5).toPlainTextString().trim());
			    		//cells.set(13, N);
			    		//cells.set(14, O);
			    		cells.set(15, Cols.elementAt(4).toPlainTextString().trim());
			    		cells.set(16, Cols.elementAt(3).toPlainTextString().trim());
			    		cells.set(19, Cols.elementAt(0).toPlainTextString().trim());
			    		//cells.set(20, U);
			    		cells.set(21, Cols.elementAt(7).toPlainTextString().trim());
			    		cells.set(22, ""+hourseCount);
			    		HSSFRow row = sheet.createRow((short) count);
			    		setRow(wb, row, cells);
						count++;
						hourseCount++;
					}
				}
			}
		}
		
		FileOutputStream fileOut = new FileOutputStream(file);
        wb.write(fileOut);
        fileOut.close();
		System.out.println("导出排位表完毕");
	}
	
	private void setRow(HSSFWorkbook wb, HSSFRow row, List<String> cells) {
		HttpUtil util = new HttpUtil();
		for (int i=0;i<cells.size();i++) {
			HSSFCell cell = row.createCell((short) i);
			String temp = cells.get(i);
			switch (i) {
            case 2:
            case 4:
            case 5:
            case 8:
            case 12:
            case 13:
            case 15:
            case 16:
            case 19:
            case 22:
            case 25:
            case 26:
            case 27:
            case 28:
            case 29:
            case 35:
            case 36:
            case 38:
            case 39:
            case 40:
            case 49:
            	if (temp != null && temp.trim().length() > 0) {
                    try {
                        cell.setCellValue(Double.parseDouble(temp));
                    } catch (Exception e) {
                        //System.out.println("出错列:" + i);
                        //e.printStackTrace();
                    	cell.setEncoding(HSSFCell.ENCODING_UTF_16);
                        cell.setCellValue(temp);
                    }
            	}
                break;
            case 48:
            	if (temp != null && temp.trim().length() > 0) {
            		temp = util.toChinese(temp);
                    try {
                        cell.setCellValue(Double.parseDouble(temp));
                    } catch (Exception e) {
                        //System.out.println("出错列:" + i);
                        //e.printStackTrace();
                    	cell.setEncoding(HSSFCell.ENCODING_UTF_16);
                        cell.setCellValue(temp);
                    }
            	}
                break;
            case 6:
            case 10:
            case 11:
            case 20:
            case 21:
            	if (temp != null && temp.trim().length() > 0) {
            		temp = util.toChinese(temp);
            		if (i == 20) {
            			String[] arr = temp.split(" ");
            			if (arr.length > 0) temp = arr[0];
            		}
            		cell.setEncoding(HSSFCell.ENCODING_UTF_16);
                    cell.setCellValue(temp);
            	}
            	break;
            case 3:
            	if (temp != null && temp.trim().length() > 0) {
            		try {
            			temp = temp.substring(0,4)+"-"+temp.substring(4,6)+"-"+temp.substring(6,8);
            			Date d = new SimpleDateFormat("yyyy-MM-dd").parse(temp);
            			
            			HSSFCellStyle cellStyle = wb.createCellStyle();
            		    cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("d-mmm-yy"));
            		    cell.setCellValue(d);
            		    cell.setCellStyle(cellStyle);
            		} catch (Exception e) {
                        //System.out.println("出错列:" + i);
                        //e.printStackTrace();
            			cell.setEncoding(HSSFCell.ENCODING_UTF_16);
                        cell.setCellValue(temp);
                    }
            	}
            	break;
            default:
            	if (temp != null && temp.trim().length() > 0) {
	                cell.setEncoding(HSSFCell.ENCODING_UTF_16);
	                cell.setCellValue(temp);
            	}
			}
		}
	}
	
	private NodeFilter Table3Filter = new NodeFilter() {
		public boolean accept(Node node) {
            if (node instanceof Tag) {
                Tag tag = (Tag) node;
                if (tag instanceof TableTag && "Table3".equals(tag.getAttribute("id"))) {
                    return true;
                }
            }
            return false;
        }
    };
    private NodeFilter TdNowrapCenterFilter = new NodeFilter() {
		public boolean accept(Node node) {
            if (node instanceof Tag) {
                Tag tag = (Tag) node;
                if (tag instanceof TableColumn && "middle".equals(tag.getAttribute("align"))) {
                    return true;
                }
            }
            return false;
        }
    };
    
    private NodeFilter FontSize2FaceAHSFilter = new NodeFilter() {
		public boolean accept(Node node) {
            if (node instanceof Tag) {
                Tag tag = (Tag) node;
                if ("font".equals(tag.getTagName().toLowerCase()) && "Arial, Helvetica, sans-serif".equals(tag.getAttribute("face")) && "2".equals(tag.getAttribute("size")) && tag.getAttribute("color") == null) {
                    return true;
                }
            }
            return false;
        }
    };
    private NodeFilter FontSize2FaceHKSCSFilter = new NodeFilter() {
		public boolean accept(Node node) {
            if (node instanceof Tag) {
                Tag tag = (Tag) node;
                if ("font".equals(tag.getTagName().toLowerCase()) && "細明體_HKSCS,Arial, Helvetica, sans-serif".equals(tag.getAttribute("face")) && "2".equals(tag.getAttribute("size")) && tag.getAttribute("color") == null) {
                    return true;
                }
            }
            return false;
        }
    };
    private NodeFilter ScriptFilter = new NodeFilter() {
		public boolean accept(Node node) {
            if (node instanceof ScriptTag) {
            	Tag tag = (Tag) node;
                if ("javascript".equals(tag.getAttribute("language")) && tag.getAttribute("src") == null) {
                    return true;
                }
            }
            return false;
        }
    };
    private NodeFilter reversedFilter = new NodeFilter() {
		public boolean accept(Node node) {
            if (node instanceof Tag) {
            	Tag tag = (Tag) node;
                if ("b".equals(tag.getTagName().toLowerCase()) && tag.getParent().toPlainTextString().contains("後 備 馬 匹")) {
                    return true;
                }
            }
            return false;
        }
    };
    
    public static void main(String[] args) throws Exception {
    	GetStarters get = new GetStarters();
    	HttpUtil client = new HttpUtil();
    	get.UpdateStarters(client, new File("C:\\pre-race.xls"));
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -