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