다음과 같이 코드 코드를 복사합니다 .
패키지 내보내기.excel;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
java.io.파일 가져오기;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
java.util.List 가져오기;
import java.util.Random;
jxl.Cell 가져오기;
jxl.Sheet 가져오기;
jxl.Workbook 가져오기;
import jxl.format.Alignment;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
가져오기 내보내기.vo.PersonVo;
/**엑셀 파일 내보내기
*
* @author 통행인 A
*
*/
공개 클래스 내보내기Excel {
공개 목록<PersonVo> personVoList;
공개수출Excel()
{
초기화데이터();
}
/**
* 초기화 데이터
*/
공개 무효 초기화 데이터()
{
// 랜덤 함수
무작위 무작위 = 새로운 무작위();
personVoList = new ArrayList<PersonVo>();
//100명을 컬렉션으로 초기화합니다.
PersonVo personVo = null;
for (int i = 0; i < 100; i++)
{
personVo = 새로운 PersonVo();
personVo.setId("" + i);
personVo.setName("passer-by" + i);
만약 (i%2==0)
{
personVo.setSex("남성");
}
또 다른
{
personVo.setSex("여성");
}
// 100세 이내의 무작위 나이를 구합니다.
personVo.setAge("" + random.nextInt(100));
personVoList.add(personVo);
}
}
/**Excel 형식으로 데이터 내보내기
* importName 내보내기 파일 이름
* @param 내보내기이름
*/
공공 무효 내보내기Person(문자열 내보내기 이름)
{
노력하다{
File excelFile = new File(exportName + "Temp.xls");
// 파일 형식
WritableCellFormat 형식 = 새로운 WritableCellFormat();
// x를 왼쪽으로
format.setAlignment(Alignment.RIGHT);
// Y 상단
format.setVerticalAlignment(VerticalAlignment.TOP);
//작업 파일 생성
WritableWorkbook writableWorkbook = Workbook.createWorkbook(excelFile);
//워크북 생성
WritableSheet sheet1 = writableWorkbook.createSheet("개인정보 목록", 0);
//행 개수 생성 및 행 너비 설정
sheet1.setColumnView(0, 10);
sheet1.setColumnView(1, 10);
sheet1.setColumnView(2, 10);
sheet1.setColumnView(3, 10);
//행 값 설정
sheet1.addCell(new Label(0, 0, "ID", 형식));
sheet1.addCell(new Label(1, 0, "이름", 형식));
sheet1.addCell(new Label(2, 0, "성별", 형식));
sheet1.addCell(new Label(3, 0, "Age", format));
//엑셀에 컬렉션 쓰기
int rowNum = 1;
for (PersonVo 빈 : personVoList)
{
int colspanNum = 0;
sheet1.addCell(new Label(colspanNum, rowNum, bean.getId(), format));
sheet1.addCell(new Label(colspanNum++, rowNum, bean.getName(), format));
sheet1.addCell(new Label(colspanNum++, rowNum, bean.getSex(), format));
sheet1.addCell(new Label(colspanNum++, rowNum, bean.getAge(), format));
행번호++;
}
writableWorkbook.write();
writableWorkbook.close();
// 인터넷에서 다운로드한 경우 다음을 작성합니다.
// super.getHttpServletResponse().setContentType("application/x-msdownload");
// 문자열 encodetittle = new String(excelName.getBytes("GBK"), "ISO-8859-1");
// super.getHttpServletResponse().addHeader("Content-Disposition","attachment;filename="+encodetittle+".xls");
FileInputStream finput = new FileInputStream(excelFile);
// OutputStream 출력 = super.getHttpServletResponse().getOutputStream();
파일 fout = new File(exportName + ".xls");
OutputStream 출력 = new FileOutputStream(fout);
BufferedInputStream buffin = new BufferedInputStream(finput);
BufferedOutputStream buffout = 새로운 BufferedOutputStream(출력);
바이트[] 버퍼 = 새 바이트[4096];
정수 개수 = 0;
while ((count = buffin.read(buffer, 0, buffer.length)) > 0) {
buffout.write(버퍼, 0, 개수);
}
buffin.close();
buffout.close();
finput.close();
출력.닫기();
excelFile.delete();
}
잡기 (예외 e) {
e.printStackTrace();
}
마지막으로
{
System.out.println("내보내기 작업을 완료했습니다.");
}
}
/**가져온 데이터는 Excel 형식으로 내보내집니다.
*
* @param importExcel 엑셀 파일 이름 가져오기
*/
공공 무효 importPerson(문자열 importExcel)
{
노력하다{
파일 excelFile = 새 파일(importExcel+".xls");
//작업 파일 생성
통합 문서 통합 문서 = Workbook.getWorkbook(excelFile);
// 첫 번째 통합 문서를 가져옵니다. 시트를 가져오는 방법은 두 가지가 있습니다. 1은 이름이고 아래 첨자는 0부터 시작합니다.
시트 시트 = workbook.getSheet(0);
//총 레코드 수
int allRow = sheet.getRows();
int allColspan = sheet.getColumns();
System.out.println(allRow);
System.out.println(allColspan);
// 데이터 가져오기
for (int i=0; i<allRow; i++)
{
// 각 열의 값을 가져옵니다.
for (int j=0; j<allColspan; j++)
{
// sheet.getCell(열 개수, 행 개수);
셀 셀 = sheet.getCell(j, i);
//이 열의 값을 출력합니다.
System.out.print(cell.getContents() + "/t");
}
System.out.println();
}
//폐쇄
통합 문서.close();
}catch(예외 e) {
e.printStackTrace();
}
마지막으로
{
System.out.println("가져오기 작업을 완료했습니다.");
}
}
/**
* @param 인수
*/
공개 정적 무효 메인(String[] args) {
내보내기Excel 내보내기Excel = 새로운 내보내기Excel();
//경로 설정
String srcPath = "C:/격리/PersonVo";
//내보내다
//exportExcel.exportPerson(srcPath);
// 읽다
내보내기Excel.importPerson(srcPath);
}
}