자바 내 보 내기 엑셀 파일 가 져 오기 (jxl), 프로젝트 카드 기 월 보고서 생 성 엑셀 후 지정 한 형식의 엑셀 을 변환 하고 출력 합 니 다.
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
질문 있 으 면 댓 글 남 겨 주세요!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.