Java生成Excel文件,单个文件生成多张表
package com.myFirstSpring.test;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
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 com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.JsonObject;
import com.myFirstSpring.util.HtmlTextGatherer;
import com.sun.org.apache.bcel.internal.generic.DADD;
public class MatcDate {
/**比赛抓取---生成Excel文件
* @param args
* @throws WriteException
*/
public static void main(String[] args) throws WriteException {
String url = "http://info.sporttery.cn/livescore/fb_livescore.html";
String html = HtmlTextGatherer.GetData("http://info.sporttery.cn/football/match_result.php", Charset.forName("gbk"));
Document doc = Jsoup.parse(html);
// 获取比赛节点
Elements matchElements = doc.select(".match_list");
matchElements.remove(0);
String baioti[]= {"赛事日期","赛事编号","联赛","主队(让球)","客队","半场比分","全场比分"};
//创建Excel工作簿;
WritableWorkbook workbook;
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
workbook = Workbook.createWorkbook(new File("D:\\"+dateFormat.format(new Date())+"开奖结果数据记录表.xls"));
//创建Excel电子薄;
WritableSheet sheet = workbook.createSheet("第一个Sheet", 0);
WritableSheet sheet2 = workbook.createSheet("第二个sheet", 1);
WritableSheet sheet3 = workbook.createSheet("测试第三个表", 2);
//给sheet电子版中所有的列设置默认的列的宽度;
//sheet.getSettings().setDefaultColumnWidth(30);
//设置字体;
WritableFont font1 = new WritableFont(WritableFont.TIMES, 9, WritableFont.NO_BOLD);
WritableCellFormat cellFormat1 = new WritableCellFormat(font1);
//设置背景颜色;
/*cellFormat1.setBackground(Colour.BLUE_GREY);
//设置边框;
cellFormat1.setBorder(Border.ALL, BorderLineStyle.DASH_DOT);
//设置自动换行;
cellFormat1.setWrap(true);
//设置文字居中对齐方式;
cellFormat1.setAlignment(Alignment.CENTRE);
//设置垂直居中;
cellFormat1.setVerticalAlignment(VerticalAlignment.CENTRE);*/
cellFormat1.setAlignment(Alignment.CENTRE);
// 设置边框线
cellFormat1.setBorder(Border.ALL, BorderLineStyle.THIN);
Label label,label2,label3;
for (int i = 0; i < baioti.length; i++) {
label = new Label(i, 0, baioti[i], cellFormat1);
label2 = new Label(i, 0, baioti[i], cellFormat1);
label3 = new Label(i, 0, baioti[i], cellFormat1);
sheet.addCell(label);
sheet2.addCell(label2);
sheet3.addCell(label3);
}
sheet = addCheckAllAccounts(sheet, matchElements.select("tr"), cellFormat1);
sheet2 = addCheckAllAccounts(sheet2, matchElements.select("tr"), cellFormat1);//select("tr")
//写入Excel表格中;
workbook.write();
//关闭流;
workbook.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//System.out.println(html);
}
private static WritableSheet addCheckAllAccounts(WritableSheet sheet,
Elements matchElements, WritableCellFormat cellFormat1) throws RowsExceededException, WriteException {
Iterator<Element> i = matchElements.iterator();
jxl.write.Label label1 ;
//设置字体颜色
WritableFont fontTitle = new WritableFont(WritableFont.TIMES, 9, WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.RED);
WritableCellFormat wc_colour = new WritableCellFormat(fontTitle);
wc_colour.setVerticalAlignment(VerticalAlignment.CENTRE);
//正式的情况下是一个list数据集合解析 或者map
//写入数据到Excel表中
for (int j = 0; j < 2; j++) {
label1 = new Label(0, j+1, "测试数据"+j, cellFormat1); //参数: 第几列 、第几行、数据、字体设置大小颜色和宽高
sheet.addCell(label1);
label1 = new Label(1, j+1, "352"+j, wc_colour);
sheet.addCell(label1);
label1 = new Label(2, j+1, "往后"+j, cellFormat1);
sheet.addCell(label1);
}
return sheet;
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战