1.页面
<input id="uploadFile" name="uploadFile" class="btn btn-primary btn-sm" type="file" value="上传" />
2.JS
//把dataUrl类型的数据转为blob
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {type:mime});
}
$('#uploadFile').change(function(){
var layerIndex = layer.load(1, {shade: "#000"});
var file = this.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var dataUrl = e.target.result;
var blob = dataURLtoBlob(dataUrl);
var formData = new FormData();
formData.append("file", blob,file.name);
$.ajax({
type: "POST",//提交类型
dataType: "json",//返回结果格式
url: BASE_PATH + '/admin/bigCustomer/importExcel.html',//请求地址
async: true ,
processData: false, //当FormData在jquery中使用的时候需要设置此项
contentType: false ,//如果不加,后台会报表单未封装的错误 (enctype='multipart/form-data' )
//请求数据
data:formData ,
success: function (obj) {//请求成功后的函数
alert(obj);
layer.close(layerIndex);
successCallback(3);
},
error: function (obj) {
layer.close(layerIndex);
}
}); // end of ajaxSubmit
};
reader.readAsDataURL(file);
});
3. Java代码
//导入Excel
public Object importExcel(File file, HttpServletRequest request) throws Exception {
Map<String, Object> result = Maps.newHashMap();
HttpSession session = request.getSession();
//当前登录公司
TCompanyEntity loginCompany = LoginUtil.getLoginCompany(session);
Integer comId = loginCompany.getId();
//当前登录用户
TUserEntity loginUser = LoginUtil.getLoginUser(session);
Integer userId = loginUser.getId();
//当前时间
Date nowDate = DateUtil.nowDate();
//字符编码为utf-8
request.setCharacterEncoding("UTF-8");
if (file != null) {
InputStream is = new FileInputStream(file);
ExcelReader excelReader = new ExcelReader();
SimpleDateFormat FORMAT_DEFAULT_DATE = new SimpleDateFormat("yyyy-MM-dd");
//获取Excel模板第二行之后的数据
Map<Integer, String[]> map = excelReader.readExcelContent(is);
List<TAppStaffBasicinfoEntity> baseInfos = Lists.newArrayList();
for (int i = map.size(); i > 0; i--) {
TAppStaffBasicinfoEntity baseInfo = new TAppStaffBasicinfoEntity();
String[] row = map.get(i);
baseInfo.setFirstName(row[1]);
baseInfo.setFirstNameEn(row[2]);
baseInfo.setLastName(row[3]);
baseInfo.setLastNameEn(row[4]);
if (!Util.isEmpty(row[5])) {
BigDecimal db = new BigDecimal(row[5]);
baseInfo.setTelephone(db.toPlainString());
}
baseInfo.setEmail(row[6]);
baseInfo.setDepartment(row[7]);
baseInfo.setJob(row[8]);
baseInfo.setComId(comId);
baseInfo.setUserId(userId);
baseInfo.setOpId(userId);
baseInfo.setCreateTime(nowDate);
baseInfo.setUpdateTime(nowDate);
baseInfos.add(baseInfo);
}
dbDao.insert(baseInfos);
}
result.put("status", 200);
return result;
}
4.Excel数据