JAVA Server 공통 데이터 가져오기 내보내기 구성 요소 V1.0
11577 단어 springboot
1. 구성 요소 소개
V1.0 버전은 JAVA 주석과 반사 사상을 결합하여 excel의 해석 규칙 설정을 실현하였으며, 두 줄 코드로 2007 버전과 2003 버전 excel 파일에 대한 가져오기 내보내기 기능을 완성할 수 있다.저는 이 구성 요소를 유니버설 데이터 가져오기 도구 구성 요소로 만들고 싶습니다. 코드를 바꾸지 않는 전제에서 최소한의 규칙 설정을 하면 excel, txt,dbf, pdf 등 각종 형식의 데이터 파일을 효율적으로 읽거나 생성할 수 있습니다.
2. 개발 환경, 기술 프레임워크, 현재 구성 요소 버전
JDK :1.7
:Eclipse
SpringBoot :1.3.3.RELEASE
POI :3.15
:V1.0
3. 구성 요소 프레임맵
4. 사용 예
1. excel 레코드행 실체 구조를 정의하고 주석으로 설정 설명을 합니다.구성 설명은 원본 주소의 주석 설명을 참고하십시오.https://github.com/CodingGyd/project/tree/master/excel-utils
package com.codinggyd.excel.example;
import java.io.Serializable;
import java.util.Date;
import com.codinggyd.excel.annotation.ExcelFieldConfig;
import com.codinggyd.excel.annotation.ExcelSheetConfig;
import com.codinggyd.excel.annotation.ExcelFieldRule;
import com.codinggyd.excel.constant.ExcelConst;
import com.codinggyd.excel.constant.JavaFieldType;
@ExcelSheetConfig(titleRowStartIndex=1,contentRowStartIndex=2,excelSuffix=ExcelConst.EXCEL_FORMAT_XLSX)
public class TestUser implements Serializable{
/**
*
*/
private static final long serialVersionUID = -6106965608103174812L;
@ExcelFieldConfig(isPrimaryKey=true,name=" ",index=0,javaType=JavaFieldType.TYPE_STRING, replaces = { @ExcelFieldRule(content = " ", replace = "83"),@ExcelFieldRule(content = " ", replace = "90") })
private String name;
@ExcelFieldConfig(name=" ",index=1,javaType=JavaFieldType.TYPE_INTEGER)
private Integer age;
@ExcelFieldConfig(name=" ",index=2,javaType=JavaFieldType.TYPE_DOUBLE)
private Double money;
@ExcelFieldConfig(name=" ",index=3,javaType=JavaFieldType.TYPE_DATE)
private Date createTime;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "TestUser [name=" + name + ", age=" + age + ", money=" + money + ", createTime=" + createTime + "]";
}
}
2. 2007 버전 xlsxExcel을 읽고 테스트 단원을 작성하고 실행합니다.
package com.codinggyd.excel.example;
import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.codinggyd.excel.constant.ExcelConst;
import com.codinggyd.excel.core.ExcelParserUtils;
import com.codinggyd.excel.core.parsexcel.bean.ResultList;
import com.codinggyd.excel.core.parsexcel.inter.IExcelRowHandler;
import junit.framework.TestCase;
/**
*
*
* : TestExcelParser.java
* : com.codinggyd.excel.example
* : Excel
*
* : guoyd
* : 2017 12 3
*
* Copyright @ 2017 Corpration Name
*
*/
public class TestExcelParser extends TestCase {
//ExcelParserUtils#parse 테스트(InputStream is, Class clazz, String format)
public void testParse1() throws Exception {
long start = System.currentTimeMillis();
String file = "G:/test.xlsx";
String format = ExcelConst.EXCEL_FORMAT_XLSX;
FileInputStream fis = new FileInputStream(new File(file));
ResultList result = ExcelParserUtils.parse(fis, User.class, format);
System.out.println ("오류 보고서:"+result.getMsg ();
for (User user:result) {
System.out.println(user.toString());
}
System.out.println("해석 데이터량"+result.size()+"줄, 시간 소모"+(System.currentTimeMillis()-start)+"ms");
}
}
실행 결과 캡처
3. 2007 버전 xlsxExcel 예시를 내보내고 테스트 단원을 작성하고 실행합니다.package com.codinggyd.excel.example;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.codinggyd.excel.constant.ExcelConst;
import com.codinggyd.excel.core.ExcelExporterUtils;
import junit.framework.TestCase;
/**
*
*
* : TestExcelExporter.java
* : com.codinggyd.excel.example
* : Excel
*
* : guoyd
* : 2017 12 3
*
* Copyright @ 2017 Corpration Name
*
*/
public class TestExcelExporter extends TestCase {
//ExcelExporterUtils#export 테스트(String format, Class>clazz, List data, OutputStream outputStream)
public void testExporter2() throws Exception {
long start = System.currentTimeMillis();
String file = "G:/new2.xlsx";
FileOutputStream fos = new FileOutputStream(new File(file));
String format = ExcelConst.EXCEL_FORMAT_XLSX;
List data = new ArrayList();
for (int i=0;i<100000;i++) {
User t = new User();
t.setAge(i);
t.setName("테스트"+i);
t.setMoney(1d*i);
t.setCreateTime(new Date());
data.add(t);
}
//코드 호출 생성
ExcelExporterUtils.export(format, User.class, data,fos);
System.out.println("데이터 내보내기"+ data.size () + "줄, 시간 소모"+ (System.currentTimeMillis () - start) + "ms");
}
}
실행 결과 캡처
편하지 않아요!코드를 한 줄로 간단하게 쓰면 오류 보고서를 되돌릴 수 있고 인터페이스에 사용자 정의 해석 형식을 되돌릴 수 있는 다른 방법도 정의되어 있다.원본 주석을 직접 보십시오.
5. 성능 테스트
테스트 환경: 4GB 메모리, i5-3210M 듀얼 코어 프로세서, 100만 줄 2007 excel.1차, 해석 데이터량 1003472조, 소모 시간 30285ms 2차, 해석 데이터량 1003472조, 소모 시간 30750ms 3차, 해석 데이터량 1003472조, 소모 시간 25192ms 4차, 해석 데이터량 1003472조, 소모 시간 21411ms 5차, 해석 데이터량 1003472조, 소모 시간 25531ms 6차, 해석 데이터량 1003472조, 소모 시간 20963ms 7차,분석 데이터 1003472조, 소모 시간 20388ms 8회, 분석 데이터 1003472조, 소모 시간 20026ms 9회, 분석 데이터 1003472조, 소모 시간 19644ms 10회, 분석 데이터 1003472조, 소모 시간 21206ms
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin Springboot -- 파트 14 사용 사례 REST로 전환하여 POST로 JSON으로 전환前回 前回 前回 記事 の は は で で で で で で を 使っ 使っ 使っ て て て て て リクエスト を を 受け取り 、 reqeustbody で 、 その リクエスト の ボディ ボディ を を 受け取り 、 関数 内部 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.