年前在开发功能模块的时候用到了CSV文件导入导出,就此整理一下,便于大家参考。
导入导出功能很多时候用到的都是excel文件,但是现在越来越多的使用了CSV文件进行此操作,它是一个纯文本文件,可以用记事本打开,也可以用Excel打开。CSV文件不像Excel那样有很多条条框框,它使用硬回车分割每条记录,用逗号分隔每条数据的字段。
CSV格式的文件就是用硬回车和文本都好实现的表格,用Excel一读就成了表格。文件名后缀就是 .csv。
直接上代码吧!
导入部分
导入的时候基于Ajax请求,js代码如下: function importIpMac(upload) {
var importTextInfo = document.getElementById("importTextInfo");
importTextInfo.value="";
$.ajaxFileUpload({
url: ctx + "/ipmac/importIpMac",
type: 'post',
secureuri: false, // 一般设置为false
fileElementId: 'upload', // 上传文件的id、name属性名
dataType: 'text', // 返回值类型,一般设置为json、application/json
success: function(data, status){
getIpMacBase();
},
error: function(data, status, e){
alert('请求异常!');
}
});
}
java代码控制层: /**
* 导入
*/
@ResponseBody
@RequestMapping(value = "/importIpMac", method = RequestMethod.POST, headers = { "content-type=multipart/form-data" })
public int importIpMac(HttpServletRequest request,
HttpServletResponse response,
@RequestParam(value = "upload") MultipartFile[] buildInfo)
throws ServletException, IOException {
// 得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
String savePath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload");
savePath = savePath.replace("file:", ""); // 去掉file:
File file1 = new File(savePath);
// 判断上传文件的保存目录是否存在
if (!file1.exists() && !file1.isDirectory()) {
log.info(savePath + "目录不存在,需要创建");
file1.mkdir();
}
// 删除此路径下的所有文件以及文件夹
delAllFile(savePath);
try {
InputStre