1.导入

前端js和跳转页面

 <t:dgToolBar title="导入单一模板" icon="icon-put"    funname="Importonlyone"></t:dgToolBar>
function Importonlyone(title,url,gname) {
gridname=gname;
var ids = [];
var rows = $("#"+gname).datagrid('getSelections');
 if(rows.length==1){
openuploadwin('Excel导入', 'decMainController.do?upload&num=1&ids='+rows[0].id, "decMainList");
} }
<t:formvalid formid="formobj" layout="div" dialog="true" beforeSubmit="upload">
<fieldset class="step">
<div class="form"><t:upload name="fiels" buttonText="选择要导入的文件" uploader="${controller_name}.do?${empty method_name?'importExcel':method_name }" extend="*.xls;*.xlsx" id="file_upload" formData="documentTitle"></t:upload></div>
<div class="form" id="filediv" style="height: 50px"></div>
</fieldset>
</t:formvalid>

后台跳转方法及导入解析

     @RequestMapping(params = "upload")
public ModelAndView upload(HttpServletRequest req) {
  req.setAttribute("controller_name","decMainController");
req.setAttribute("method_name","importonlyone");
req.setAttribute("ids", req.getParameter("ids"));        return new ModelAndView("com/jeecg/decmain/pub_excel_upload");
}
           @SuppressWarnings("unchecked")
@RequestMapping(params = "importonlyone", method = RequestMethod.POST)
@ResponseBody
public AjaxJson importonlyone(HttpServletRequest request, HttpServletResponse response) throws Exception {
AjaxJson j = new AjaxJson();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
List<MultipartFile> contactFile= new ArrayList<MultipartFile>();
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();// 获取上传文件对象
   contactFile.add(file);
  }
XSSFWorkbook wb;//2007以前的是HSSFWorkbook
// 页
XSSFSheet sheet;//成品表
// 行
XSSFRow row;//成品表行
// 打开文件
try {
wb = new XSSFWorkbook(contactFile.get(0).getInputStream());
} catch (IOException e) {
e.printStackTrace();
wb = new XSSFWorkbook();
}
sheet = wb.getSheetAt(0);
int rowNum = sheet.getLastRowNum();
DecMainPage decMainPage=new DecMainPage();
row=sheet.getRow(1);
String ieflag=getCellFormatValue(row.getCell(1));//进出口标识
          }

2.导出

前台js:

  <t:dgToolBar title="导出" icon="icon-putout"    funname="newbaoguan"></t:dgToolBar>
           function newbaoguan(title,url, id,width,height,isRestful) {
gridname=id;
var rowsData = $('#'+id).datagrid('getSelections');
if (!rowsData || rowsData.length==0) {
tip('请选择导出项目');
return;
}
if (rowsData.length>1) {
tip('请选择一条记录再导出');
return;
}
if (rowsData.length==1) {
JeecgExcelExport("decMainController.do?newbaoguan&ids="+rowsData[0].id,"decMainList");
} }

后台java代码

  @RequestMapping(params = "newbaoguan")
public void newbaoguan(HttpServletRequest request,HttpServletResponse response,ModelMap modelMap,OutputStream output) throws IOException {
          Workbook tempWorkBook = null;
String lujing=request.getSession().getServletContext().getRealPath("/");
String lujing1=lujing+"export\\template\\newbaoguancus20180918.xls";
  InputStream in = new FileInputStream(new File(lujing1));
   HSSFWorkbook work = new HSSFWorkbook(in);
   HSSFSheet sheetModel =work.getSheetAt(0);
   HSSFSheet newSheet = work.createSheet("Sheet"+(i+2));
copySheet(work, sheetModel, newSheet, sheetModel.getFirstRowNum(), sheetModel.getLastRowNum());
HSSFCellStyle setBorder = (HSSFCellStyle)work.createCellStyle();
setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
HSSFCellStyle setBorder1 = (HSSFCellStyle)work.createCellStyle();
setBorder1.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
HSSFCellStyle setBorder2 = (HSSFCellStyle)work.createCellStyle();
setBorder2.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
HSSFRow row = newSheet.getRow(1);
HSSFCell cell = row.getCell(1);
cell.setCellValue(""); response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel"); //保证不乱码
try
{
Date date=new Date();
SimpleDateFormat format=new SimpleDateFormat("MMddHHmmss");
String time="im"+format.format(date)+".xls";
response.setHeader("Content-Disposition","attachment;" + " filename=" + new String(time.getBytes("utf-8"), "ISO-8859-1")); }
catch (UnsupportedEncodingException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
try
{
ByteArrayOutputStream oss =new ByteArrayOutputStream();
OutputStream os = response.getOutputStream();
work.write(oss); byte temp[] = oss.toByteArray();
ByteArrayInputStream in1 = new ByteArrayInputStream(temp);
int n = 0;
while ((n = in1.read(temp)) >0) {
os.write(temp, 0, n);
}
os.flush();
os.close();
} catch(Exception e)
{
e.printStackTrace();
}
}

最新文章

  1. 前端开发:setTimeout与setInterval 定时器与异步循环数组
  2. adb install INSTALL_FAILED_ALREADY_EXISTS
  3. 前后台获取上下文context
  4. javascript数据属性和访问器属性
  5. Oracle学习笔记1
  6. Linux 简介
  7. VB6.0对鼠标滚轮不支持的解决方法[转]已经测试work
  8. [git]查看某一行代码是谁写的
  9. SQL注入测试平台 SQLol -6.CHALLENGES挑战
  10. Java IO(四)
  11. systemtap 列出所有linux 内核模块与相关函数2
  12. 【POJ2406】 Power Strings (KMP)
  13. 一种根据URL参数条件动态生成URL的方法
  14. 第九十节,html5+css3pc端固定布局,底部区域,说明区域,版权区域
  15. CentOS7.2 使用Shell安装Oracle12c
  16. 使用腾讯云无服务器云函数(SCF)分析天气数据
  17. python 下载新的模块
  18. iPhone6 AirDrop找不到我的mac解决方法!注销mac和iPhone的icloud账号
  19. nginx部署静态页面
  20. asp.net --&gt; 初识WCF

热门文章

  1. moment——日期格式化常用示例
  2. 定义Java类实现字节流转字符流
  3. js 正则表达式将 p标签替换 span标签
  4. redis安装,以及开机自动启动
  5. vue1 动态组件
  6. 2014年9月9日 高级命令command的使用(上)
  7. 一步步来用C语言来写python扩展
  8. mysql查看当前所有数据库中的表大小和元信息information_schema
  9. linux笔试题
  10. SQL Server遇到的错误和有用的tools