java使用poi实现excel解析
2013-05-20 11:57
141 查看
上传文件本地路径自从ie8之后是无法从程序中获取的,因为ie加了权限保护,程序上传文件时会先默认c盘创建临时文件来引导文件流的读取,而不是直接获取全路径来读取文件。如果想从action的file对象中获取的路径并根据这个路径判断其文件类型、是没法根据其后缀名判断的,因为这个临时文件是.temp类型,所以要就在判断文件类型时使用fileFileName得到全文件名去判断文件类型,使用file.getPath()进行文件读取。
jsp:
<s:form action="pages/BatchExcel/InitBatchExcel.html" method="POST"
enctype="multipart/form-data">
<s:file name="batchexcel" label="批量添加公司" />
<s:submit value="批量上传" />
</s:form>
action类:
List<List<String>> list = poi.read(batchexcel.getPath(),batchexcelFileName);
ReadExcel类:
public List<List<String>> read(String filePath,String filePathFileName) {
List<List<String>> dataLst = new ArrayList<List<String>>();
InputStream is = null;
try {
if (!validateExcel(filePathFileName)) {
return null;
}
if (!validateExcelExists(filePath)) {
return null;
}
boolean isExcel2003 = true;
if (WDWUtil.isExcel2007(filePath)) {
isExcel2003 = false;
}
File file = new File(filePath);
is = new FileInputStream(file);
dataLst = read(is, isExcel2003);
is.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
is = null;
e.printStackTrace();
}
}
}
return dataLst;
}
public boolean validateExcel(String filePathFileName) {
if (filePathFileName == null
|| !(WDWUtil.isExcel2003(filePathFileName) || WDWUtil
.isExcel2007(filePathFileName))) {
errorInfo = "文件名不是excel格式";
return false;
}
return true;
}
public boolean validateExcelExists(String filePath) {
File file = new File(filePath);
if (file == null || !file.exists()) {
errorInfo = "文件不存在";
return false;
}
return true;
}
jsp:
<s:form action="pages/BatchExcel/InitBatchExcel.html" method="POST"
enctype="multipart/form-data">
<s:file name="batchexcel" label="批量添加公司" />
<s:submit value="批量上传" />
</s:form>
action类:
List<List<String>> list = poi.read(batchexcel.getPath(),batchexcelFileName);
ReadExcel类:
public List<List<String>> read(String filePath,String filePathFileName) {
List<List<String>> dataLst = new ArrayList<List<String>>();
InputStream is = null;
try {
if (!validateExcel(filePathFileName)) {
return null;
}
if (!validateExcelExists(filePath)) {
return null;
}
boolean isExcel2003 = true;
if (WDWUtil.isExcel2007(filePath)) {
isExcel2003 = false;
}
File file = new File(filePath);
is = new FileInputStream(file);
dataLst = read(is, isExcel2003);
is.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
is = null;
e.printStackTrace();
}
}
}
return dataLst;
}
public boolean validateExcel(String filePathFileName) {
if (filePathFileName == null
|| !(WDWUtil.isExcel2003(filePathFileName) || WDWUtil
.isExcel2007(filePathFileName))) {
errorInfo = "文件名不是excel格式";
return false;
}
return true;
}
public boolean validateExcelExists(String filePath) {
File file = new File(filePath);
if (file == null || !file.exists()) {
errorInfo = "文件不存在";
return false;
}
return true;
}
相关文章推荐
- java中使用poi实现导入Excel
- java操作Excel之POI(6)使用POI实现使用模板批量添加数据
- Java使用POI实现数据导出excel报表
- 使用poi实现java读取excel表格并存储到数据库中解决读取日期格式问题(ssm框架)
- java使用poi实现excel表格生成
- java使用poi或者jxl实现excel导出之后如何弹出保存提示框
- java使用POI操作excel文件,实现批量导出,和导入
- Java 工具类 - 使用POI以及反射实现导出Excel的功能
- Java使用POI实现数据导出excel报表
- Java 使用POI实现Excel表格的导入导出
- java使用POI实现替换文件中指定关键字
- Java使用POI实现数据导出excel报表
- java使用poi实现大数据量导出为EXCEL
- Java:使用POI实现word的docx文件的模板功能
- java使用POI实现excel文件的读取,兼容后缀名xls和xlsx
- java使用poi或者jxl实现excel导出之后如何弹出保存提示框
- 【JavaWeb开发】使用java实现简单的Excel文件的导入与导出(POI)
- Java使用POI实现数据导出excel报表
- 使用POI实现Java读写Excel文件
- java使用POI实现Excel文件的读取