parent
bf9f6b8b38
commit
60343430de
@ -0,0 +1,66 @@ |
||||
package me.lensfrex.doubandps.data; |
||||
|
||||
import me.lensfrex.doubandps.excel.ExcelWorker; |
||||
|
||||
import java.io.IOException; |
||||
import java.util.ArrayList; |
||||
import java.util.Collection; |
||||
import java.util.List; |
||||
import java.util.logging.Logger; |
||||
|
||||
public class MovieInformationDataExporter { |
||||
private static final Logger log = Logger.getLogger("DataExporterLogger"); |
||||
|
||||
ExcelWorker<MovieInformation> excelWorker = null; |
||||
private final Class<MovieInformation> dataClass; |
||||
|
||||
public MovieInformationDataExporter(String excelFilePath, Class<MovieInformation> dataClass) { |
||||
this.dataClass = dataClass; |
||||
this.createNewExcelWorker(excelFilePath); |
||||
} |
||||
|
||||
public boolean createNewExcelWorker(String newExcelFilePath) { |
||||
try { |
||||
excelWorker = new ExcelWorker<>(newExcelFilePath, dataClass); |
||||
} catch (IOException e) { |
||||
excelWorker = null; |
||||
log.severe("创建ExcelWorker时出现I/O问题。ErrMessage:" + e.getMessage() + |
||||
"指定的Excel文件路径:" + newExcelFilePath); |
||||
|
||||
return false; |
||||
} catch (Exception e) { |
||||
excelWorker = null; |
||||
log.severe("创建ExcelWorker时发生未知错误.ErrMessage:" + e.getMessage() + |
||||
"指定的Excel文件路径:" + newExcelFilePath); |
||||
|
||||
return false; |
||||
} |
||||
|
||||
return true; |
||||
} |
||||
|
||||
public void insertDataIntoExcel(int sheetIndex, Collection<MovieInformation> source) { |
||||
excelWorker.addAllDataToSheet(sheetIndex, source); |
||||
} |
||||
|
||||
public void exportInformationByYear(List<MovieInformation> source) { |
||||
excelWorker.createNewSheet("2000年前"); |
||||
int sheetAmount = excelWorker.createNewSheet("2000年后"); |
||||
|
||||
ArrayList<MovieInformation> movieBefore2000 = new ArrayList<>(); |
||||
ArrayList<MovieInformation> movieAfter2000 = new ArrayList<>(); |
||||
for (MovieInformation movieInformation : source) { |
||||
if (movieInformation.getYear() < 2000) { |
||||
movieBefore2000.add(movieInformation); |
||||
} else { |
||||
movieAfter2000.add(movieInformation); |
||||
} |
||||
} |
||||
|
||||
excelWorker.addAllDataToSheet(sheetAmount - 2, movieBefore2000); |
||||
excelWorker.addAllDataToSheet(sheetAmount - 1, movieAfter2000); |
||||
|
||||
excelWorker.finish(); |
||||
log.info("已完成导出。"); |
||||
} |
||||
} |
@ -1,9 +0,0 @@ |
||||
package me.lensfrex.doubandps.excel; |
||||
|
||||
import me.lensfrex.doubandps.data.MovieInformation; |
||||
|
||||
public class DataExporter { |
||||
|
||||
public DataExporter() { |
||||
} |
||||
} |
Loading…
Reference in new issue