ⅰ. 엑셀을 자바로 읽을(쓰는것 포함) 수 있도록 하는 방법은 jxl과 poi 두가지 방법이 있는데 우선 그나마 간단한 jxl 방법을 몇자 적어 보도록 하겠다.
( jxl과poi차이나 특성, 프로젝트 정보등은 검색엔진을 이용하길 바란다. )
우선 http://www.andykhan.com/jexcelapi/download.html 에 가서 최신jexcelapi.tar 파일을 다운로드 하고 압축을 풀면 파일안에 jxl.jar파일이 있다. 이 jar파일을 인식 시키기 위하여, 자바가 설치된 곳의 라이브러리 폴더에 이 파일을 넣는다. (예 : C:/Program Files/Java/jdk1.6.0_01/jre/lib/ext/jxl.jar).
쓰기 등을 원하거나 다른 것을 원할때는 http://www.andykhan.com/jexcelapi/tutorial.html로 가면 tutorial이 있으니 이걸 참고하길 바란다.
--참고로 엔디칸인가 하는 주인장 한테 메일 보내 봤는데 답장이 없으니 편지 보내지는 말자.
ⅱ. 그럼 예문을 만들어 보면
/***************************************************************
* 기 능 : 엑셀파일 읽어 String으로 반환
* Function : getData(int row) row : 읽을 시작행 번호
* 참 조 : C:/Program Files/Java/jdk1.6.0_01/jre/lib/ext/jxl.jar
* Return value : String
* 작 성 자 : 유 진 철
* 작 성 일 : 2007-08-17
/***************************************************************/
import jxl.*;
import java.io.*;
import java.util.*;
public class ReadXLS
{
String filename = null;
//ReadXLS 생성자
public ReadXLS(String filename)
{
this.filename = filename.trim();
}
//String 반환하는 메소드
public String getData(int row) throws Exception
{
//파일 생성및 데이터 선언
StringBuffer cellData = new StringBuffer();
File file = new File(filename);
//존재여부 판단
if(file.exists())
{
//파일여부 판단
if(file.isFile())
{
StringTokenizer st = new StringTokenizer(filename, ".");
String xls = null;
//파일 확장자 구하기
while(st.hasMoreTokens())
{
xls = st.nextToken();
}
//확장자 엑셀파일 여부판단
if(xls.equals("xls"))
{
//엑셀정보 에서 쉬트정보 가져오기
Workbook workbook = Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet(0);
//데이터 생성및 구분자 삽입 col=>[xxx] / row=>\n
for (int i=row; i<sheet.getRows(); i++ )
{
for (int j=0; j<sheet.getColumns(); j++ )
{
Cell cell = sheet.getCell(j,i);
cellData.append("["+cell.getContents().trim()+"]");
}
cellData.append("\n");
}
workbook.close();
}
else
{
throw new Exception("엑셀파일이 아닙니다.");
}
}
else
{
throw new Exception("파일이 아닙니다.");
}
}
else
{
throw new Exception("존재하지 않는 이름 입니다.");
}
return new String(cellData);//String 반환
}//end getData()
public static void main(String [] args)
{
try
{
ReadXLS readxls = new ReadXLS("ex.xls");
String xls = readxls.getData(0); //0번 행 부터 읽기
System.out.println(xls );
}//End Of try
catch (Exception e)
{
e.printStackTrace();
}//End Of catch
}//End Of Main
}
/*
다음과 같은 프로그램을 컴파일 해서 돌리면(물론 같은 폴더에 ex.xls라는 엑셀 파일을 하나 실험용으로 만들어서 넣어둔다.)
[xxx][xxx][xxx]...
[xxx][xxx][xxx]
[][][][][][][][]
[][][][][][][][]
.
.
.
이런 식으로 결과가 나온다.
프로그램에서 파일겍체를 만들거나 하는것은 안전한 실행을 위해서 한것이고 핵심은 색상이 다른 부분을 중점적으로 보면 될것이다.
*/