-
大小: 910KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-05-21
- 语言: Java
- 标签: excelJsoup
资源简介
要求能够实现给出任意带table表格的html文件,生成与表格相同内容的excel文件,附件可以作为测试文件,提供给定的roster.html文件,通过java代码,实现生成与html页面的table相同样式的roster.xls文件。
代码片段和文件信息
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
///COPY BY 安卓无忧
public class HTMLTOExcel {
public static void main(String args[]) throws IOException{
///读取classpath目录下面的路径
String path=HTMLTOExcel.class.getResource(“/“).getPath();
path+=“roster.html“;
toExcel(path“roster“);
}
//得到Document并且设置编码格式
public static Document getDoc(String fileName) throws IOException{
File myFile=new File(fileName);
Document doc= Jsoup.parse(myFile “GBK“““);
return doc;
}
///这个方法用于根据trs行数和sheet画出整个表格
public static void mergeColRow(Elements trsWritableSheet sheet) throws RowsExceededException WriteException{
int[][] rowhb=new int[300][50];
for(int i=0;i Element tr=trs.get(i);
Elements tds=tr.getElementsByTag(“td“);
int realColNum=0;
for(int j=0;j Element td=tds.get(j);
if(rowhb[i][realColNum]!=0){
realColNum=getRealColNum(rowhbirealColNum);
}
int rowspan=1;
int colspan=1;
if(td.attr(“rowspan“)!=““){
rowspan = Integer.parseInt(td.attr(“rowspan“));
}
if(td.attr(“colspan“)!=““){
colspan = Integer.parseInt(td.attr(“colspan“));
}
String text=td.text();
drawMegerCell(rowspancolspansheetrealColNumitextrowhb);
realColNum=realColNum+colspan;
}
}
}
///这个方法用于根据样式画出单元格,并且根据rowpan和colspan合并单元格
public static void drawMegerCell(int rowspanint colspanWritableSheet sheetint realColNumint realRowNumString textint[][] rowhb) throws RowsExceededException WriteException{
for(int i=0;i for(int j=0;j if(i!=0||j!=0){
text=““;
}
Label label = new Label(realColNum+jrealRowNum+itext);
WritableFont countents = new WritableFont(WritableFont.TIMES10); // 设置单元格内容,字号12
WritableCellFormat cellf = new WritableCellFormat(countents );
cellf.setAlignment(jxl.format.Alignment.CENTRE);//把水平对齐方式指定为居中
cellf.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//把垂直对齐方式指定为居
label.setCellFormat(cellf);
sheet.addCell(label);
rowhb[realRowNum+i][realColNum+j]=1;
}
}
sheet.mergeCells(realColNumrealRowNum realColNum+colspan-1realRowNum+rowspan-1);
}
public static int getRealColNum(int[][] rowhbint iint realColNum){
while(rowhb[i][realColNum]!=0){
realColNum++;
}
return realColNum;
}
///根据colgroup
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-09-23 12:14 HtmlToExcel\
文件 409 2014-11-12 10:57 HtmlToExcel\.classpath
文件 387 2014-11-12 10:51 HtmlToExcel\.project
目录 0 2016-09-23 12:14 HtmlToExcel\.settings\
文件 629 2014-11-12 10:51 HtmlToExcel\.settings\org.eclipse.jdt.core.prefs
目录 0 2016-09-23 12:14 HtmlToExcel\bin\
文件 5743 2016-09-23 12:12 HtmlToExcel\bin\HTMLTOExcel.class
文件 17644 2016-09-23 11:53 HtmlToExcel\bin\roster.html
文件 14848 2016-09-23 12:06 HtmlToExcel\bin\roster.xls
目录 0 2016-09-23 12:14 HtmlToExcel\lib\
文件 300844 2014-11-12 10:57 HtmlToExcel\lib\jsoup-1.8.1.jar
文件 704543 2014-11-12 10:54 HtmlToExcel\lib\jxl.jar
目录 0 2016-09-23 12:14 HtmlToExcel\src\
文件 4874 2016-09-23 12:12 HtmlToExcel\src\HTMLTOExcel.java
文件 17644 2016-09-23 11:53 HtmlToExcel\src\roster.html
文件 177 2016-09-23 12:12 HtmlToExcel\请先阅读我.txt
评论
共有 条评论