页面:
<input type="file" id="filePath" name="filePath" value="${filePath?if_exists}" title="${action.getText('operator.excelpath')}" class="textbox_css" style="width:500px" />
<input type="button" class="btn" name="btnUpload" value=" ${action.getText("system.board.upload")} " οnclick="addOperatorUpload();" />
//文件上传操作
function addOperatorUpload(){
/**上传文件不能用href,不然后台myFile拿不到值*/
var filepath=document.getElementById("filePath").value;
if(''==filepath){
alert("请选择要上传的excle文件");
return;
}
document.location.href="${base}/system/operatorBatchManager.action?act=doOther&filePath="+filepath;
}
********************************************************************
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
action:
private String filePath;
/**
* 文件
*/
private File myFile;
// myFileContentType属性用来封装上传文件的类型
private String myFileContentType;
// myFileFileName属性用来封装上传文件的文件名
private String myFileFileName;
//以上get/set方法略
/**
* excel文件读取
*/
public String doOther() throws Exception {
myFile = new File(filePath);
// 获得文件名
String type = myFile.getName();// this.getMyFileFileName();
int i = 0;
while (i != -1) {
// 找到上传文件的类型的位置,这个地方的是'.'
i = type.indexOf(".");
// 截取上传文件的后缀名,此时得到了文件的类型
type = type.substring(i + 1);
}
// 如果是excle文件就开始处理
if ("xls".equals(type) || "xlsx".equals(type)) {
// 获得文件路径
String str_path = myFile.toString();
this.excelDataImportOracle(str_path);
} else {
// 文件类型不对
this.setErrorInfo(getText("info.fileErrorType"));
}
return "addInput";
}
public void excelDataImportOracle(String pathname) throws Exception {
try {
ArrayList<AdminWorkArea> al = this.readExcel(pathname);
// 将数据保存给分页对象返回页面
this.pageInfo.setSearchResult(al);
}
public ArrayList<AdminWorkArea> readExcel(String pathname) {
String cellStr = null;// 单元格,最终按字符串处理
InputStream is = null;
ArrayList<AdminWorkArea> list = new ArrayList<AdminWorkArea>();
try {
is = new FileInputStream(new File(pathname));// 获取文件输入流
HSSFWorkbook workbook = new HSSFWorkbook(is);// 创建Excel2003文件对象
HSSFSheet sheet = workbook.getSheetAt(0);// 取出第一个工作表,索引是0
// 开始循环遍历行,表头不处理,从1开始
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
HSSFRow row = sheet.getRow(i);// 获取行对象
if (row == null) {// 如果为空,不处理
continue;
}
AdminWorkArea o = new AdminWorkArea();
// 循环遍历单元格
for (int j = 0; j < row.getLastCellNum(); j++) {
HSSFCell cell = row.getCell((short) j);// 获取单元格对象
if (cell == null) {// 单元格为空设置cellStr为空串
cellStr = "";
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {// 对布尔值的处理
cellStr = String.valueOf(cell.getBooleanCellValue());
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {// 对数字值的处理
cellStr = String.valueOf(cell.getNumericCellValue());
} else {// 其余按照字符串处理
cellStr = cell.getStringCellValue();
}
// 下面按照数据出现位置封装到bean中
switch (j) {
case 0: o.setLogin(cellStr);
break;
case 1: o.setName(cellStr);
break;
case 2: o.setAgentSkills(cellStr);
break;
case 4: o.setSubccNo(cellStr);
break;
case 5: o.setVdn(cellStr);
break;
case 6:// 工作组id
o.setGroupId(cellStr);
break;
}
}
// 登录名做为键,保存到map中到时用于增加
map.put(o.getLogin(), o);
list.add(o);// 将excel用户列表放入集合中
}
} catch (Exception e) {
e.printStackTrace();
} finally {// 关闭文件流
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return list;
}
************************************************************
struts.xml文件:
<!-- 批量用户管理-->
<action name="operatorBatchManager" class="com.tempus.fw.operatorBatchAction">
<result name="addInput" type="freemarker">
/WEB-INF/core/pages/system/operatorBatchOpt.ftl
</result>
</action>
<input type="file" id="filePath" name="filePath" value="${filePath?if_exists}" title="${action.getText('operator.excelpath')}" class="textbox_css" style="width:500px" />
<input type="button" class="btn" name="btnUpload" value=" ${action.getText("system.board.upload")} " οnclick="addOperatorUpload();" />
//文件上传操作
function addOperatorUpload(){
/**上传文件不能用href,不然后台myFile拿不到值*/
var filepath=document.getElementById("filePath").value;
if(''==filepath){
alert("请选择要上传的excle文件");
return;
}
document.location.href="${base}/system/operatorBatchManager.action?act=doOther&filePath="+filepath;
}
********************************************************************
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
action:
private String filePath;
/**
* 文件
*/
private File myFile;
// myFileContentType属性用来封装上传文件的类型
private String myFileContentType;
// myFileFileName属性用来封装上传文件的文件名
private String myFileFileName;
//以上get/set方法略
/**
* excel文件读取
*/
public String doOther() throws Exception {
myFile = new File(filePath);
// 获得文件名
String type = myFile.getName();// this.getMyFileFileName();
int i = 0;
while (i != -1) {
// 找到上传文件的类型的位置,这个地方的是'.'
i = type.indexOf(".");
// 截取上传文件的后缀名,此时得到了文件的类型
type = type.substring(i + 1);
}
// 如果是excle文件就开始处理
if ("xls".equals(type) || "xlsx".equals(type)) {
// 获得文件路径
String str_path = myFile.toString();
this.excelDataImportOracle(str_path);
} else {
// 文件类型不对
this.setErrorInfo(getText("info.fileErrorType"));
}
return "addInput";
}
public void excelDataImportOracle(String pathname) throws Exception {
try {
ArrayList<AdminWorkArea> al = this.readExcel(pathname);
// 将数据保存给分页对象返回页面
this.pageInfo.setSearchResult(al);
}
public ArrayList<AdminWorkArea> readExcel(String pathname) {
String cellStr = null;// 单元格,最终按字符串处理
InputStream is = null;
ArrayList<AdminWorkArea> list = new ArrayList<AdminWorkArea>();
try {
is = new FileInputStream(new File(pathname));// 获取文件输入流
HSSFWorkbook workbook = new HSSFWorkbook(is);// 创建Excel2003文件对象
HSSFSheet sheet = workbook.getSheetAt(0);// 取出第一个工作表,索引是0
// 开始循环遍历行,表头不处理,从1开始
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
HSSFRow row = sheet.getRow(i);// 获取行对象
if (row == null) {// 如果为空,不处理
continue;
}
AdminWorkArea o = new AdminWorkArea();
// 循环遍历单元格
for (int j = 0; j < row.getLastCellNum(); j++) {
HSSFCell cell = row.getCell((short) j);// 获取单元格对象
if (cell == null) {// 单元格为空设置cellStr为空串
cellStr = "";
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {// 对布尔值的处理
cellStr = String.valueOf(cell.getBooleanCellValue());
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {// 对数字值的处理
cellStr = String.valueOf(cell.getNumericCellValue());
} else {// 其余按照字符串处理
cellStr = cell.getStringCellValue();
}
// 下面按照数据出现位置封装到bean中
switch (j) {
case 0: o.setLogin(cellStr);
break;
case 1: o.setName(cellStr);
break;
case 2: o.setAgentSkills(cellStr);
break;
case 4: o.setSubccNo(cellStr);
break;
case 5: o.setVdn(cellStr);
break;
case 6:// 工作组id
o.setGroupId(cellStr);
break;
}
}
// 登录名做为键,保存到map中到时用于增加
map.put(o.getLogin(), o);
list.add(o);// 将excel用户列表放入集合中
}
} catch (Exception e) {
e.printStackTrace();
} finally {// 关闭文件流
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return list;
}
************************************************************
struts.xml文件:
<!-- 批量用户管理-->
<action name="operatorBatchManager" class="com.tempus.fw.operatorBatchAction">
<result name="addInput" type="freemarker">
/WEB-INF/core/pages/system/operatorBatchOpt.ftl
</result>
</action>