`
youngJava
  • 浏览: 16256 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

jxl将xml转换成excel

阅读更多
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
  • jxl.jar (708.7 KB)
  • 下载次数: 6
分享到:
评论

相关推荐

    jxl模版生成excel

    6. **读取Excel**:除了生成Excel文件,jxl还可以读取已有的Excel文件,将其内容转化为Java数据结构,便于处理和分析。 7. **示例代码**:通常,使用jxl的流程包括加载模板文件,找到要填充的单元格,使用`Cell....

    JXL操作EXCEL 数据库导出EXCEL相关文件

    对于数据库导出到Excel,通常涉及查询数据库并将结果集转换为Excel格式。你可以使用JDBC连接数据库,执行SQL查询,然后遍历结果集,逐行写入到Excel工作表中。例如: ```java ResultSet resultSet = statement....

    使用jxl将数据库的数据导出到Excel

    本篇文章将详细介绍如何利用JXL将数据库的数据导出到Excel。 首先,要使用JXL,你需要在项目中引入其依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    android 读取Excel文件转成xml文件

    将Excel数据转化为XML时,可以考虑创建一个新的XML文件,如res/values/data.xml,用于存储从Excel读取的结构化数据。 6. **数据转换逻辑**: - 读取Excel文件后,遍历每一行和每一列,根据需要将数据封装成相应的...

    利用jxl实现数据库内容导出Excel

    例如,如果某个字段是日期类型,你可能需要将日期转换为Excel可以识别的格式。同样,数字、布尔值等也需要适当地处理。 总的来说,jxl库提供了一套强大的工具,使得在Java中处理Excel文件变得简单。通过学习和理解...

    jxl.jar_java操作excel表格的jar包

    本文将详细介绍如何使用`jxl.jar`进行Excel操作,并探讨其核心功能和用法。 首先,`jxl.jar`支持的Excel版本主要是微软的.BIFF格式,即Excel 97-2003的文件格式。虽然不直接支持.xlsx格式(Excel 2007及以后版本)...

    jxl实现excel上传下载全部功能

    3. 将接收到的`Part`对象转换为`InputStream`,然后使用JXL的`Workbook`类创建一个新的工作簿对象。 4. 读取工作簿内容,根据需要进行处理或验证。 5. 将处理后的数据保存至数据库或其他持久化存储。 四、Excel下载...

    jxl读取excel数据(带实例)

    本文将详细介绍如何使用JXL库来读取Excel数据,并通过一个实际的代码示例进行演示。 首先,你需要在项目中引入JXL库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    jxl导出excel

    描述中提到的“导出详细说明,及相关代码和jar”,意味着我们将在接下来的内容中探讨如何使用jxl进行Excel文件的导出,包括必要的代码示例和可能需要的库文件(即jxl.jar)。如果你对任何步骤有疑问,可以通过私聊的...

    java将数据导出到Excel表格(java源文件+jxl.jar包)

    以下是一份简单的Java源代码示例,演示了如何使用jxl.jar将数据导出到Excel表格: ```java import java.io.FileOutputStream; import java.io.IOException; import jxl.Sheet; import jxl.Workbook; import jxl....

    用jxl实现的读取excel(可以处理html格式的excel)

    对于HTML格式的Excel,可能需要先将其转换为纯文本或XML格式,然后再用JXL或其他适合处理XML的库(如Apache POI)进行读取。转换过程可能涉及到HTML解析,可以使用Jsoup等库来完成。 在读取Excel文件后,你可以遍历...

    jxl导入导出excel完美运行demo

    可以先将数据转换为二维数组,然后使用`jxl`将这些数据写入Excel文件。 8. **导入数据**:同样,你也可以读取Excel文件中的数据,将其转换为适当的数据结构(如List或Map),然后存入数据库或进行其他处理。 这个...

    JXL对EXCEL的支持

    JXL支持多种Excel文件格式,包括.xls(Excel 97-2003 Binary File Format)和.xlsx(Office Open XML Spreadsheet)。这使得它能够兼容不同版本的Microsoft Office,包括早期的97、2000、2003以及后来的2007、2010、...

    java后台jxl将excel数据导入到MYSQL中

    本文将详细介绍如何使用jxl库来读取Excel文件,并将其内容存储到MySQL数据库中。 首先,我们需要了解jxl库。jxl是Java的一个开源库,专门用于读写Excel文件。它支持多种版本的Excel格式,包括97-2003(.xls)和2007...

    jxl.jar excel操作包

    又或者,在数据迁移过程中,可能需要将大量数据库数据转换为Excel格式进行存储或交换。在这种情况下,jxl.jar的高效性能和简洁API使得这些任务变得轻松可行。 尽管jxl.jar不能处理.xlsx格式,但针对需要处理新格式...

    jxl.jar用于用于学习excel的包

    读取模块用于解析Excel文件并将其内容转换为Java对象,而写入模块则负责将Java对象的数据写入到Excel文件中。通过这两个模块,开发者可以方便地进行Excel数据的处理。 1. **安装与引入** 要使用jxl.jar,首先需要...

    将两个XML文件部分内容读出写入EXCEL

    在这个案例中,我们将探讨如何使用Java的JDOM库解析XML文件,然后借助JXL库将提取的数据写入Excel工作表。以下是对这一技术实现的详细解释。 首先,让我们了解XML文件。XML(eXtensible Markup Language)是一种...

    jxl驱动包,从JTable中到处数据到excel JAVA

    标题"jxl驱动包,从JTable中到处数据到excel JAVA"表明,这个驱动包的核心功能是将JTable中的数据转换成Excel文件。JTable是Java Swing组件,用于显示和编辑表格数据,而jxl库则提供API,允许我们将这些数据写入...

    使用jxl包向excle模板中写入数据

    本文将深入探讨如何利用`jxl`包来实现向Excel模板中写入数据,并保留原有模板的完整性。 首先,让我们了解`jxl`库的基本概念。`jxl`库提供了丰富的API,可以方便地操作Excel文件的各种组件,如工作簿(Workbook)、...

Global site tag (gtag.js) - Google Analytics