-
导出数据到Excel表格
2019-05-06 16:25:31在学习MVC过程中,我们可以在vs中写一个方法,就可以导出我们需要的数据,即导出数据到Excel表格,这样子就节省我们很多的时间了,不用因为需要哪些数据而一条一条的写入Excel表格了。导出数据到Excel表格也可以利用...开发工具与关键技术:VS+导出数据 作者: 李伙 撰写时间: 2019年5月3日
在学习MVC过程中,我们可以在vs中写一个方法,就可以导出我们需要的数据,即导出数据到Excel表格,这样子就节省我们很多的时间了,不用因为需要哪些数据而一条一条的写入Excel表格了。导出数据到Excel表格也可以利用条件筛选来筛选出我们需要的数据。下面为一个例子,先看js部分的代码:
如图所示:先要获取查询条件,再判断获取的条件是否为空,为空就让其等于0,这一步操作主要是条件的筛选,可以筛选出我们需要的数据,这样我们就不会选择到我们不需要的数据。“layer.confirm()”是layui插件里面的一个询问框,是用来提醒用户是否要执行某个操作的,这里是提醒用户是否导出当前数据到Excel表格,是就点击确定,否则就重新筛选数据再导出。
因为这里用到layui插件,因此在使用前要先引用layui插件里面的css文件以及js文件,然后在“$(function(){});”里面加载&&初始化layui模块,否则会报错。加载&&初始化layui模块前要先定义一个全局变量,具体格式如下:
“function(){}”为回调函数,在回调函数里面写一个“window.open()”方法,这里用到window 对象,window 对象表示浏览器中打开的窗口,“open()”是一个方法,“open()”表示打开一个新的浏览器窗口或者查找一个已命名的窗口。这里很明显是一个已命名的窗口,然后在已命名的窗口后面拼接上筛选条件,拼接时一定不能漏掉“? = &”这些字符,不然会报错。
写完js部分的代码后,就到控制器写控制器的代码。
如图所示:第一步时先查询出需要导出的数据,这里用到了linq查询中的group by分组查询。
上图是Linq使用group by分组按UserID用户ID查询出用户最高的成绩信息。group by分组语法:group tbAchievement by tbAchievement.UserID into tbStudent表示对tbAchievement按UserID字段进行分组,其结果命名为tbStudent一旦重新命名,tbAchievement的作用域就结束了,所以,最后select时,只能select tbStudent。
Key属性:返回进行分组的关键字段的值。
OrderByDescending:表示根据键按降序对序列的元素排序。如根据学生的成绩从大到小来进行排序。
FirstOrDefault:表示返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。如学生的成绩从大到小进行排序后,返回学生最高成绩的成绩ID。
查询出数据后就要对数据进行条件的筛选,不然筛选不出我们需要的数据。条件筛选数据如下:
这里条件筛选用到了Lambda表达式,Lambda表达式的运算符是“=>”它的左边是参数,右边是表达式或者语句。Lambda表达式可以与linq查询互换,即Lambda表达式可以转化为linq查询,linq查询可以转化为Lambda表达式,Lambda表达式的代码量比linq查询的代码量少。
写完条件查询后,接下来就是导出数据到Excel表格,这里的代码是重中之重了,导出数据到Excel表格我们主要记的代码就是下面的代码了,先看看代码:
如图所示:(1)首先为要导出的数据创建一个工作簿,也就是先创建一个Excel表格。
(2)创建一个工作表,并使用“CreateSheet()”来为这个工作表命名,如这里命名为“考生成绩”。
(3)为这个工作表设计表头,第一步先创建表头,创建好表头后,就为这个表头设计表头字段,“CreateCell()”的索引值从0开始依次递增,“SetCellValue()”表示表头写入的字段。
(4)写入表格数据,先用“for(){}”循环语句循环遍历需要导出的数据,在“for(){}”里面第一步操作是先创建行,然后再为每一行添加相应的数据。
(5)将Excel文件转化为文件流输出,然后将Excel文件写入内存流中。
(6) 输出之前调用Seek(偏移量,游标位置)方法:确定流开始的位置,即移动文件读取指针到指定的位置。
Seek(0,Seek.begin) 第一个参数表示相对位置,第二个参数表示参照位置。
(7)为下载的Excel文件命名,如这里命名为“学生安全教育测试成绩+当前时间+.xls”。DateTime表示时间上的一刻,通常以日期和当天的时间表示,Now表示获取一个DateTime对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间,ToString表示使用指定的格式将当前DateTime对象的值转化为它的等效字符串表示形式,而这里的“yyyyMMddHHmmss”表示为“年月日时分秒”。
(8)返回:用return返回。“application/vnd.ms-excel”表示为MIME文件类型(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。这样,导出数据到Excel表格就完成了。 -
C++Builder 导出数据到EXCEL表格
2020-03-01 07:00:19C++Builder 导出数据到EXCEL表格 C++Builder 导出数据到EXCEL表格 C++Builder 导出数据到EXCEL表格 C++Builder 导出数据到EXCEL表格 -
导出数据到excel表格
2020-07-02 19:25:10导出数据 @PostMapping("/commodityInventoryExportExcel") @ApiOperation("库存盘点导出(一次只能导出一条记录)") public void commodityInventoryExportExcel(@RequestParam Integer id, HttpServletResponse...导出数据
@PostMapping("/commodityInventoryExportExcel") @ApiOperation("库存盘点导出(一次只能导出一条记录)") public void commodityInventoryExportExcel(@RequestParam Integer id, HttpServletResponse response){ ExcelData data = new ExcelData(); data.setName("库存盘点明细"); List<String> titles = new ArrayList<>(); titles.add("序号"); titles.add("商品品类"); titles.add("商品名称"); titles.add("仓库"); titles.add("库区"); titles.add("库位"); titles.add("单位"); titles.add("原始数量"); titles.add("盘点数量"); titles.add("盘损"); titles.add("盘溢"); titles.add("成本价"); titles.add("金额"); titles.add("备注"); titles.add("操作人"); titles.add("盘点日期"); titles.add("状态"); data.setTitles(titles); List<CommodityInventoryDetail> commodityInventoryDetailList = commodityInventoryDetailService.getListByCommodityInventoryId(id); List<List<Object>> rows = new ArrayList<>(); for (int i = 0; i < commodityInventoryDetailList.size(); i++) { List<Object> row = new ArrayList<>(); row.add(i+1); row.add(commodityInventoryDetailList.get(i).getCategoriesName());//分类名 row.add(commodityInventoryDetailList.get(i).getCommodityName());//商品名 WarehouseManagement warehouseManagement = warehouseManagementService.findWarehouseByStorageDetailId(commodityInventoryDetailList.get(i).getWarehouseId()); if (warehouseManagement!=null) { row.add(warehouseManagement.getWarehouseManagement().getWarehouseManagement().getName());//仓库 row.add(warehouseManagement.getWarehouseManagement().getName());//库区 row.add(warehouseManagement.getName());//库位 } row.add(commodityInventoryDetailList.get(i).getUnit());//单位 row.add(commodityInventoryDetailList.get(i).getOriginalNum());//原始数量 row.add(commodityInventoryDetailList.get(i).getInventoryNum());//盘点数量 row.add(commodityInventoryDetailList.get(i).getLost()==0?"":commodityInventoryDetailList.get(i).getLost());//盘损 row.add(commodityInventoryDetailList.get(i).getOverFlow()==0?"":commodityInventoryDetailList.get(i).getOverFlow());//盘溢 row.add(commodityInventoryDetailList.get(i).getCostPrice());//成本 //金额 if (commodityInventoryDetailList.get(i).getLost()!=0) { commodityInventoryDetailList.get(i).setSum((commodityInventoryDetailList.get(i).getLost())*commodityInventoryDetailList.get(i).getCostPrice()); } else if (commodityInventoryDetailList.get(i).getOverFlow()!=0){ commodityInventoryDetailList.get(i).setSum((commodityInventoryDetailList.get(i).getOverFlow())*commodityInventoryDetailList.get(i).getCostPrice()); } row.add(commodityInventoryDetailList.get(i).getSum());//总金额 row.add(commodityInventoryDetailList.get(i).getRemark());//备注 row.add(commodityInventoryDetailList.get(i).getUpdateBy());//操作人 row.add(commodityInventoryDetailList.get(i).getUpdateTime());//操作时间 if(commodityInventoryDetailList.get(i).getStatus()==0){//状态 row.add(""); }else { row.add("已审核"); } rows.add(i,row); } data.setRows(rows); try { ExcelUtils.exportExcel(data, response); } catch (Exception e) { e.printStackTrace(); } }
-
导入Excel表格数据到数据库和导出数据到Excel表格
2019-05-16 20:03:00开发工具与关键技术:Vs C# 作者:张铭标 撰写时间:2019年 5月 16日 一.导入Excel表格数据到数据库: ...导出数据到Excel 表格: 用户点击了确定,先询问用户是否要导出当前表格中的数据,然后声明一些值进行...开发工具与关键技术:Vs C#
作者:张铭标
撰写时间:2019年 5月 16日
一.导入Excel表格数据到数据库:
先绑定点击事件到方法中,然后打开加载层,接着请求一下要导入的数据的路径,接着关闭一下加载层,再关闭模态框,最后直接输出一下提示就好顺便刷新一下表格这样的话导入就写完了
二.导出数据到Excel 表格:
用户点击了确定,先询问用户是否要导出当前表格中的数据,然后声明一些值进行多条件查询,用if进行判断值不为空或者undefined,最后打开窗口把参数传到控制器那边就可以了.控制器部分主要代码就是创建Excel工作簿:HSSFWorkbook EB=new HSSFWorkbook();和创建工作表:NPOI.SS.UserModel.ISheet ST = EB.CreateSheet("");还有一个创建表头行NPOI.SS.UserModel.IRow row = ST.CreateRow(0); 这样基本上就完成了数据的导出
-
Java导出数据到Excel表格
2020-02-14 21:18:52Java导出数据到Excel表格 今天是2020年2月14日,首先祝各位情人节快乐 下面言归正传开始正文。 在后台管理系统中经常会有导出数据到Excel表格的功能需求,这个功能是难以规避的,而且这也是一个非常使用且人性化的一...Java导出数据到Excel表格
今天是2020年2月14日,首先祝各位情人节快乐
下面言归正传开始正文。
在后台管理系统中经常会有导出数据到Excel表格的功能需求,这个功能是难以规避的,而且这也是一个非常使用且人性化的一个功能。下面就给大家分享一下我在项目中实现此功能的方式和方法。
我使用的是POI进行一个Excel的操作,POI组件是由Apache提供的组件包,主要是为我们的Java程序提供对于office文档的相关操作,废话不多说直接上代码。添加依赖(SpringBoot)
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.6</version> </dependency>
POI相关组件简介
HSSFWorkbook:Excel对象,相当于一个 .xls/.xlsx 文件
HSSFSheet:工作表对象,Excel文件包涵的sheet,一个对象代表一个表单
HSSFRow:表示表格中的行对象。
HSSFCell:表示表格中的单元格对象。
HSSFHeader:Excel文档Sheet的页眉。
HSSFFooter:Excel文档Sheet的页脚。
HSSFDataFormat:日期格式。
HSSFFont:字体对象。
HSSFCellStyle:单元格样式(对齐样式、边框等)
HSSFComment:批注(注释)。
HSSFPatriarch:和HSSFComment用于创建注释的位置。
HSSFColor:颜色对象。
HSSFDateUtil:日期辅助工具
HSSFPrintSetup:打印辅助工具
HSSFErrorConstants:错误信息表首先需要创建一个工具类
import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; /** * @Auther: ziye * @Date: 2020/2/14 * @Description: */ public class ExcelUtil { /** * 导出Excel * * @param sheetName sheet名称 * @param title 标题 * @param values 内容 * @param wb HSSFWorkbook对象 * @return */ public static HSSFWorkbook getHSSFWorkbook(String sheetName, String[] title, String[][] values, HSSFWorkbook wb) { // 第一步,创建一个HSSFWorkbook,对应一个Excel文件 if (wb == null) wb = new HSSFWorkbook(); // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = wb.createSheet(sheetName); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制 HSSFRow row = sheet.createRow(0); // 第四步,创建单元格,并设置值表头 设置表头居中 HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式 //声明列对象 HSSFCell cell = null; //创建标题 for (int i = 0; i < title.length; i++) { cell = row.createCell(i); cell.setCellValue(title[i]); cell.setCellStyle(style); } //创建内容 for (int i = 0; i < values.length; i++) { row = sheet.createRow(i + 1); for (int j = 0; j < values[i].length; j++) { //将内容按顺序赋给对应的列对象 row.createCell(j).setCellValue(values[i][j]); } } return wb; } }
工具类创建完成后就开始进行相关的调用
便于大家理解和查看代码,我就把调用过程直接写在了Controller层中
@ResponseBody @RequestMapping(value = "/exportExcel", method = RequestMethod.GET) public void exportExcel(HttpServletRequest request, HttpServletResponse response) throws Exception { SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");//设置日期格式 String year = df.format(new Date()); //为了方便大家理解,选择用获取数据表中的全部数据为例子 List<Leader> list = leaderService.getList(); //设置Excel表头 String[] title = {"ID", "领导姓名", "性别", "电子邮箱", "联系电话", "入职时间"}; //设置Excel文件名 String filename = "LeaderList_"+year+".xls"; //设置工作表名称 String sheetName = "sheet1"; //开始对从数据库中获取到的数据进行处理 String[][] content = new String[list.size()][6]; try { for (int i = 0; i < list.size(); i++) { content[i][0] = String.valueOf(list.get(i).getLeaderId()); content[i][1] = list.get(i).getName(); if(list.get(i).getSex() == 0){ content[i][2] = "女"; }else{ content[i][2] = "男"; } content[i][3] = list.get(i).getEmail(); content[i][4] = list.get(i).getPhone(); content[i][5] = String.valueOf(list.get(i).getIntime()); } } catch (Exception e) { e.printStackTrace(); } HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, title, content, null); try { // 响应到客户端 this.setResponseHeader(response, filename); OutputStream os = response.getOutputStream(); wb.write(os); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 向客户端发送响应流方法 * * @param response * @param fileName */ public void setResponseHeader(HttpServletResponse response, String fileName) { try { try { fileName = new String(fileName.getBytes(), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); } catch (Exception ex) { ex.printStackTrace(); } }
大家需要注意的一点就是,我这里使用的是GET方式提交,是因为我需要浏览器发送请求时即下载Excel,所以就不能用ajax进行传输
在页面上的调用方式
便于理解,我选择了最简单直观的调用方式(JS调用Controller方法)
<script> function exportExcel(){ let url = "/leader/exportExcel"; location.href = url; } </script>
结语
以上代码即是本人在实现此功能时所选择的实现方式
如果文章中有错误,欢迎大家留言指正;若您有更好、更简便的方式来实现此功能,欢迎大家在留言区留下您的建议。在这个特殊的情人节,愿:
你在被打击时,记起你的珍贵,抵抗恶意;
你在迷茫时,坚信你的珍贵,抛开蜚语;
爱你所爱 行你所行 听从你心 无问东西 -
从浏览器里面的数据导出数据到Excel表格
2019-05-05 20:48:30从浏览器里面的数据导出数据到Excel表格 开发工具与关键技术:Visual Studio 2015 作者:李仁海 撰写时间:2019.5.5 一、 导出数据到Excel表格 1、 public、加上程序集的名称ActionResult、之后路径... -
从数据库导出数据到Excel表格
2019-05-07 19:11:37要导出数据到Excel表格就先要把数据查询出来。 由于要方便后面的导出数据到Excel表格我把我自己写的查询截图出来 这里查询出来数据后就是筛选数据这里我就不写筛选数据的代码了,接下来就直接创建工作簿来接收数据... -
java导出数据到excel表格
2018-12-22 16:22:44下面是java导出数据到excel表格的具体代码,可以直接运行测试,根据自己的实际数据格式做修改 需要用到org.apache.poi的jar包,可以直接在网上下载,下载地址:... -
使用Apache POI导出数据到Excel表格
2020-04-26 17:52:51引言:什么是Apache POI?...简单点来说就是可以利用POI来进行数据的导入导出操作,本篇文章主要说明使用Apache POI导出数据到Excel表格。 1.使用Apache POI需要导入相关的依赖,在pom.xml文件中... -
java生成excel单元格_Java导出数据到excel表格
2021-02-27 20:17:33如果使用POI从Java中导出数据到excel表格只需要非常简单的步骤:创建一个workbook我的理解就是新建一个工作空间,即excel文件。创建一个sheet这个就是excel中的sheet创建一个row顾名思义,一个新的列创建一个cell每... -
使用NPOI导出数据到Excel表格的思路
2019-04-08 08:47:46使用NPOI导出数据到Excel表格的思路 开发工具与关键技术:Visual Studio 作者:胡宁淇 撰写时间:2019年4月6日 引用我自己敲的代码 第一步首先要把NPOI插件引用到自己的项目里面 第二步把要导入的数据查询... -
Java使用POI结合VUE实现导出数据到Excel表格
2020-06-13 16:59:04Java结合VUE实现导出数据到Excel表格,同时解决了单元格合并,导致单元格样式不生效问题 页面预览: 1.前台展示页面 2.导出的Excel 3.Java后台中传入的参数 代码实现 1.VUE代码: <template> <el-... -
导出 mysql excel_Navicat for MySQL 如何导出数据到 Excel 表格
2021-01-18 19:49:27Navicat for MySQL 支持导出的数据表格式比较...当设计完一个表后,如果有上百条或更多的原始数据需要导入到 Navicat for MySQL 数据库时,我们就可以先把设计好的数据导出到 Excel 表格中,然后按照格式去填充数据... -
【导出】Java实现从指定JSP页面导出数据到Excel表格
2018-12-17 20:16:51利用Java+JavaScript从页面导出数据到Excel表格 先来几张效果图,再贴代码, 第一步点击导出按钮 第二步点击确认 最后点击左下角表格打开Excel,查看导出数据是否完整 具体实现如下 JavaScript... -
Java使用poi导出数据到excel表格并下载1
2018-12-25 14:58:54Java使用poi导出数据到excel表格并下载1 String path = "ExportToExcel"; //自己放常量的地方声明变量 // 取得互联网程序的绝对地址 String realPath = request.getSession().getServletContext... -
如何导出数据到Excel表格
2019-05-08 20:14:26开发工具与关键技术:Visual Studio、MVC ...把数据导出来的方法有很多,我就说一下如何把数据从MVC中导出到Excel表格的。 首先我们要点击导出的按钮,然后弹出一个提示框,询问你是否导出你所要导出的数据,确定...