[자바기초] jxl을 이용하여 자바에서 엑셀파일 읽고,쓰기


C:\Program Files\Java\jdk1.8.0_211\jre\lib\ext
C:\Program Files\Java\jre1.8.0_211\lib\ext
-----------------------------------------------------------------------------
위의 경로로 jxl을 복사하면 될법하지만 웹쪽이 아닌관계로...;;


아래와 같이 해야 jxl을 붙일수 있었다;

이클립스 프로젝트오른쪽클릭->Build path->Configure Build Path
->Libraries텝선택->Add External JARs선택
->첨부파일 jxl.jar파일 선택

예제 파일을 보면 알수 있겠지만 상대경로이기 때문에 프로젝트폴더명 바로 밑에 data.xls가 존재해야 한다.


메인클래스

package com.ljh;

import com.ljh.xls.ExcelMaker;
import com.ljh.xls.ExcelReader;

import jxl.Workbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class MainClass {

	public MainClass() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//new ExcelMaker();
		new ExcelReader();
	}
}


엑셀쓰기

package com.ljh.xls;

import java.io.File;
import java.io.IOException;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class ExcelMaker {

	//사용할 엑셀파일 생성
	//File fname = new File("data.xls");
	//WritableWorkbook wb = Workbook.createWorkbook(File 객체)
	//
	//엑셀 파일내에 시트 생성
	//WritableSheet s1 = WriteableWorkbook.createSheet("이름", index);
	//
	//라벨생성
	//Label label = new Label(열번호, 행번호, "내용");
	//
	//시트에 라벨 적용
	//WritableSheet.addCell(Label 객체);
	public ExcelMaker() {
		File f = new File("data.xls");
		//파일객체는 파일에대한 정보만 넘겨주는거기 때문에 예외처리 할필요 없음;
		try{
			WritableWorkbook wb = Workbook.createWorkbook(f);
			
			WritableSheet s1 = wb.createSheet("첫번째", 0);
			WritableSheet s2 = wb.createSheet("Sheet 1", 1);
			WritableSheet s3 = wb.createSheet("Sheet 2", 2);
			
			for(int i = 0; i < 10; i++){
				Label label = new Label(0, i, "데이터.." + i);
				s1.addCell(label);
				Label label1 = new Label(1, i, "데이터.." + i);
				s1.addCell(label1);
			}
			wb.write();		//반드시 적어줘야 엑셀에 적용이 됨;
			wb.close();
		} catch(Exception e){
			System.out.println("Err : " + e.getMessage());
		}
	}

}

엑셀읽기

package com.ljh.xls;

import java.io.File;

import javax.swing.tree.ExpandVetoException;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ExcelReader {

//	파일경로 지정
//	File fname = new File("data.xls");
//	
//	엑셀 파일 객체 얻기
//	Workbook wb = Workbook.getWorkbook(File 객체);
//	
//	시트 얻기
//	Sheet s = wb.getSheet(0);
//	
//	셀 얻기
//	Cell c = s.getCell(0,i);
//	
//	셀의 내용 읽기
//	Cell.getContents();
	
	public ExcelReader() {
		File fname = new File("data.xls");
		try{
			Workbook wb = Workbook.getWorkbook(new File("data.xls"));
			Sheet s = wb.getSheet(0);
			
			int i = 0;
			while(true){
				try{
					Cell c = s.getCell(0,i);
					Cell c1 = s.getCell(1, i);
					System.out.println(c.getContents() + "\t" + c1.getContents());
					i++;
				} catch(Exception e){
					break;
				}	
			}
			wb.close();
		}catch(Exception e){
			System.out.println("Err : " + e.getMessage());
		}
	}

}

댓글

이 블로그의 인기 게시물

[자바기초] Vector, Iterator를 이용해서 정수 삽입후 모든 정수 출력 및 합산

[자바기초] HashMap으로 [학생 이름, Student 객체]를 이용하여 저장, 출력