ソースを参照

修改点

1.改用SXSSFWorkbook 导出07版本大数据
2.修改了返回值的bug
3.获取值,String的bug
4.1.3.A
jueyue 10年前
コミット
3ddf215ccf
3個のファイルの変更70行の追加6行の削除
  1. +7
    -2
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java
  2. +5
    -4
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/CellValueServer.java
  3. +58
    -0
      easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportMsgClient.java

+ 7
- 2
easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java ファイルの表示

@@ -6,6 +6,7 @@ import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
@@ -36,8 +37,10 @@ public final class ExcelExportUtil {
Workbook workbook;
if (entity.getType().equals(PoiBaseConstants.HSSF)) {
workbook = new HSSFWorkbook();
} else {
} else if (dataSet.size() < 1000) {
workbook = new XSSFWorkbook();
} else {
workbook = new SXSSFWorkbook();
}
new ExcelExportServer().createSheet(workbook, entity, pojoClass, dataSet, entity.getType());
return workbook;
@@ -57,8 +60,10 @@ public final class ExcelExportUtil {
Workbook workbook;
if (entity.getType().equals(PoiBaseConstants.HSSF)) {
workbook = new HSSFWorkbook();
} else {
} else if (dataSet.size() < 1000) {
workbook = new XSSFWorkbook();
} else {
workbook = new SXSSFWorkbook();
}
new ExcelExportServer().createSheetForMap(workbook, entity, entityList, dataSet,
entity.getType());


+ 5
- 4
easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/CellValueServer.java ファイルの表示

@@ -59,7 +59,6 @@ public class CellValueServer {
} else if (Cell.CELL_TYPE_BOOLEAN == cell.getCellType()) {
result = cell.getBooleanCellValue();
} else {
cell.setCellType(Cell.CELL_TYPE_STRING);
result = cell.getStringCellValue();
}
return result;
@@ -136,9 +135,11 @@ public class CellValueServer {
if (xclass.equals("class java.math.BigDecimal")) {
return new BigDecimal(String.valueOf(result));
}
return String.valueOf(result);
} catch (NumberFormatException e) {
e.printStackTrace();
if (xclass.equals("class java.lang.String")) {
return String.valueOf(result);
}
return result;
} catch (Exception e) {
throw new ExcelImportException(ExcelImportEnum.GET_VALUE_ERROR);
}
}


+ 58
- 0
easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportMsgClient.java ファイルの表示

@@ -0,0 +1,58 @@
package org.jeecgframework.poi.excel.test;
import static org.junit.Assert.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.entity.CourseEntity;
import org.jeecgframework.poi.entity.MsgClient;
import org.jeecgframework.poi.entity.MsgClientGroup;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.vo.PoiBaseConstants;
import org.junit.Test;
/**
* 当行大数据量测试
* @author JueYue
* @date 2014年12月13日 下午3:42:57
*/
public class ExcelExportMsgClient {
@Test
public void test() throws Exception {
List<MsgClient> list = new ArrayList<MsgClient>();
for (int i = 0; i < 50000; i++) {
MsgClient client = new MsgClient();
client.setBirthday(new Date());
client.setClientName("小明" + i);
client.setClientPhone("18797" + i);
client.setCreateBy("jueyue");
client.setId("1" + i);
client.setRemark("测试" + i);
MsgClientGroup group = new MsgClientGroup();
group.setGroupName("测试" + i);
client.setGroup(group);
list.add(client);
}
Date start = new Date();
ExportParams params = new ExportParams("2412312", "测试");
params.setType(PoiBaseConstants.XSSF);
Workbook workbook = ExcelExportUtil.exportExcel(params, MsgClient.class, list);
System.out.println(new Date().getTime() - start.getTime());
File savefile = new File("d:/");
if (!savefile.exists()) {
savefile.mkdirs();
}
FileOutputStream fos = new FileOutputStream("d:/tt.xlsx");
workbook.write(fos);
fos.close();
}
}

読み込み中…
キャンセル
保存