📄 getstarters.java
字号:
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 + -