diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/CsvImportUtil.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/CsvImportUtil.java index a0759bc..0c74161 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/CsvImportUtil.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/CsvImportUtil.java @@ -39,8 +39,8 @@ public final class CsvImportUtil { * @param params * @return */ - public static List importCsv(InputStream inputstream, Class pojoClass, + public static void importCsv(InputStream inputstream, Class pojoClass, CsvImportParams params, ICsvSaveDataHandler saveDataHandler) { - return new CsvImportService().readExcel(inputstream, pojoClass, params, saveDataHandler); + new CsvImportService().readExcel(inputstream, pojoClass, params, saveDataHandler); } } diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/imports/CsvImportService.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/imports/CsvImportService.java index 35300c9..a270064 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/imports/CsvImportService.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/csv/imports/CsvImportService.java @@ -21,10 +21,7 @@ import org.apache.poi.ss.usermodel.Cell; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; +import java.io.*; import java.lang.reflect.Field; import java.util.*; @@ -58,8 +55,15 @@ public class CsvImportService extends ImportBaseService { } getAllExcelField(targetId, fileds, excelParams, excelCollection, pojoClass, null, null); } - if(PoiPublicUtil.hasBom(inputstream)){ + + inputstream = new PushbackInputStream(inputstream, 3); + byte[] head = new byte[3]; + inputstream.read(head); + if (head[0] == -17 && head[1] == -69 && head[2] == -65) { + ((PushbackInputStream) inputstream).unread(head, 0, 3); inputstream = new UnicodeInputStream(inputstream); + } else { + ((PushbackInputStream) inputstream).unread(head, 0, 3); } BufferedReader rows = new BufferedReader(new InputStreamReader(inputstream, params.getEncoding())); for (int j = 0; j < params.getTitleRows(); j++) { @@ -80,11 +84,11 @@ public class CsvImportService extends ImportBaseService { Object object = null; String[] cells; while ((row = rows.readLine()) != null) { - if(StringUtils.isEmpty(row)){ + if (StringUtils.isEmpty(row)) { continue; } errorMsg = new StringBuilder(); - cells = row.split(params.getSpiltMark(),-1); + cells = row.split(params.getSpiltMark(), -1); // 判断是集合元素还是不是集合元素,如果是就继续加入这个集合,不是就创建新的对象 // keyIndex 如果为空就不处理,仍然处理这一行 if (params.getKeyIndex() != null && (cells[params.getKeyIndex()] == null diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiPublicUtil.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiPublicUtil.java index 271be9e..dd1ad4a 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiPublicUtil.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiPublicUtil.java @@ -40,6 +40,7 @@ import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ooxml.POIXMLDocumentPart; import org.apache.poi.ss.usermodel.PictureData; +import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.XSSFClientAnchor; import org.apache.poi.xssf.usermodel.XSSFDrawing; import org.apache.poi.xssf.usermodel.XSSFPicture;