017 区域导入功能 - bos
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了017 区域导入功能 - bos相关的知识,希望对你有一定的参考价值。
一、jQuery的OCUpload
1.OCUpload(One Click Upload)
<script src="${pageContext.request.contextPath}/js/jquery.ocupload-1.1.2.js"></script>
2.传统文件上传:
<1>页面要有form表单,action为提交地址,method="post",注意enctype="multipart/form-data"
<2>表单内要有<input type="file" name="myfile"/>这样的输入框
<3>定义<input type="submit" value="上传"/>
3.传统文件上传会刷新页面,使用OCUpload可以避免页面刷新
4.传统文件上传避免刷新方法:利用iframe,这样刷新的是iframe
<iframe style="display: none;" name="fileUploadFrame"></iframe>
<form target="fileUploadFrame" action="xxx" enctype="multipart/form-data" method="post">
<input type="file" name="myFile"/>
<input type="submit" value="上传">
</form>
4.OCUpload用法:
<input type="button" id="myButton" value="上传"/>
<script type="text/javascript">
$(function(){
//页面加载完成后,调用插件的upload方法,动态修改了html页面元素,改成了和自定义的避免刷新的方法差不多
$("#myButton").upload({
action:"xxx.action",
name:"myFile"
});
});
</script>
二、apache POI技术(重要)
1.入门案例
@Test
public void test1() throws Exception{
String path = "H:\\900 就业班\\11 项目一:物流BOS系统(58-71天)\\BOS-day05\\BOS-day05\\资料\\分区导入测试数据.xls";
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File(path)));
//读取文件中第一个sheet标签页
HSSFSheet hssfSheet = workbook.getSheetAt(0);
//便利标签页中的所有行
for (Row row : hssfSheet) {
//遍历每一行,cell是一个单元格cell
for (Cell cell : row) {
//获取单元格的内容
String value = cell.getStringCellValue();
System.out.print(value+",");
}
System.out.println();
}
workbook.close();
}
三、pinyin4J工具类:拼音生成工具
1.入门样例
@Test
public void test1(){
//河北省 石家庄市 桥西区
String province = "河北省";
String city = "石家庄市";
String district = "桥西区";
//简码 --->HBSJZQX
province = province.substring(0, province.length()-1);
city = city.substring(0, city.length()-1);
district = district.substring(0, district.length()-1);
String info = province + city+district;
System.out.println(info);
String[] headByString = PinYin4jUtils.getHeadByString(info);
String shortcode = StringUtils.join(headByString);
System.out.println(shortcode);
//城市编码--->shijiazhuang
String cityCode = PinYin4jUtils.hanziToPinyin(city, "");
System.out.println(cityCode);
}
四、区域导入功能
1.编写前端js
$(function(){
//页面加载完成后调用OCUpload插件,注意要在表格创建之后
$("#button-import").upload({
action:"regionAction_importXls.action",
name:"regionFile"
});
});
2.创建RegionAction.importXls
/**
* 区域导入
* @return
* @throws Exception
*/
public String importXls() throws Exception{
List<Region> regionList = new ArrayList<Region>();
//使用POI解析Excel文件
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(regionFile));
HSSFSheet sheet = workbook.getSheet("sheet1");
//遍历表
for (Row row : sheet) {
//排除标题行
int rowNum = row.getRowNum();
if(rowNum == 0){
continue;
}
//读取单元格数据
String id = row.getCell(0).getStringCellValue();
String province = row.getCell(1).getStringCellValue();
String city = row.getCell(2).getStringCellValue();
String district = row.getCell(3).getStringCellValue();
String postcode = row.getCell(4).getStringCellValue();
//包装为区域对象
Region region = new Region(id, province, city, district, postcode, null, null, null);
//简码 --->HBSJZQX
province = province.substring(0, province.length()-1);
city = city.substring(0, city.length()-1);
district = district.substring(0, district.length()-1);
String info = province + city+district;
String[] headByString = PinYin4jUtils.getHeadByString(info);
String shortcode = StringUtils.join(headByString);
region.setShortcode(shortcode);
//城市编码--->shijiazhuang
String citycode = PinYin4jUtils.hanziToPinyin(city, "");
region.setCitycode(citycode);
regionList.add(region);
}
//批量保存
regionService.saveBatch(regionList);
workbook.close();
return NONE;
}
3.编写RegionService,注意调用的是saveOrUpdate
@Override
public void saveBatch(List<Region> regionList) {
for (Region region : regionList) {
regionDao.saveOrUpdate(region);
}
}
4.配置RegionAction
<action name="regionAction_*" class="regionAction" method="{1}">
</action>
以上是关于017 区域导入功能 - bos的主要内容,如果未能解决你的问题,请参考以下文章