java 用jxl将多个excel文件合并成一个多sheet的excel文件

	String url="F:/test/temp1404713514264.xls"+","+"F:/test/temp1404887145242.xls"+","+"F:/test/temp1404887150705.xls";
        	String[] fList=url.split(",");
			try {
		        if(fList.length > 0){
		        	//生成文件路径
		        	tempFile="F:/test/test.xls";
		        	//合并生成
		        	newWb = Workbook.createWorkbook(new File(tempFile));
		        	//输出流
		        	for(int i=0;i<fList.length;i++){
		        		 //文件名
		        		 String fileName=fList[i];
		        		 is=new FileInputStream("F:/test/test.xls");
		        		 is=new FileInputStream(fileName);
		        		 wb=null;
		        		 wb=Workbook.getWorkbook(is);
		        		 Sheet st =null;
		        		 st=wb.getSheet(0);
		        		 newWb.importSheet(st.getCell(0, 0).getContents(), i, st);
						 WritableSheet sheet = null;
						 sheet=newWb.getSheet(i);
			                        for (int row = 0; row < st.getRows(); row++) {
							for (int col = 0; col < st.getColumns(); col++) {
								//单元格值
								String value=st.getCell(col, row).getContents();
									//判断在需要的表格范围内,添加样式
									if(ElaneUtil.isNotEmpty(value)){
										//判断是否为数字
										if(ElaneUtil.isNumeric(value)){
											//数字格式
											jxl.write.Number labelNF;
											 //格式化数值(数字)
											labelNF = new jxl.write.Number(col, row, UtilFunction.parseDouble(value));
											WritableCellFormat format1 = new WritableCellFormat();
											//填充白色(单元格背景颜色)
											format1.setBackground(jxl.format.Colour.WHITE);
											//设置边框颜色
											format1.setBorder(Border.ALL, BorderLineStyle.THIN,Colour.GRAY_25);
											labelNF.setCellFormat(format1);
											sheet.addCell(labelNF);
										}
									}else{
										//单元格  标签
										Label label = new jxl.write.Label(col, row, value);
										//没有值的地方,设置样式
										WritableCellFormat format2 = new WritableCellFormat();
										//填充白色(单元格背景颜色)
										format2.setBackground(jxl.format.Colour.WHITE);
										//设置边框颜色
										format2.setBorder(Border.ALL, BorderLineStyle.THIN,Colour.GRAY_25);
									    label.setCellFormat(format2);
									    sheet.addCell(label);
									}
							}
						}
				       	is.close();
		        		wb.close();
		        	}
		           newWb.write();
		           newWb.close();
		        }
		    } catch (BiffException e) {
		        e.printStackTrace();
		    } catch (IOException e) {
		        e.printStackTrace();
		    } catch (WriteException e) {
		        e.printStackTrace();
		    }finally{
		       	try {
		       		if(is!=null){
		       			is.close();
		       		}
		       		if(wb!=null){
		       			wb.close();
		       		}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

		    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值