이 API를 사용하면 Windows가 아닌 운영 체제에서도 순수 Java 애플리케이션을 통해 Excel 데이터 테이블을 처리할 수 있습니다. Java로 작성되었기 때문에 웹 애플리케이션에서 JSP 및 Servlet을 통해 API를 호출하여 Excel 데이터 테이블에 액세스할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
패키지 com.yonyou.test;
java.io.파일 가져오기;
import java.io.IOException;
jxl.Workbook 가져오기;
import jxl.format.Alignment;
jxl.format.Border 가져오기;
import jxl.format.BorderLineStyle;
import jxl.format.Color;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.NumberFormats;
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;
공개 클래스 JxlTable {
private final static JxlTable jxlTable = new JxlTable();
공개 정적 JxlTable getInstance() {
jxlTable을 반환합니다.
}
공개 JxlTable() {
}
public boolean createTable(String header, String[] body, String filePath) {
부울 createFlag = true;
쓰기 가능통합책;
노력하다 {
//경로를 기준으로 엑셀 파일 생성
book = Workbook.createWorkbook(new File(filePath));
//"Table"이라는 시트를 만듭니다.
WritableSheet sheet = book.createSheet("테이블", 0);
//열 너비를 설정하지 않음
sheet.setColumnView(1, 5);
//전체 시트에서 그리드 선을 제거합니다.
sheet.getSettings().setShowGridLines(false);
레이블 tempLabel = null;
// 헤더 출력
String[] headerArr = header.split(",");
int headerLen = headerArr.length;
// 헤더 내용을 쓰는 루프
for (int i = 0; i < headerLen; i++) {
tempLabel = new Label(1 + i, 1, headerArr[i],
getHeaderCellStyle());
sheet.addCell(tempLabel);
}
// 테이블 본문 출력
int bodyLen = body.length;
// 테이블 본문 내용을 쓰는 루프
for (int j = 0; j < bodyLen; j++) {
String[] bodyTempArr = body[j].split(",");
for(int k = 0; k < bodyTempArr.length; k++) {
WritableCellFormat tempCellFormat = null;
tempCellFormat = getBodyCellStyle();
if (tempCellFormat != null) {
if (k == 0 || k == (bodyTempArr.length - 1)) {
tempCellFormat.setAlignment(Alignment.CENTRE);
}
}
tempLabel = new Label(1 + k, 2 + j, bodyTempArr[k],
tempCellFormat);
sheet.addCell(tempLabel);
}
}
책.쓰기();
책.닫기();
} 잡기(IOException e) {
createFlag = 거짓;
System.out.println("EXCEL 생성에 실패했습니다!");
e.printStackTrace();
} catch (RowsExceededException e) {
createFlag = 거짓;
System.out.println("EXCEL 유닛 설정 생성에 실패했습니다!");
e.printStackTrace();
} 잡기(WriteException e) {
createFlag = 거짓;
System.out.println("EXCEL 쓰기에 실패했습니다!");
e.printStackTrace();
}
createFlag를 반환합니다.
}
공개 WritableCellFormat getHeaderCellStyle() {
WritableFont 글꼴 = new WritableFont(WritableFont.createFont("宋体"), 10,
WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE);
WritableCellFormat headerFormat = 새로운 WritableCellFormat(
NumberFormats.TEXT);
노력하다 {
//글꼴 설정 추가
headerFormat.setFont(글꼴);
//셀 배경색 설정: 머리글은 노란색입니다.
headerFormat.setBackground(Colour.YELLOW);
//헤더 테이블 테두리 스타일 설정
//전체 테이블 라인이 두껍고 검은색입니다.
headerFormat.setBorder(Border.ALL, BorderLineStyle.THICK,
색상.BLACK);
//헤더 내용이 중앙에 가로로 표시됩니다.
headerFormat.setAlignment(Alignment.CENTRE);
} 잡기(WriteException e) {
System.out.println("헤더 셀 스타일 설정에 실패했습니다!");
}
headerFormat을 반환합니다.
}
공개 WritableCellFormat getBodyCellStyle() {
WritableFont 글꼴 = new WritableFont(WritableFont.createFont("宋体"), 10,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE);
WritableCellFormat bodyFormat = new WritableCellFormat(글꼴);
노력하다 {
//셀 배경색 설정: 테이블 본문은 흰색입니다.
bodyFormat.setBackground(Colour.WHITE);
//헤더 테이블 테두리 스타일 설정
//전체 테이블 라인이 가늘고 검은색입니다.
본문형식
.setBorder(Border.ALL, BorderLineStyle.THIN, Color.BLACK);
} 잡기(WriteException e) {
System.out.println("테이블 본문 셀 스타일 설정에 실패했습니다!");
}
bodyFormat을 반환합니다.
}
공개 정적 무효 메인(String[] args) {
String header = "NO, 이름, 성별, 나이";
문자열[] 본문 = 새 문자열[4];
body[0] = "1,Ouyang Feng, 남성, 68세";
body[1] = "2,황야오시,남성,67세";
body[2] = "3,홍기공,남성,70";
body[3] = "4,궈징,남성,32";
문자열 파일 경로 = "e:/test.xls";
JxlTable testJxl = JxlTable.getInstance();
부울 플래그 = testJxl.createTable(header, body, filePath);
if (플래그) {
System.out.println("테이블이 성공적으로 생성되었습니다!!");
}
}
}
단계별 설명:
엑셀 파일 읽기
엑셀 파일을 읽으려면 먼저 단어장을 만들어야 합니다.
다음과 같이 코드 코드를 복사합니다.
통합문서 wb=Workbook.getWorkbook(파일 파일);
통합문서 wb=Workbook.getWorkbook(InputStream은);
그런 다음 워크시트를 얻을 수 있습니다 .
다음과 같이 코드 코드를 복사합니다.
Sheet[] sheet=wb.getSheets(); //모든 워크시트 가져오기
Sheet sheet=wb.getSheet(0); //첫 번째 워크시트를 가져오는 것을 나타냅니다.
마지막으로 워크시트의 특정 셀 값을 가져올 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
Cell cell=sheet.getCell(0,0); //첫 번째 열과 첫 번째 행의 데이터를 가져옵니다. 첫 번째 매개변수는 열입니다.
String value=cell.getContents(); //셀의 값을 문자열 형식으로 가져옵니다.
String type=cell.getType(); //셀의 데이터 유형을 가져옵니다.
통합 문서 워크플로를 닫습니다 .
Excel 스프레드시트 데이터 처리가 끝나면 반드시 close() 메서드를 사용하여 이전에 생성된 객체를 닫아 데이터 테이블을 읽는 과정에서 차지하는 메모리 공간을 해제해야 합니다. 이는 특히 많은 양의 데이터를 읽을 때 중요합니다. . 다음 코드 조각을 참조하세요.
다음과 같이 코드 코드를 복사합니다.
wb.close();
참고: 작업을 완료한 후에만 Excel을 닫을 수 있습니다. Excel을 닫은 후에는 Sheet s=wb.getSheet(0)을 호출하면 null이 됩니다.
일반적으로 사용되는 방법 소개 :
Workbook 클래스에서 제공하는 메서드
1. 정수형 getNumberOfSheets()
통합 문서의 워크시트 수를 가져옵니다. 예:
다음과 같이 코드 코드를 복사합니다.
jxl.Workbook rwb = jxl.Workbook.getWorkbook(새 파일(소스파일));
int 시트 = rwb.getNumberOfSheets();
2. 시트[] getSheets()
통합 문서의 시트 개체 배열을 반환합니다. 예:
다음과 같이 코드 코드를 복사합니다.
jxl.Workbook rwb = jxl.Workbook.getWorkbook(새 파일(소스파일));
시트[] 시트 = rwb.getSheets();
Sheet 인터페이스에서 제공하는 메서드
1. 문자열 getName()
시트 이름을 가져옵니다. 예:
다음과 같이 코드 코드를 복사합니다.
jxl.Workbook rwb = jxl.Workbook.getWorkbook(새 파일(소스파일));
jxl.Sheet rs = rwb.getSheet(0);
문자열 sheetName = rs.getName();
2. 정수 getColumns()
시트 테이블에 포함된 총 열 수를 가져옵니다. 예:
다음과 같이 코드 코드를 복사합니다.
jxl.Workbook rwb = jxl.Workbook.getWorkbook(새 파일(소스파일));
jxl.Sheet rs = rwb.getSheet(0);
int rsColumns = rs.getColumns();
3. Cell[] getColumn(int 열)
특정 열의 모든 셀을 가져오고 셀 객체의 배열을 반환합니다.
다음과 같이 코드 코드를 복사합니다.
jxl.Workbook rwb = jxl.Workbook.getWorkbook(새 파일(소스파일));
jxl.Sheet rs = rwb.getSheet(0);
셀[] 셀 = rs.getColumn(0);
4. 정수 getRows()
시트 테이블에 포함된 총 행 수를 가져옵니다. 예:
다음과 같이 코드 코드를 복사합니다.
jxl.Workbook rwb = jxl.Workbook.getWorkbook(새 파일(소스파일));
jxl.Sheet rs = rwb.getSheet(0);
int rsRows = rs.getRows();
5. 셀[] getRow(int 행)