Excel批量导入导出功能开发
来源:互联网 发布:阿里云短信接口开发 编辑:程序博客网 时间:2024/05/21 10:36
ftl:
<a id="subimport" onclick="subImport()"class="easyui-linkbutton" iconCls="icon-redo" style="display:inline-block" >导入</a>   <a onclick="expCsv()" class="easyui-linkbutton" iconCls="icon-print" style="display:inline-block" >模板下载</a>
js:
function subImport() {// probeAuthStatus(function() { // 已登录 var fileName = $("#productFile").val(); if (fileName == null || fileName == "") { $.messager.alert("操作提示","未选择文件,请选择!",'info'); return; } if (fileName != "") { fileName = fileName.substring(fileName.lastIndexOf(".")); } if (fileName.toLowerCase() != ".csv") { $.messager.alert("操作提示","请填入CSV文件的格式!",'info'); return; } $("#queryForm").attr("action", base + "/standardSkuCmmdty/importSkuCmmdty.do"); $("#queryForm").submit();// }, function() {//未登录状态// login();// });};
java:
private static final String[] FILE_HEADER = { "SKU商品编码" }; private static final CSVFormat CSV_FORMAT = CSVFormat.EXCEL.withHeader(FILE_HEADER).withQuote(null) .withSkipHeaderRecord(true);public String importProduct(Model model, @RequestParam("productFile") MultipartFile productFile) { if (productFile == null) { model.addAttribute(Constant.ERROR_MSG, "导入文件为空!"); return Constant.COMMON_ERROR_PAGE; } try { Iterable<CSVRecord> records = CSV_FORMAT.parse(new InputStreamReader(productFile.getInputStream(), "GBK")); if (records != null && records.iterator() != null) { List<StandardSkuCmmdtylImportErrorVo> errorList = Lists.newArrayList(); int totalSuccessCount = 0; int i = 2; for (CSVRecord record : records) { int recordNum = record.size(); if (recordNum == 1) { String cmmdtyCode = record.get(0); // 获取传进来的商品编码; if (!StringUtils.isEmpty(cmmdtyCode)) { int result = cmmdtyInfoBusiness.addStandardCmmdty(cmmdtyCode); if (result != 1) { StandardSkuCmmdtylImportErrorVo errorInfo = new StandardSkuCmmdtylImportErrorVo(); errorInfo.setCmmdtyCode(cmmdtyCode); errorInfo.setErrMsg("line:" + i + " add cmmdty error."); errorList.add(errorInfo); } else { totalSuccessCount = totalSuccessCount + 1; } } } else { model.addAttribute("totalSuccessCount", totalSuccessCount); model.addAttribute(Constant.ERROR_MSG, "导入模板不对!"); return "standardSkuCmmdty/importResult.ftl"; } i++; } model.addAttribute("totalSuccessCount", totalSuccessCount); model.addAttribute("errorSize", errorList.size()); model.addAttribute("errorList", errorList); } else { model.addAttribute("totalSuccessCount", 0); model.addAttribute(Constant.ERROR_MSG, "导入文件为空!"); return "standardSkuCmmdty/importResult.ftl"; } } catch (IOException e) { LOGGER.error("解析文件报错!IO", e); } return "standardSkuCmmdty/importResult.ftl"; }
导出功能:
/** * 导出excel */function expCsv(flag) { window.location.href = base + "/standardSkuCmmdty/exportCsv.do";} @RequestMapping("/exportCsv.do") public void exportCsv(HttpServletResponse response, HttpServletRequest request, String orgId, String modelFlag) { String fileName = "标准SKU商品导入模板.csv"; String userAgent = request.getHeader("User-Agent"); // 处理中文名称的问题 fileName = ExportFileUtil.dealChineseFileName(userAgent, fileName); PrintWriter writer = null; // 设置响应 response.setCharacterEncoding("GBK"); response.setContentType("text/csv;charset=GBK"); response.setHeader("Pragma", "public"); response.setHeader("Cache-Control", "max-age=30"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName); try { writer = response.getWriter(); CSV_FORMAT.print(writer); writer.flush(); } catch (IOException e) { LOGGER.error("生成文件报错!IO", e); } finally { IOUtils.closeQuietly(writer); } } /** * 导出文件名中文处理 * * @param userAgent * @param fileName * @return */ public static String dealChineseFileName(String userAgent, String fileName) { String fn = fileName; try { // 针对IE或者以IE为内核的浏览器: if (userAgent.contains("MSIE") || userAgent.contains("Trident")) { fn = URLEncoder.encode(fileName, "UTF-8"); } else { // 非IE浏览器的处理: fn = new String(fileName.getBytes("UTF-8"), "ISO-8859-1"); } } catch (UnsupportedEncodingException e1) { LOGGER.error("文件名转换出现错误", e1); } return fn; }
阅读全文
0 0
- Excel批量导入导出功能开发
- 报表开发之批量导入导出Excel
- 报表开发之批量导入导出Excel
- Jeesite开发,Excel导入导出的功能
- Excel批量导入(导出同理)
- jxl操作excel进行批量导入 、导出
- 在MS CRM中使用Excel导入/导出的功能对数据进行批量处理
- WEB下的excel批量导入功能
- Excel的导入导出功能实现
- java的Excel的导入导出功能
- PHP Excel的导入与导出功能
- Excel的导入和导出功能实现
- Excel导入导出功能测试点
- Java开发使用Excel批量导入数据
- asp.net下载Excel模板和导入导出Excel功能
- C#excel、sql sever批量数据的导入导出
- java之poi操作excel-批量导入导出
- 文本数据批量导入导出数据库功能~~急~~
- java使用poi遍历Excel保存到容器中
- SDL2.0 播放wav文件
- 23种设计模式总结
- Android开发之单位转换,dp、px、sp
- DelegatingFilterProxy的原理及使用
- Excel批量导入导出功能开发
- 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
- 1007. 素数对猜想
- C++之MYSQL数据库
- mysql性能优化 整理
- 重读网峰A8文档---之---USB摄像头(V4l2简要分析部分)
- php文件存储时的编码格式--utf8无BOM
- 入门视频采集与处理(BT656简介)
- Kotlin学习笔记——标准库kotlin.io