public int importExcel(String filename,Department dep) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
File f = new File(filename);
FileInputStream is;
int count = 0;
try {
is = new FileInputStream(new File(filename));
HSSFWorkbook wb = new HSSFWorkbook(is);
int sheetNum = wb.getNumberOfSheets();
for (int i = 0; i < sheetNum; i++) {
HSSFSheet childSheet = wb.getSheetAt(i);
int rowNum = childSheet.getLastRowNum();
if (rowNum > 0) {
for (int j = 1; j <= rowNum; j++) {
for (int k = 0; k < 1; k++) {
Employee emp=new Employee();
HSSFCell b = childSheet.getRow(j).getCell(
(short) (k+0));//No
if (b != null) {
emp.setNo(b.toString());
} else {
count++;
continue;
}
b = childSheet.getRow(j).getCell((short) (k+1));// Name
if (b != null) {
emp.setName(b.toString());
} else {
count++;
continue;
}
b = childSheet.getRow(j).getCell((short) (k+2));// Birthday
if (b != null) {
try{
Date date=sdf.parse(b.toString());
if(date!=null){
emp.setBirthday(date);
}else{
count++;
continue;
}
}catch(Exception e){
count++;
continue;
}
} else {
count++;
continue;
}
b = childSheet.getRow(j).getCell((short) (k+3));// CardType
if (b != null) {
emp.setCardType(b.toString());
} else {
emp.setCardType("");
}
b = childSheet.getRow(j).getCell((short) (k+4));// CardNO
if (b != null) {
emp.setCardNo(b.toString());
} else {
emp.setCardNo("");
}
b = childSheet.getRow(j).getCell((short) (k+5)); //Sex
if (b != null&&!"".equals(b.toString().trim())) {
if(b.toString().equals("男")){
emp.setSex(SexEnum.Man.getValue());
}else if(b.toString().equals("女")){
emp.setSex(SexEnum.Woman.getValue());
}else{
emp.setSex(SexEnum.Unknow.getValue());
}
} else {
emp.setSex(0);
}
b = childSheet.getRow(j).getCell((short) (k+6));// Telַ
if (b != null) {
emp.setTel(b.toString());
} else {
emp.setTel("");
}
b = childSheet.getRow(j).getCell((short) (k+7));//Mobile
if (b != null) {
emp.setMobile(b.toString());
} else {
count++;
continue;
}
if(emp.getNo()!=null&&!"".equals(emp.getNo().trim())){
if(this.isHasNo(emp.getNo())){
count++;
continue;
}
}else{
count++;
continue;
}
emp.setDepartment(dep.getUid());
emp.setExpertType("");
emp.setStatex(EmployeeStateEnum.Normal.getValue());
emp.setUser(GeneralUtil.getLoginUser().getUid());
ServiceUtil.getInstance().getEmployeeService().create(emp);
}
}
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return count;
}
由于我做的是管理系统所以经常会导入手机号码,但是导入的时候我发现,手机号码变成科学计数法形式了,像1.3556859658E10。我现在用到解决方法有三种:
第一种:下策
定义个函数,判断是否是科学计数法的形式,然后截取字符串。。。拼接成手机号码。。这样虽然能实现。但是太死了。。。
第二种:中策
后来我想到也有可能是excel的问题,我在excel中设置格式为文本格式,还是不行,郁闷啊。。偶然之间发现。。如果你先输入数据再设置格式,没有作用,但是你新建excel后立即设置为文本格式,在输入数据的话,OK,一切正常。。这个方法虽然比第一个好点。但是感觉还是不方便。。
第三种:还是中策
String mobile="";
b = childSheet.getRow(j).getCell((short) (k+3));// Mobile
if (b != null) {
if(b.toString().indexOf(".")!= -1&&b.toString().indexOf("E")!= -1){
DecimalFormat df=new DecimalFormat();
mobile= df.parseObject(b.toString()).toString();
}else{
mobile=b.toString();
}
} else {
continue;
}
使用DecimalFormat类来进行转换,但是我同事说。在转换的过程中有时候会出错。
所以希望了解的朋友给个上上策给我啊。。。。
分享到:
相关推荐
POI导入Excel并返回校验后的错误文件(原样数据文件,并添加批注,注:由于批注只能加1000条,会在Excel后面添加一栏错误信息)下载以及页面展示校验错误信息,同时添加导入进度条,提供页面js和css代码,后端...
在实际开发中,你可以通过以下步骤使用Apache POI来导入Excel数据: 1. **创建工作簿对象**:使用`WorkbookFactory.create()`方法,传入文件流或者文件路径来创建一个`Workbook`对象,代表整个Excel文件。 2. **...
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 ...在本文中,我们已经详细介绍了如何使用 Java POI 实现 Excel 导入导出功能,包括读取和写入 Excel 文件。
导入数据的过程中,首先需要创建一个`Workbook`对象来代表Excel文件,然后通过`Sheet`对象来操作单个工作表,接着是`Row`和`Cell`对象来处理每一行和每一列的数据。使用POI读取Excel数据的基本步骤如下: 1. 加载...
Java POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Excel。这篇博文链接虽然没有提供具体内容,但我们...文档"java_poi导入EXCEL.doc"可能包含了更详细的示例或指南,你可以参考它来加深理解。
在提供的文件列表中,"POI 导入Excel 提醒LeftoverDataException求帮助 - J2SE.htm"可能是对问题的详细描述或解决方案,而"POI 导入Excel 提醒LeftoverDataException求帮助 - J2SE_files"可能包含了相关的代码示例或...
在导入Excel时,我们通常会创建一个Workbook对象,然后通过其工作表接口(Sheet)访问具体的单元格(Cell)。对于导出,我们需要创建一个新的Workbook,添加工作表,然后填充数据到相应的单元格中。 在描述中提到,...
2. **导入Excel**:读取本地Excel文件,解析Workbook,获取每个Sheet,再遍历Sheet中的Row和Cell。将读取到的数据转换为适合插入数据库的格式,通过MyBatis的SqlSession执行相应的INSERT语句,将数据存入MySQL数据库...
这个"java_poi导入excel通用工具类"是利用Java的POI库和一些额外的技术来实现对Excel数据的导入功能,使得开发人员能够方便地将Excel数据转化为Java对象或者对已有对象进行填充。下面我们将深入探讨相关的知识点。 ...
"java_poi导入excel通用工具类V0915" 提供了一种通用的方式来处理Excel数据的导入工作,它支持多种赋值方式,包括单个对象、列表对象以及指定坐标的赋值。 首先,让我们深入理解一下这个工具类的主要功能: 1. **...
标题“poi导入导出Excel源码”和描述涉及到的核心知识点是利用Apache POI进行Excel文件的导入与导出操作。 首先,让我们详细了解Apache POI库。Apache POI是Apache软件基金会的一个开源项目,其主要目标是创建Java ...
### POI导入Excel表格数据小例子 #### 一、背景介绍 Apache POI 是一个用于读写 Microsoft Office 格式文件的 Java API,包括 Excel、Word 和 PowerPoint 等。本例通过 Apache POI 库将 Excel 文件中的数据导入到...
在本示例"SSM框架利用poi导入导出Excel文件 demo"中,我们将探讨如何在SSM项目中使用Apache POI库来实现Excel文件的导入与导出功能。 Apache POI是一个流行的开源库,它允许开发者在Java应用程序中创建、修改和显示...
本篇文章将详细探讨如何使用POI库来导入Excel文件,并结合form表单提交的数据进行处理。我们将讨论以下几个核心知识点: 1. **Apache POI简介** Apache POI 是一个开源项目,它提供了API来处理Microsoft的Office...
6. **性能优化**:Apache POI库本身在处理大量数据时可能存在性能问题,这个工具类可能会通过一些优化策略,如内存管理、流式写入等,来改善处理大型Excel文件的效率。 在实际应用中,这个工具类可以广泛应用于数据...
在界面上有一个TextField,一个浏览按钮,一个导入按钮。当选择浏览按钮时,弹出文本选择窗口,选择Excel文件之后,将路径显示在TextField中。点击导入,将Excel中的数据保存到SqlServer数据库中。
"POI导入Excel知识点" POI简介 Apache POI是一个开源的Java库,用于处理Microsoft Office文档,包括Excel、Word、PowerPoint等。POI提供了一个纯Java的解决方案,用于读取、写入和操作Office文档。 POI中的Excel...
然而,当处理大数据量的Excel文件时,POI可能会导致内存溢出(Out of Memory, OOM),因为默认情况下它会将整个工作簿加载到内存中。为了防止这种问题,我们需要采用优化策略来高效地处理大量数据。 1. **分块读取*...
### POI 导入导出 Excel 生成报表详解 #### 一、概述 Apache POI 是一个用于读写 Microsoft Office 格式文件的 Java API,其中包括对 Excel 文件的支持。通过 POI,我们可以轻松地实现 Excel 文件的创建、读取、...
poi实现导入数据到excel模板,本来想上传poi的jar包,谁知限制我只能上传15M的文件,汗。。。。。 不知道啥时候开始要分了... 代码见: https://github.com/thisisnohi/nohi-doc poi实现导入数据到excel模板。...