Package org.jsoup.select

Examples of org.jsoup.select.Elements


    }
   
    private static void testHTMLExcelBridge(String content) throws Exception, ExcelException{
      Document doc = Jsoup.parseBodyFragment(content);
      Elements sheets = doc.select("table");
      HTMLExcelBridge heb = new HTMLExcelBridge(sheets);
      heb.reEvaluateAll();
      System.out.println(sheets.toString());
    }
View Full Code Here


      try {
//        byte[] html = doc.toString().getBytes("utf-8");
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
//        DocumentConverter.convert(doc.toString().getBytes("utf-8"), "html", bos, "xls");
        Workbook wb = WorkbookFactory.create(new ByteArrayInputStream(bos.toByteArray()));
        Elements tableElements = doc.select("table");
        for(int i=0;i<tableElements.size();i++){
          Element table = tableElements.get(i);
          if(table.hasAttr("title")){
            if(wb.getNumberOfSheets()>i){
              wb.setSheetName(i, table.attr("title"));
            }
          }
View Full Code Here

    
  }
  public static void appendEmptyRowAndColumn(Element table,int row,int column){
    int totalColumns = -1;
    if(table!=null){
      Elements colgroups = table.select("colgroup");
      if(colgroups.size()>0){
        Element colgroup = colgroups.get(0);
        totalColumns = column+colgroup.children().size();
        for(int i=0;i<column;i++){
          colgroup.prepend("<col width=\"67\" />");
        }
      }
      Elements tbodys = table.select("tbody");
      if(tbodys.size()>0){
        Element tbody = tbodys.get(0);
        for(int i=0;i<row;i++){
          tbody.prepend("<tr/>");
          for(int j=0;j<totalColumns;j++){
            tbody.child(0).append("<td/>");
          }
View Full Code Here

    }
  }
 
  public static void setTableFormula(Element table,int row,int column,String formula){
    if(table!=null){
      Elements trs = table.select("tr");
      if(trs.size()>row){
        Element tr = trs.get(row);
        Elements tds = tr.children();
        if(tds.size()>column){
          Element td = tds.get(column);
          if(!StringUtils.isBlank(formula)){
            if(formula.startsWith("=")){
              td.attr("formula",formula);
            }else{
              td.attr("formula","="+formula);
View Full Code Here

    }
  }
 
  public static void adjustStyle(Element element){
    if(element!=null&&element.tagName().equalsIgnoreCase("table")){
      Elements trs = element.select("tr");
      for(int tri=0;tri<trs.size();tri++){
        Element tr = trs.get(tri);
        int trHeight = -1;
        if(tr.hasAttr("height")){
          String trHeightS = tr.attr("height");
          try{
            trHeight = Integer.parseInt(trHeightS);
          }catch(NumberFormatException e){
            e.printStackTrace();
          }
        }
        Elements tds = tr.children();
        int tdHeight = -1;
        for(int tdi=0;tdi<tds.size();tdi++){
          Element td = tds.get(tdi);
          if(td.hasAttr("height")){
            String tdHeightS = td.attr("height");
            try{
              tdHeight = Integer.parseInt(tdHeightS);
            }catch(NumberFormatException e){
              e.printStackTrace();
            }
          }
          if(tdHeight>trHeight){
            trHeight = tdHeight;
          }
          /**!
           * 处理生成的HTML的颜色的问题
           */
          Elements fonts = td.select("font");
          if(fonts.size()==0){
            css(td,"font-size","1.64em");
          }
          for(int fonti=0;fonti<fonts.size();fonti++){
            Element font = fonts.get(fonti);
            if(font.hasAttr("size")){
              String fontsizeS = font.attr("size");
              try{
                int fontsize = Integer.parseInt(fontsizeS);
                switch(fontsize){
View Full Code Here

   * 对于每个table,如果有合并的单元格,需要检查所有的tr td是否具有相同的行数和列数
   * @param element
   */
  public static void adjustColspanAndRowspan(Element element){
    if(element!=null&&element.tagName().equalsIgnoreCase("table")){
      Elements trs = element.select("tr");
      int totalMaxColumns = 0;
      final int[] colspans = new int[trs.size()];
      for(int tri=0;tri<trs.size();tri++){
        Element tr = trs.get(tri);
//        Elements tds = tr.select("td");
        Elements tds = tr.children();
        int totalColumns = 0;
        for(int tdi=0;tdi<tds.size();tdi++){
          Element td = tds.get(tdi);
          int colspan = 1;
          if(td.hasAttr("colspan")){
            try{
              colspan = Integer.parseInt(td.attr("colspan"));
            }catch(NumberFormatException e){
              e.printStackTrace();
            }
          }
          totalColumns += colspan;
        }
        if(totalColumns>totalMaxColumns){
          totalMaxColumns = totalColumns;
        }
      }
      for(int tri=0;tri<trs.size();tri++){
        Element tr = trs.get(tri);
        Elements tds = tr.select("td");
//        if(tds.size()<totalMaxColumns){
          int totalColumns = 0;
          for(int tdi=0;tdi<tds.size();tdi++){
            Element td = tds.get(tdi);
            int colspan = 1;
            if(td.hasAttr("colspan")){
              try{
                colspan = Integer.parseInt(td.attr("colspan"));
              }catch(NumberFormatException e){
                e.printStackTrace();
              }
              for(int coli=0;coli<colspan-1;coli++){
                td.after("<td style=\"display: none;\"/>");
              }
            }
            int rowspan = 1;
            if(td.hasAttr("rowspan")){
              try{
                rowspan = Integer.parseInt(td.attr("rowspan"));
              }catch(NumberFormatException e){
                e.printStackTrace();
              }
              for(int rowi=1;rowi<rowspan;rowi++){
                if(tri+rowi<trs.size()){
                  Element nextRow = trs.get(tri+rowi);
                  if(nextRow!=null){
                    Elements nextRowCells = nextRow.select("td");
                    for(int coli=0;coli<colspan;coli++){
                      if(nextRowCells.size()>tdi){
                        nextRowCells.get(tdi).before("<td style=\"display: none;\"/>");
                      }
                    }
                  }
                }else{
                  Element newTr = element.child(0).append("<tr/>");
                  for(int newtdi=0;newtdi<tdi;newtdi++){
                    newTr.append("<td/>");
                  }
                  Elements nextRowCells = newTr.select("td");
                  for(int coli=0;coli<colspan;coli++){
                    if(nextRowCells.size()>tdi){
                      nextRowCells.get(tdi).before("<td style=\"display: none;\"/>");
                    }
                  }
                }
              }
            }
View Full Code Here

  public void addRows(int sheetIndex,int index,int count){
    if(sheetIndex<getNumberOfSheets()){
      int colNumber = getNumberOfColumns(sheetIndex);
      int rowNumber = getNumberOfRows(sheetIndex);
      Element table = tables.get(sheetIndex);
      Elements trs = table.select("tr");
      if(index<rowNumber){
        if(index<0){
          Element tr = trs.get(0);
          for(int i=0;i<count;i++){
            Element newTr = getDefaultTr();
            tr.before(newTr);
            for(int j=0;j<colNumber;j++){
              newTr.appendChild(getDefaultTd());
            }
          }
        }else{
          Element tr = trs.get(index);
          for(int i=0;i<count;i++){
            Element newTr = getDefaultTr();
            tr.before(newTr);
            for(int j=0;j<colNumber;j++){
              newTr.appendChild(getDefaultTd());
            }
          }
        }
      }else{
        Element tr = trs.last();
        for(int i=0;i<count;i++){
          Element newTr = getDefaultTr();
          tr.after(newTr);
          for(int j=0;j<colNumber;j++){
            newTr.appendChild(getDefaultTd());
View Full Code Here

  public void addColumns(int sheetIndex,int index,int count){
    if(sheetIndex<getNumberOfSheets()){
      int colNumber = getNumberOfColumns(sheetIndex);
      int rowNumber = getNumberOfRows(sheetIndex);
      Element table = tables.get(sheetIndex);
      Elements trs = table.select("tr");
      Elements colgroup = table.select("colgroup");
      if(index<colNumber){
        if(index<0){
          for(int i=0;i<rowNumber;i++){
            Element tr = trs.get(i);
            for(int j=0;j<count;j++){
              tr.prependChild(getDefaultTd());
            }
          }
          if(colgroup.size()>0){
            for(int i=0;i<count;i++){
              colgroup.get(0).prependChild(getDefaultCol());
            }
          }
        }else{
          for(int i=0;i<rowNumber;i++){
            Element tr = trs.get(i);
            Element td = tr.children().get(index);
            for(int j=0;j<count;j++){
              td.before(getDefaultTd());
            }
          }
          if(colgroup.size()>0){
            Elements cols = colgroup.get(0).children();
            if(cols.size()>index){
              for(int i=0;i<count;i++){
                cols.get(index).before(getDefaultCol());
              }
            }
          }
        }
      }else{
View Full Code Here

  }
 
  public int getNumberOfColumns(int sheet){
    if(sheet<getNumberOfSheets()){
      Element table = tables.get(sheet);
      Elements trs = table.select("tr");
      if(trs.size()>0){
        Element tr = trs.get(0);
        return tr.select("td").size();
      }
    }
    return 0;
  }
View Full Code Here

  }
 
  public boolean setCellValue(int sheetNumber,int row,int column,String value){
    if(sheetNumber<getNumberOfSheets()){
      Element table = tables.get(sheetNumber);
      Elements trs = table.select("tr");
      if(row<trs.size()){
        Element tr = trs.get(row);
        Elements tds = tr.select("td");
        if(column<tds.size()){
          Element td = tds.get(column);
          if(td!=null){
            td.html(value);
            return true;
          }
        }else{
          int addColumns = column-tds.size()+1;
          addColumns(sheetNumber,tds.size(),addColumns);
          setCellValue(sheetNumber,row,column,value);
        }
      }else{
        int addRows = row-trs.size()+1;
        addRows(sheetNumber,trs.size(),addRows);
View Full Code Here

TOP

Related Classes of org.jsoup.select.Elements

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.