返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java实现数据库中查询出的数据转存成excel表
  • 272
分享到

Java实现数据库中查询出的数据转存成excel表

java教程Java 2014-10-10 17:10:10 272人浏览 无得
摘要

看了很多文章乱糟糟的,自己写了个简单暴力的一眼就懂,没有那么多花里胡哨,表格样式可以通过代码定义,我嫌麻烦注意日期格式如果是以String类型的方式存到数据库的导出时要转换一次,直接导出格式不对因为导出excel表格用的是get方式传参,所

看了很多文章乱糟糟的,自己写了个简单暴力的一眼就懂,没有那么多花里胡哨,表格样式可以通过代码定义,我嫌麻烦

注意日期格式如果是以String类型的方式存到数据库的导出时要转换一次,直接导出格式不对

因为导出excel表格用的是get方式传参,所以如果需要对导出的数据用中文模糊查询,此时 用get传参会出现中文乱码

解决办法:

前端对需要传的中文参数进行一次编码 URLEncoder.encode(传参,“utf-8”);

后台需要再次解码:URLDecoder.decode(接收的参数,“utf-8”);

@RequestMapping(value = "outPutExcel", method = RequestMethod.GET)
@ResponseBody
public void outPutExcel( httpservletResponse response,String officeid,
String sonid,String nameorphone,String beginTime, String endTime,String option) {
		String nString = "";
		try {
			if (nameorphone != null && nameorphone != "") {
			//对前端传的参数解码
				 nString = URLDecoder.decode(nameorphone,"UTF-8");
			}
		} catch (UnsupportedEncodingException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		}
		response.reset();
		//设置浏览器下载的格式,并以当前时间的毫秒数命名
		response.setHeader("Content-Disposition", "attachment;Filename=" + System.currentTimeMillis() + ".xls");
		response.setContentType("application/msexcel");
		List list = purchaseService.selectPCSum(officeid, sonid, nString, beginTime, endTime, option);
		if (list == null && list.isEmpty()) {
			throw new NullPointerException("导出数据源为空");
		}
		HSSFWorkbook wb = new HSSFWorkbook();
		HSSFSheet sheet = wb.createSheet("sheet0");
		HSSFRow rows;
		HSSFCell cells;
		//设置表格第一行的列名
		// 获得表格第一行
		rows = sheet.createRow(0);
		// 根据需要给第一行每一列设置标题
		cells = rows.createCell(0);
		cells.setCellValue("客户姓名");

		cells = rows.createCell(1);
		cells.setCellValue("客户电话");

		cells = rows.createCell(2);
		cells.setCellValue("下单日期");

		cells = rows.createCell(3);
		cells.setCellValue("订单号");

		cells = rows.createCell(4);
		cells.setCellValue("所属分公司");

		cells = rows.createCell(5);
		cells.setCellValue("签单人");

		cells = rows.createCell(6);
		cells.setCellValue("品名");

		cells = rows.createCell(7);
		cells.setCellValue("型号");

		cells = rows.createCell(8);
		cells.setCellValue("颜色");

		cells = rows.createCell(9);
		cells.setCellValue("尺寸");

		cells = rows.createCell(10);
		cells.setCellValue("材质");

		cells = rows.createCell(11);
		cells.setCellValue("已采购数量(件)");
		
		cells = rows.createCell(12);
		cells.setCellValue("采购单价");
		
		cells = rows.createCell(13);
		cells.setCellValue("采购总价");
		
		cells = rows.createCell(14);
		cells.setCellValue("已出库(件)");
		//循环数据库查出来的数据集,对应每一列赋值
		//此处list.size()本不应该-1,因为同事在list集合里追加了另一条数据,导致报错故将其去除
		for (int i = 0; i < list.size()-1; i++) {
			rows = sheet.createRow(i + 1);
			
			cells = rows.createCell(0);
			cells.setCellValue(list.get(i).getCustomerName());

			cells = rows.createCell(1);
			cells.setCellValue(list.get(i).getPhone());
			//对日期格式进行转换
			cells = rows.createCell(2);
			String dateString  = list.get(i).getPlaceOrderTime().toString();
			Date date = null;
			try {
				date = new SimpleDateFORMat("EEE MMM dd HH:mm:ss Z yyyy", Locale.UK).parse(dateString);
			} catch (ParseException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			cells.setCellValue(sdf.format(date));

			cells = rows.createCell(3);
			cells.setCellValue(list.get(i).getOrderNumber());

			cells = rows.createCell(4);
			cells.setCellValue(list.get(i).getOfficeName());

			cells = rows.createCell(5);
			cells.setCellValue(list.get(i).getUsername());

			cells = rows.createCell(6);
			cells.setCellValue(list.get(i).getProductName());

			cells = rows.createCell(7);
			cells.setCellValue(list.get(i).getType());

			cells = rows.createCell(8);
			cells.setCellValue(list.get(i).getColor());

			cells = rows.createCell(9);
			cells.setCellValue(list.get(i).getSize());

			cells = rows.createCell(10);
			cells.setCellValue(list.get(i).getTexture());

			cells = rows.createCell(11);
			cells.setCellValue(list.get(i).getPurchasedNumber());

			cells = rows.createCell(12);
			cells.setCellValue(list.get(i).getPurchaseprice());
			
			cells = rows.createCell(13);
			cells.setCellValue(list.get(i).getPurchasePriceSun());
			
			cells = rows.createCell(14);
			cells.setCellValue(list.get(i).getOutlibraryNumber());
			
		}
		try {
			OutputStream oStream = response.getOutputStream();
			wb.write(oStream);
			oStream.flush();
		} catch (FileNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

--结束END--

本文标题: Java实现数据库中查询出的数据转存成excel表

本文链接: https://lsjlt.com/news/3439.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java实现数据库中查询出的数据转存成excel表
    看了很多文章乱糟糟的,自己写了个简单暴力的一眼就懂,没有那么多花里胡哨,表格样式可以通过代码定义,我嫌麻烦注意日期格式如果是以String类型的方式存到数据库的导出时要转换一次,直接导出格式不对因为导出excel表格用的是get方式传参,所...
    99+
    2014-10-10
    java教程 Java
  • 使用Java实现先查询缓存再查询数据库
    目录前言栗子思路分析原理介绍代码实现项目代码配置文件项目结构SpringBootQueryApplication.javaGoods.javaCacheSelector.j...
    99+
    2024-04-02
  • MySQL数据库查询中怎么实现多表查询
    今天小编给大家分享一下MySQL数据库查询中怎么实现多表查询的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、多表查询多表查...
    99+
    2023-06-29
  • Java中怎么操作Jxl实现导出数据生成Excel表格数据文件
    这篇文章主要讲解了“Java中怎么操作Jxl实现导出数据生成Excel表格数据文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中怎么操作Jxl实现...
    99+
    2024-04-02
  • navicat导出查询结果数据成excel的方法
    这篇文章主要介绍navicat导出查询结果数据成excel的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Navicat作为一个数据库管理软件,查询的结果很有参考意义,能够直接导...
    99+
    2024-04-02
  • MySQL实现查询数据库表记录数
    前言: mysql统计一个数据库里所有表的数据量,最近在做统计想查找一个数据库里基本所有的表数据量,数据量少的通过select count再加起来也是可以的,不过表的数据有点多,不可能一个一个地查。记得在Nav...
    99+
    2024-04-02
  • php怎么导出数据库的数据并转为excel表格
    在网站开发和数据处理中,数据库扮演着非常重要的角色,如何正确地导出数据库数据并转换为Excel表格则是我们常常需要解决的问题。在本文中,我们将介绍如何使用PHP语言轻松地实现这一操作。一、准备工作在开始我们的操作之前,需要安装PHP环境和P...
    99+
    2023-05-14
    php 数据库
  • php如何导出数据库的数据并转为excel表格
    本文小编为大家详细介绍“php如何导出数据库的数据并转为excel表格”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何导出数据库的数据并转为excel表格”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一...
    99+
    2023-07-05
  • java如何实现数据库查询
    Java可以使用JDBC(Java Database Connectivity)来实现数据库查询。具体步骤如下:1. 加载数据库驱动...
    99+
    2023-09-22
    java 数据库
  • php数据库查询到数据以表格的形式展现出来
    前言: 需求介绍: 将wordpress数据库的积分表其中的几个字段,获取出来制作成表格。 插件调查: 免费的版本都是一些静态的表格,其他收费的插件没有查看,打算通过短代码的形式开发 wordpres...
    99+
    2023-09-09
    数据库 php mysql
  • MySQL数据库中的多表查询
    这期内容当中小编将会给大家带来有关MySQL数据库中的多表查询,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。多表查询查询结果来自于多张表,即多表查询子查询:在SQL语句嵌套着查询语句,...
    99+
    2024-04-02
  • MYSQL 查询数据库中所有表中的数据量
    1. 查询数据库中所有表中的数据量 SELECT TABLE_NAME, TABLE_ROWS  FROM INFORMATION_SCHEMA.TABLES  WHERE TABLE_SCHEMA = 'your_data...
    99+
    2023-09-07
    mysql 数据库 sql
  • mysql数据库实现单表查询的方法
    这期内容当中小编将会给大家带来有关mysql数据库实现单表查询的方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。数据库单表查询的方法:1、select查询操作...
    99+
    2024-04-02
  • mysql数据库如何实现连表查询
    这篇文章将为大家详细讲解有关mysql数据库如何实现连表查询,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  1.首先介绍表连接分类(内连接,外连接,交叉连接)和连接方法...
    99+
    2024-04-02
  • 如何在Aurora数据库中实现跨表查询
    在Aurora数据库中实现跨表查询通常使用SQL语句来实现。以下是一个示例: SELECT table1.column1, ...
    99+
    2024-04-02
  • MySQL查询表中重复数据的实现
    目录一、查询重复记录方法1方法2:使用别名as方法3,不推荐,执行速度较慢二、总结一、查询重复记录 例:查询员工表里出现重复姓名的记录 思路:1、查看重复记录,首先要使用分组函数(group by),再用聚合函数中的计数...
    99+
    2023-08-25
    MySQL查询重复数据
  • java怎么实现数据库的查询功能
    要实现Java中数据库的查询功能,需要使用JDBC(Java Database Connectivity)来连接数据库并执行SQL查...
    99+
    2023-09-20
    java 数据库
  • mysql怎么查询数据库中的表
    要查询数据库中的表,可以使用以下语句: SHOW TABLES; 这条语句将显示数据库中的所有表的名称。您可以将其与其他查询语句一...
    99+
    2024-04-02
  • MySQL数据库出现慢查询的危害
    1、MySQL数据库当出现慢查询,是比较危险的,一旦有其他的DDL操作,可能会造成整个数据库的等待可以分以下几种情况:当表是MyiSAM表,对表有慢查询,不阻塞Select,对该表的其他DML,DDL操作都...
    99+
    2024-04-02
  • 利用java怎么从数据库中导出Excel表格
    这期内容当中小编将会给大家带来有关利用java怎么从数据库中导出Excel表格,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。基于maven jar包引入如下:  <dependency> ...
    99+
    2023-05-31
    java ava excel
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作