1.MiniUI官网的前端导出excel

前端界面:

<body>
<div style="width: 100%;"><div class="mini-toolbar" style="border-bottom:0;padding:0;"><table style="width:100%;"><tr><td style="width:100%;"><a class="mini-button" onclick="search()">查询</a><a class="mini-button" onclick="exportExcel()">导出</a></td></tr></table></div>
</div><div id="datagrid1" class="mini-datagrid" style="width: 100%; height: 600px" idField="id"allowResize="true" pageSize="20" allowCellSelect="true" url="../findAll"
><div property="columns"><div type="indexcolumn" width="100" align="center"></div><div field="name" headerAlign="center" width="100" align="center">姓名</div><div field="age" headerAlign="center"  width="100" align="center">年龄</div><div field="remarks" width="100" headerAlign="center" align="center">备注</div><div field="gender" width="100" headerAlign="center" align="center">性别</div><div field="country" width="100" headerAlign="center" align="center">国家</div></div>
</div>
</body>
<script type="text/javascript">mini.parse();var datagrid1 = mini.get("datagrid1");function search() {datagrid1.load();}function exportExcel() {var columns = datagrid1.columns;function getColumns(columns) {var cols = [];for (var i = 0; i < columns.length; i++) {var column = columns[i];var col = { header: column.header, field: column.field, type: column.type };if (column.columns) {col.columns = getColumns(column.columns);}cols.push(col);}return cols;}var columns = getColumns(columns);DownLoad("../download", { type: "excel", columns: columns, data:datagrid1.getData()});}function DownLoad(url, fields) {//创建Formvar submitfrm = document.createElement("form");submitfrm.action = url;submitfrm.method = "post";submitfrm.target = "_blank";document.body.appendChild(submitfrm);if (fields) {for (var p in fields) {var input = mini.append(submitfrm, "<input type='hidden' name='" + p + "'>");var v = fields[p];if (typeof v != "string") v = mini.encode(v);input.value = v;}}submitfrm.submit();setTimeout(function () {submitfrm.parentNode.removeChild(submitfrm);}, 1000);}
</script>

2.后台接口接收form数据columns和当前页datagrid中的数据(若需要查询所有数据可以直接查数据库中的数据,即不需要接收data),创建excel工作簿,columns中的header值作为列头。(columns中有header和field两个属性)

controller中接口:

    @ResponseBody@RequestMapping("/download")public void download(@RequestParam("columns")String columns, @RequestParam("data")String data, HttpServletResponse response){personService.exportExcel(columns,data,response);}

service中方法的具体实现:

 public void exportExcel(String columns,String data, HttpServletResponse response){JSONArray array = JSONArray.parseArray(columns);//移除序号项array.remove(0);//获取当前页的数据List<PersonEntity> entities = JSONObject.parseArray(data, PersonEntity.class);//获取所有数据,通过查询数据库中的所有数据。//List<PersonEntity> entities = personService.findAll();try {OutputStream out = response.getOutputStream();String fname = "grid";response.reset();//清空输出流response.setCharacterEncoding("UTF-8");//设置相应内容的编码格式fname = java.net.URLEncoder.encode(fname, "UTF-8");response.setHeader("Content-Disposition", "attachment;filename=" + new String(fname.getBytes("UTF-8"), "GBK") + ".xls");response.setContentType("application/ms-excel");//定义输出类型//创建工作簿XSSFWorkbook workbook = new XSSFWorkbook();//创建工作表XSSFSheet sheet = workbook.createSheet(fname);//设置默认行宽sheet.setDefaultColumnWidth(20);//设置标题样式XSSFCellStyle cellStyle1 = workbook.createCellStyle();cellStyle1.setAlignment(HorizontalAlignment.CENTER);//水平居中cellStyle1.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中XSSFFont font = workbook.createFont();font.setFontHeightInPoints((short) 16);  //标题字大小font.setBold(true);  //加粗cellStyle1.setFont(font);//设置标题XSSFRow title = sheet.createRow(0);title.setHeightInPoints(30);  //行高XSSFCell cell = title.createCell(0);cell.setCellValue("人员信息");cell.setCellStyle(cellStyle1);//合并单元格sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 4));//设置表头样式XSSFCellStyle cellStyle2 = workbook.createCellStyle();cellStyle2.setAlignment(HorizontalAlignment.CENTER);//水平居中cellStyle2.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中//创建表头行和列名XSSFRow row = sheet.createRow(1);for (int i = 0; i < array.size(); i++) {XSSFCell columnHead = row.createCell(i);columnHead.setCellValue(array.getJSONObject(i).getString("header"));columnHead.setCellStyle(cellStyle2);}//设置数据行样式XSSFCellStyle cellStyle3 = workbook.createCellStyle();cellStyle3.setAlignment(HorizontalAlignment.CENTER);//水平居中cellStyle3.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中cellStyle3.setWrapText(true);//创建数据行for(int j = 0; j < entities.size(); j++){XSSFRow dataRow = sheet.createRow(j+2);XSSFCell cell0 = dataRow.createCell(0);XSSFCell cell1 = dataRow.createCell(1);XSSFCell cell2 = dataRow.createCell(2);XSSFCell cell3 = dataRow.createCell(3);XSSFCell cell4 = dataRow.createCell(4);cell0.setCellStyle(cellStyle3);cell1.setCellStyle(cellStyle3);cell2.setCellStyle(cellStyle3);cell3.setCellStyle(cellStyle3);cell4.setCellStyle(cellStyle3);cell0.setCellValue(entities.get(j).getName());cell1.setCellValue(entities.get(j).getAge());cell2.setCellValue(entities.get(j).getRemarks());cell3.setCellValue(entities.get(j).getGender());cell4.setCellValue(entities.get(j).getCountry());}workbook.write(out);//释放空间out.close();workbook.close();}catch (Exception e){}}

pom.xml相关依赖:

     //json依赖<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.70</version></dependency>//excel依赖<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.0</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.0</version></dependency>

前端界面显示:
excel界面显示:

miniui excel导出相关推荐

  1. Excel向数据库插入数据和数据库向Excel导出数据

    为了熟悉java里工作簿的相关知识点,所以找了"Excel向数据库插入数据和数据库向Excel导出数据"的功能来实现. 注意事项:1,mysql数据库: 2,需要导入的jar包有 ...

  2. C# 中Excel导出,可以自由设置导出的excel格式

    Excel导出,不管在java,C#等后台语言,或者是javascrit,jquery等脚本语言,有很多种方式都可以将查出的数据导成excel的格式.我这次是从公司的一个同事那里学来的一个方法.是有关 ...

  3. 数据库数据用Excel导出的3种方法

    数据库数据用Excel导出的3种方法 分类: .Net 2008-06-30 11:07 173人阅读 评论(2) 收藏 举报 将数据库数据用Excel导出主要有3种方法:用Excel.Applica ...

  4. php phppowerpoint 生成表格_php之EXCEL导出代码生成器的实现思路

    背景: 在实际工作中经常会遇到将数据导出到excel这样的需求,对于php语言来说导出excel也不是什么难事,因为借助phpoffice之phpspreadsheet开源库可以轻松实现.有过导出EX ...

  5. C#中用NPOI的excel导出

    //机构表导出 private static List<User2> amininf = new BLL.Bll().GetUser2s(); //定义数据源导出对象 #region 导出 ...

  6. php用Simple Excel导出xls

    因为前几天写了篇文章,用php-excel-reader类导入excel内容,顺便说些excel导出问题,我用的是simple excel,一个很简单的导出xls类,特好用! simple excel ...

  7. ASP excel导出/导入Access数据库(代码+实例下载)

    Excel导出函数 <% Sub   ExportToExcel Response.ContentType   =   "application/vnd.ms-Excel"  ...

  8. 记一次悲惨的 Excel 导出事件

    背景 话说这个背景挺惨的,京东某系统使用了poi-ooxml-3.5-final做excel导出功能.起初使用该版本的poi的HSSF配合多线程生成excel,没有任何问题,后来改成了XSSF生成后上 ...

  9. python数据导出excel_python 数据生成excel导出(xlwt,wlsxwrite)代码实例

    这篇文章主要介绍了python 数据生成excel导出(xlwt,wlsxwrite)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 话不多 ...

最新文章

  1. python 和 matlab的caffe读数据细节
  2. 大数据可视化软件//完美的SCI配图
  3. php 比较数组中的元素,php – 比较多维数组中的元素
  4. Jsの练习-数组常用方法
  5. 串口接收中断配置过程---STM32F4--HAL
  6. 网络爬虫--17.【BeautifuSoup4实战】爬取腾讯社招
  7. Windows Vista SP1 Test Drive发布,在浏览器中即可体验
  8. python生成范围内随机数_如何使用Python中的pareto分布在specyfic范围内生成随机数...
  9. 【算法】CRC 循环冗余校验
  10. linux系统中删除一次性任务流程,Linux系统中的计划任务
  11. 20190909 SpringBoot集成Swagger
  12. Scala中的“=”和“-”
  13. 缓和曲线计算方式实现,全站仪中道路数据计算
  14. wmctf2022 两题PvsZ
  15. android 游戏遥感,Android2.2+游戏摇杆 MOPS魅影T800评测
  16. win10+yolov5尝鲜体验
  17. 桌面上 计算机 回收站不见了怎么办,桌面上的回收站图标不见了怎么办
  18. 编程语言数值型和字符型数据的概念
  19. java自动升级打怪小游戏斗罗大陆
  20. 技术解读|RRBS测序中因酶切人为引入碱基问题

热门文章

  1. 学习springBoot(七,进阶篇)
  2. verilog 按键控制LED的亮灭状态
  3. big data-data mining 学习地图
  4. TIFF World File(TFW)格式说明
  5. Mac(Catalina)上的AI换脸,手把手教小白使用DeepFaceLab
  6. 理想汽车公布Q3财报:营收继续大增,亏损显著收窄,交付量坚挺
  7. iOS使用矢量图的总结
  8. 基于FPGA的DDS研究与设计
  9. 尴尬的数字(C++,数学)
  10. Pytorch LSTM模型 参数详解