在工作中,遇见数据的导入。有的是文本文件,有的是在Excel表格里面的数据。我这次的工作就是讲Excel表中的数据更新到数据的表里面。
首先将execl格式转换成.csv并且转成utf-8格式。
废话不多说直接写代码。
@Override
public void exlH() throws Exception {
String filePath = "D:/FileRecv/2018082714460829253.csv";
File file = new File(filePath);
CsvReader reader = null;
reader = new CsvReader(FileUtils.openInputStream(file), ',',
Charset.forName("UTF-8"));
List<Object[]> list = new ArrayList<Object[]>();
while (reader.readRecord()) {
list.add(reader.getValues());
}
List<BcoCustomsData> bcoCustomsDatas = bcoCustomsDataDao.findBy("customsDataCatg", "73");
for (int i = 2; i < list.size(); i++) {
String[] split = (String[]) list.get(i); // 取出一组数据
final String dataCode = split[0];
Predicate predicate = new Predicate() {
@Override
public boolean evaluate(Object object) {
BcoCustomsData contact = (BcoCustomsData) object;
if(dataCode.equals(contact.getDataCode())){
return true;
}
return false;
}
};
List<BcoCustomsData> customsDate = (List<BcoCustomsData>) CollectionUtils.select(bcoCustomsDatas, predicate);
BcoCustomsData bcoCustomsData = null;
if(customsDate != null && customsDate.size()>0){
bcoCustomsData = customsDate.get(0);
bcoCustomsData.setDataName(split[1]);
bcoCustomsData.setDataEnName(split[2]);
bcoCustomsDataDao.saveOrUpdate(bcoCustomsData);
}else{
bcoCustomsData = new BcoCustomsData();
bcoCustomsData.setCdVer("TRANSGD2018");
bcoCustomsData.setCreator("ADMIN");
bcoCustomsData.setCustomsDataCatg("73");
bcoCustomsData.setDataCode(split[0]);
if(StringUtils.isNotEmpty(bcoCustomsData.getDataCode())){
bcoCustomsData.setDataName(split[1]);
bcoCustomsData.setDataEnName(split[2]);
bcoCustomsDataDao.save(bcoCustomsData);
}
}
}
}
以上代码就可以将数据更新到表中去。
文章撰写不专业,见谅,有什么错误,欢迎大家私信,谢谢。