자바 내 보 내기 엑셀 파일 가 져 오기 (jxl), 프로젝트 카드 기 월 보고서 생 성 엑셀 후 지정 한 형식의 엑셀 을 변환 하고 출력 합 니 다.

프로젝트 에 사용 할 jar, 내 자원 다운로드, 다운로드 주소http://download.csdn.net/detail/ding43930053/6658397
POJO 류
User.java
package com.pojo;

import java.util.HashMap;

public class User {
	private String username; //  
	
	private HashMap<String,String> dateMap;//    
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public HashMap<String, String> getDateMap() {
		return dateMap;
	}
	public void setDateMap(HashMap<String, String> dateMap) {
		this.dateMap = dateMap;
	}
	
}

파일 클래스 읽 기
ReadExcel.java
package com.read;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.pojo.User;
import com.util.*;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableCell;
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;
/**
 *                   (i,j)  ,  i   ,j   ,        ,      。
 * @author Administrator
 *
 */
public class ReadExcel {
	public static void main(String []args){
		ArrayList<User> userList = new ReadExcel().getUser(new File("D:\\Book1.xls"));
	
		for(User user : userList){
			try {
				Thread.sleep(500);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			System.out.println("   :"+user.getUsername());
			HashMap<String,String> dateMap = user.getDateMap();
			for(int i=0; i<dateMap.size();i++){
				System.out.println("    :"+dateMap.get("2013-11-12"));
			}
		}
	}
	
	public ArrayList<User> getUser(File file){
		 ArrayList<User> userList = null;
		 Sheet sheet;
		 Workbook book = null; 
		 Cell cell1,cell2,cell3,cell4; 
		 String userNameTemp = ""; //      (           )
		 //file     excel     
		 try {
			book= Workbook.getWorkbook(file);
			//          (ecxel sheet    0  ,0,1,2,3,....)  
			sheet=book.getSheet(0);   

			userList = new ArrayList<User>();
			for(int i=1;i<sheet.getRows();i++){
				cell1=sheet.getCell(1,i);//  
				cell4=sheet.getCell(3,i);//    
				
				if(!(userNameTemp.equals(cell1.getContents()))){ //                   
					//
					//System.out.println("     "+"  "+cell1.getContents());
					userNameTemp = cell1.getContents();
					User user = new User();
					user.setUsername(cell1.getContents());
					
					HashMap<String,String> dateMap = new HashMap<String,String>();
					
					//    ,     i,        
					for(int j=i;j<sheet.getRows();j++){
						
						 //         ,      ,      ,                   ,  
						if(!userNameTemp.equals(sheet.getCell(1,j).getContents())) break;
						//System.out.println("       "+"  "+sheet.getCell(1,j).getContents()+"  "+sheet.getCell(3,j).getContents());
						
						//              
						if(dateMap.get(StringConvent.StringConventToNumArray(sheet.getCell(3,j).getContents())[0]) == null){ 
							//         ,     (    )
							System.out.println(sheet.getCell(1,j).getContents()+"  "+"  :"+StringConvent.StringConventToNumArray(sheet.getCell(3,j).getContents())[0]+"   ");
							dateMap.put(StringConvent.StringConventToNumArray(sheet.getCell(3,j).getContents())[0], sheet.getCell(3,j).getContents());
						}else {
							//         (             ),            (    )
							System.out.println(sheet.getCell(1,j).getContents()+"  "+"  :"+StringConvent.StringConventToNumArray(sheet.getCell(3,j).getContents())[0]+"  ");
							dateMap.put
							(StringConvent.StringConventToNumArray(sheet.getCell(3,j).getContents())[0], dateMap.get(StringConvent.StringConventToNumArray(sheet.getCell(3,j).getContents())[0])+
									'
'+sheet.getCell(3,j).getContents()); } } user.setDateMap(dateMap); userList.add(user); } //System.out.println(" "); } } catch (BiffException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ if(book != null){ book.close(); } } return userList; } }

excel 클래스 쓰기
WritableExcel.java
package com.writable;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

import com.pojo.User;
import com.read.ReadExcel;
import com.util.*;

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;
/**
 *                   (i,j)  ,  i   ,j   ,        ,      。
 * @author Administrator
 *
 */
public class WritableExcel {
	public static void main(String[] args){
		boolean b = new WritableExcel().writeFile(new File("D:\\Book1.xls"), new File("d:\\Book1_writable.xls"));
		System.out.print(b);
	}
	
	public boolean writeFile(File readFile, File writeFile){
		boolean b = false;
		WritableWorkbook book = null;
		 try {
			book = Workbook.createWorkbook(writeFile);
			//    “   ”    ,  0         
			WritableSheet sheet = book.createSheet("    ",0);
			WritableFont font1 =new WritableFont(WritableFont.createFont("    "), 10 ,WritableFont.BOLD); 
			WritableFont font2 =new WritableFont(WritableFont.createFont("    "), 8 ); 
			WritableCellFormat wcf = new WritableCellFormat(font1);
			WritableCellFormat wcf2 = new WritableCellFormat(font2);
			wcf2.setWrap(true);
			
			for(int i=1;i<=31;i++){
				sheet.setColumnView(i,10);
			}
		

			//      
			sheet.addCell(new Label(0,0, "  ",wcf)); 
			for(int i=1;i<=31; i++){
				sheet.addCell(new Label(i,0,"2013-11-"+i,wcf)); 
			}
			//    
			HashMap map = new HashMap();
			for(int i=1;i<=31; i++){
				map.put(i, "2013-11-"+i);
			}
			
			//      ,        
			ArrayList<User> userList = new ReadExcel().getUser(readFile);
			for(int i=0;i<userList.size();i++){
				User user = (User)userList.get(i);
				//      
				sheet.addCell(new Label( 0 ,i+1,user.getUsername(),wcf2));
				System.out.println("   :"+user.getUsername());
				
				//      
				HashMap<String,String> dateMap = user.getDateMap();
					//       ,          ,              m 
					for(int m=1;m<=map.size();m++){
						//System.out.println("dateMap:"+map.get(m));
						
						//        ,            m   
						if(dateMap.containsKey(map.get(m))){
							System.out.println("       :"+'
'+dateMap.get(map.get(m))); sheet.addCell(new Label(m,i+1,dateMap.get(map.get(m)),wcf2)); // continue ; } } } book.write(); b = true; } catch (IOException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); }finally{ if(book != null){ try { book.close(); } catch (WriteException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } return b; } }

카드 라이 더 월 보고서 Book1. xls
부문
성명.
등록 번호
날짜 시간
기계 번호
번호
비교 방식
본사
abc
***
2013 - 11 - 11 오후 03: 16: 35
1
지문.
본사
abc
***
2013 - 11 - 19 오후 05: 10: 37
1
지문.
재무 부
aaa
*
2013 - 11 - 1 오전 08: 05: 13
1
지문.
재무 부
aaa
*
2013 - 11 - 1 오후 05: 15: 15
1
지문.
재무 부
aaa
*
2013 - 11 - 4 오전 08: 05: 28
1
지문. 
재무 부
bbb
***
2013 - 11 - 21 오후 05: 11: 23
1
비밀 번호
재무 부
bbb
***
2013 - 11 - 22 동아 일보
1
비밀 번호
재무 부
bbb
***
2013 - 11 - 22 오후 05: 11: 02
1
비밀 번호
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
 
전환 후의 엑셀 북 1writable.xls
성명.
2013-11-1
2013-11-2
2013-11-3
2013-11-4
2013-11-5
2013-11-6
2013-11-7
2013-11-8
2013-11-9
2013-11-10
2013-11-11
abc
2013 - 11 - 11 오후 03: 16: 35
aaa
2013 - 11 - 1 오전 08: 05: 13 2013 - 11 - 1 오후 05: 15: 15
2013 - 11 - 4 오전 08: 05: 28 2013 - 11 - 4 오후 05: 22: 24
2013 - 11 - 5 오전 08: 02: 43 2013 - 11 - 5 오후 05: 15: 15
2013 - 11 - 6 오전 08: 06: 14 2013 - 11 - 6 오후 05: 15: 43
2013 - 11 - 7 오전 08: 04: 23 2013 - 11 - 7 오후 05: 17: 31
2013 - 11 - 8 오전 08: 13: 29 2013 - 11 - 8 오후 05: 35: 38
2013 - 11 - 11 동아 일보
bbb
2013 - 11 - 1 오전 07: 56: 14 2013 - 11 - 1 오후 05: 11: 45
2013 - 11 - 4 오전 08: 05: 09 2013 - 11 - 4 오후 05: 12: 10
2013 - 11 - 5 오전 08: 02: 37 2013 - 11 - 5 오후 05: 12: 27
2013 - 11 - 6 오전 07: 59: 30 2013 - 11 - 6 오전 08: 02: 33 2013 - 11 - 6 오후 05: 12: 24
2013 - 11 - 7 오전 07: 57: 03 2013 - 11 - 7 오후 05: 12: 58
2013 - 11 - 8 오전 08: 00: 49 2013 - 11 - 8 오후 05: 11: 03
2013 - 11 - 11 오전 08: 12: 09 2013 - 11 - 11 오후 05: 11: 55
질문 있 으 면 댓 글 남 겨 주세요!!
 

좋은 웹페이지 즐겨찾기