public class Excel {
static String xml_path="";
static String[] days;
static String server="";
//读取配置文件信息
static{
InputStream is=Excel.class.getResourceAsStream("config.properties");
Properties p=new Properties();
try {
p.load(is);
xml_path=p.getProperty("xml_path").trim();
server=p.getProperty("server").trim();
if(!xml_path.endsWith("/"))xml_path=xml_path+"/";
days=p.getProperty("day").trim().split(",");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param args
* @throws DocumentException
* @throws IOException
*/
public static void main(String[] args) throws IOException, DocumentException {
for (String day : days){
createExcel(day);
System.out.println("----------"+day.replace('-', '.')+"---------");
}
}
public static List paraXml(String day) throws IOException, DocumentException{
SAXReader reader = new SAXReader();
InputStream inputStream = new FileInputStream(new File(day+".xml"));
Document doc = reader.read(inputStream);
Element root = doc.getRootElement();
List _list = root.elements("time");
return _list;
}
public static void createExcel(String day){
System.out.println("开始");
try{
//打开文件
WritableWorkbook book=Workbook.createWorkbook(new File("vod+电视回看应用服务器数据监控表("+day.replace('-', '.')+"."+server+")"+".xls"));
WritableSheet sheet=book.createSheet("第一页",0);
//设置字体
WritableFont NormalFont = new WritableFont(WritableFont.createFont("宋体"), 12,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.WHITE);
WritableFont BoldFont = new WritableFont(WritableFont.createFont("宋体"), 20 ,WritableFont.BOLD);
WritableFont tableFont = new WritableFont(WritableFont.createFont("宋体"), 11 , WritableFont.NO_BOLD);
WritableFont baodanFont = new WritableFont(WritableFont.ARIAL, 10 , WritableFont.BOLD);
//设置标题
WritableCellFormat wcf_title = new WritableCellFormat(BoldFont);
wcf_title.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
wcf_title.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐
wcf_title.setAlignment(Alignment.CENTRE); // 水平对齐
wcf_title.setWrap( true ); // 是否换行
sheet.mergeCells(0, 0, 8, 0); //合并第一行的8列
Label label=new Label(0,0,"VOD+电视回看应用服务器数据监控表("+day.replace('-', '.')+"."+server+")",wcf_title);
sheet.addCell(label);
//设置行高
sheet.setRowView( 0 , 900 , false );
for(int i=0;i<=8;i++){
if(i==2||i==6||i==8){
sheet.setColumnView(i, 21); //设置列宽
}else if(i==5||i==7){
sheet.setColumnView(i, 19);
}else{
sheet.setColumnView(i, 17);
}
}
for(int i=1;i<=25;i++){
sheet.setRowView( i , 500 , false );
}
//设置正文
WritableCellFormat wcf = new WritableCellFormat(NormalFont);
wcf.setBorder(Border.ALL, BorderLineStyle.THIN);
wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
wcf.setAlignment(Alignment.LEFT);
wcf.setBackground(Colour.GREEN);
wcf.setWrap( true );
//将定义好的单元格添加到工作表中
/*生成一个保存数字的单元格
必须使用Number的完整包路径,否则有语法歧义
单元格位置是第二列,第一行,值为789.123*/
//jxl.write.Number number=new jxl.write.Number(1,1,123);
//sheet.addCell(number);
//Label(colum,row,string,style);
Label label0=new Label(0,1,"时间/监控项",wcf);
Label label1=new Label(1,1,"毫秒级并发数",wcf);
Label label2=new Label(2,1,"服务器在线用户数",wcf);
Label label3=new Label(3,1,"服务器访问量",wcf);
Label label4=new Label(4,1,"服务器连接数",wcf);
Label label5=new Label(5,1,"最大并发用户数",wcf);
Label label6=new Label(6,1,"最大并发用户时间",wcf);
Label label7=new Label(7,1,"最大并发连接数",wcf);
Label label8=new Label(8,1,"最大并发连接时间",wcf);
sheet.addCell(label0);
sheet.addCell(label1);
sheet.addCell(label2);
sheet.addCell(label3);
sheet.addCell(label4);
sheet.addCell(label5);
sheet.addCell(label6);
sheet.addCell(label7);
sheet.addCell(label8);
WritableCellFormat wcf_time = new WritableCellFormat(tableFont);
wcf_time.setBorder(Border.ALL, BorderLineStyle.THIN);
wcf_time.setVerticalAlignment(VerticalAlignment.CENTRE);
wcf_time.setAlignment(Alignment.RIGHT);
wcf_time.setWrap( true );
//将xml里的数据放到excel里
for (int i = 0; i <paraXml(day).size(); i++) {
Element _item = (Element) paraXml(day).get(i);
String time=_item.attributeValue("value");
String millse_count = _item.element("millse_count").attributeValue("value");
String server_users = _item.element("server_users").attributeValue("value");
String server_visitors = _item.element("server_visitors").attributeValue("value");
String server_connctors = _item.element("server_connctors").attributeValue("value");
String max_users = _item.element("max_users").attributeValue("value");
String max_users_time = _item.element("max_users").attributeValue("time");
String max_connectors = _item.element("max_connectors").attributeValue("value");
String max_connectors_time = _item.element("max_connectors").attributeValue("time");
Label ltime=new Label(0,i+2,time,wcf_time);
jxl.write.Number lmillse_count=new jxl.write.Number(1,i+2,Integer.parseInt(millse_count),wcf_time);
jxl.write.Number lserver_users=new jxl.write.Number(2,i+2,Integer.parseInt(server_users),wcf_time);
jxl.write.Number lserver_visitors=new jxl.write.Number(3,i+2,Integer.parseInt(server_visitors),wcf_time);
jxl.write.Number lserver_connctors=new jxl.write.Number(4,i+2,Integer.parseInt(server_connctors),wcf_time);
jxl.write.Number lmax_users=new jxl.write.Number(5,i+2,Integer.parseInt(max_users),wcf_time);
Label lmax_users_time=new Label(6,i+2,max_users_time,wcf_time);
jxl.write.Number lmax_connectors=new jxl.write.Number(7,i+2,Integer.parseInt(max_connectors),wcf_time);
Label lmax_connectors_time=new Label(8,i+2,max_connectors_time,wcf_time);
sheet.addCell(ltime);
sheet.addCell(lmillse_count);
sheet.addCell(lserver_users);
sheet.addCell(lserver_visitors);
sheet.addCell(lserver_connctors);
sheet.addCell(lmax_users);
sheet.addCell(lmax_users_time);
sheet.addCell(lmax_connectors);
sheet.addCell(lmax_connectors_time);
System.out.println("------"+time+"-----------:"+millse_count);
}
Label lt=new Label(0,25,"总计:",wcf_time);
sheet.addCell(lt);
for(int i=1;i<=8;i++){
Label ll=new Label(i,25,"",wcf_time);
sheet.addCell(ll);
}
//写入数据并关闭文件
book.write();
book.close();
}catch(Exception e){
System.out.println(e);
}
System.out.println("结束");
}
}
config.properties配置文件里:
day=2012-03-01
path=F:/log
xml_path=F:
server=204
分享到:
相关推荐
6. **读取Excel**:除了生成Excel文件,jxl还可以读取已有的Excel文件,将其内容转化为Java数据结构,便于处理和分析。 7. **示例代码**:通常,使用jxl的流程包括加载模板文件,找到要填充的单元格,使用`Cell....
对于数据库导出到Excel,通常涉及查询数据库并将结果集转换为Excel格式。你可以使用JDBC连接数据库,执行SQL查询,然后遍历结果集,逐行写入到Excel工作表中。例如: ```java ResultSet resultSet = statement....
本篇文章将详细介绍如何利用JXL将数据库的数据导出到Excel。 首先,要使用JXL,你需要在项目中引入其依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
将Excel数据转化为XML时,可以考虑创建一个新的XML文件,如res/values/data.xml,用于存储从Excel读取的结构化数据。 6. **数据转换逻辑**: - 读取Excel文件后,遍历每一行和每一列,根据需要将数据封装成相应的...
例如,如果某个字段是日期类型,你可能需要将日期转换为Excel可以识别的格式。同样,数字、布尔值等也需要适当地处理。 总的来说,jxl库提供了一套强大的工具,使得在Java中处理Excel文件变得简单。通过学习和理解...
本文将详细介绍如何使用`jxl.jar`进行Excel操作,并探讨其核心功能和用法。 首先,`jxl.jar`支持的Excel版本主要是微软的.BIFF格式,即Excel 97-2003的文件格式。虽然不直接支持.xlsx格式(Excel 2007及以后版本)...
3. 将接收到的`Part`对象转换为`InputStream`,然后使用JXL的`Workbook`类创建一个新的工作簿对象。 4. 读取工作簿内容,根据需要进行处理或验证。 5. 将处理后的数据保存至数据库或其他持久化存储。 四、Excel下载...
本文将详细介绍如何使用JXL库来读取Excel数据,并通过一个实际的代码示例进行演示。 首先,你需要在项目中引入JXL库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
描述中提到的“导出详细说明,及相关代码和jar”,意味着我们将在接下来的内容中探讨如何使用jxl进行Excel文件的导出,包括必要的代码示例和可能需要的库文件(即jxl.jar)。如果你对任何步骤有疑问,可以通过私聊的...
以下是一份简单的Java源代码示例,演示了如何使用jxl.jar将数据导出到Excel表格: ```java import java.io.FileOutputStream; import java.io.IOException; import jxl.Sheet; import jxl.Workbook; import jxl....
对于HTML格式的Excel,可能需要先将其转换为纯文本或XML格式,然后再用JXL或其他适合处理XML的库(如Apache POI)进行读取。转换过程可能涉及到HTML解析,可以使用Jsoup等库来完成。 在读取Excel文件后,你可以遍历...
可以先将数据转换为二维数组,然后使用`jxl`将这些数据写入Excel文件。 8. **导入数据**:同样,你也可以读取Excel文件中的数据,将其转换为适当的数据结构(如List或Map),然后存入数据库或进行其他处理。 这个...
JXL支持多种Excel文件格式,包括.xls(Excel 97-2003 Binary File Format)和.xlsx(Office Open XML Spreadsheet)。这使得它能够兼容不同版本的Microsoft Office,包括早期的97、2000、2003以及后来的2007、2010、...
本文将详细介绍如何使用jxl库来读取Excel文件,并将其内容存储到MySQL数据库中。 首先,我们需要了解jxl库。jxl是Java的一个开源库,专门用于读写Excel文件。它支持多种版本的Excel格式,包括97-2003(.xls)和2007...
又或者,在数据迁移过程中,可能需要将大量数据库数据转换为Excel格式进行存储或交换。在这种情况下,jxl.jar的高效性能和简洁API使得这些任务变得轻松可行。 尽管jxl.jar不能处理.xlsx格式,但针对需要处理新格式...
读取模块用于解析Excel文件并将其内容转换为Java对象,而写入模块则负责将Java对象的数据写入到Excel文件中。通过这两个模块,开发者可以方便地进行Excel数据的处理。 1. **安装与引入** 要使用jxl.jar,首先需要...
在这个案例中,我们将探讨如何使用Java的JDOM库解析XML文件,然后借助JXL库将提取的数据写入Excel工作表。以下是对这一技术实现的详细解释。 首先,让我们了解XML文件。XML(eXtensible Markup Language)是一种...
标题"jxl驱动包,从JTable中到处数据到excel JAVA"表明,这个驱动包的核心功能是将JTable中的数据转换成Excel文件。JTable是Java Swing组件,用于显示和编辑表格数据,而jxl库则提供API,允许我们将这些数据写入...
本文将深入探讨如何利用`jxl`包来实现向Excel模板中写入数据,并保留原有模板的完整性。 首先,让我们了解`jxl`库的基本概念。`jxl`库提供了丰富的API,可以方便地操作Excel文件的各种组件,如工作簿(Workbook)、...