将数据库查询结果导出成Excel表格
使用Java代码,从数据库中获取结果集,将结果集导出成Excel表格形式。
从数据库中查询学生表所有数据,将其导出成Excel表格,点击查看学生表表结构 。
package com.test.test.test1;import com.test.test.db.StudentDb;
import com.test.test.entity.Student;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFCellUtil;
import org.apache.poi.ss.usermodel.*;import java.io.File;
import java.util.List;public class ExportExcelTest {private static final String OUT_PATH = "F:\\数据导出\\表格\\学生表";public static void main(String[] args) {try {String sql = "select * from student";// 从数据库中通过查询语句获取的结果集List<Student> lst = new StudentDb().getStudent(sql);String colName[] = {"学号", "姓名", "年龄", "性别", "地区", "专业", "班级", "名族"};// 创建工作簿对象HSSFWorkbook workbook = new HSSFWorkbook();// 创建sheet对象HSSFSheet sheet = workbook.createSheet();// 创建第1行HSSFRow row0 = sheet.createRow(0);// 设置行高row0.setHeightInPoints((short) 24);// 设置列宽
// sheet.setColumnWidth(0,20*256);// 创建字体对象HSSFFont font0 = workbook.createFont();// 设置字体font0.setFontName("宋体");// 设置字体是否加粗font0.setBold(true);// 设置字体颜色font0.setColor(Font.COLOR_RED);// 设置字体高度font0.setFontHeightInPoints((short) 14);// 创建单元格样式HSSFCellStyle cellStyle0 = workbook.createCellStyle();// 设置水平方向上的文本对齐方式cellStyle0.setAlignment(HorizontalAlignment.CENTER);// 设置竖直方向上的文本对齐方式cellStyle0.setVerticalAlignment(VerticalAlignment.CENTER);// 设置单元格顶部边框使用的边框类型cellStyle0.setBorderTop(BorderStyle.THIN);// 设置单元格底部边框使用的边框类型cellStyle0.setBorderBottom(BorderStyle.THIN);// 设置单元格左边框使用的边框类型cellStyle0.setBorderLeft(BorderStyle.THIN);// 设置单元格右边框使用的边框类型cellStyle0.setBorderRight(BorderStyle.THIN);// 设置此样式的字体cellStyle0.setFont(font0);// 设置单元格文本是否换行cellStyle0.setWrapText(false);// 设置单元格前景填充颜色 【注意:确保前景色设置在背景色之前。】cellStyle0.setFillForegroundColor(IndexedColors.YELLOW.getIndex());// 设置单元格背景填充颜色cellStyle0.setFillBackgroundColor(IndexedColors.BLACK.getIndex());// 设置一个充满了前景色的单元格.cellStyle0.setFillPattern(FillPatternType.SOLID_FOREGROUND);HSSFCellStyle cellStyle1 = workbook.createCellStyle();cellStyle1.setVerticalAlignment(VerticalAlignment.CENTER);for (int cell0i = 0; cell0i < colName.length; cell0i++) {HSSFCellUtil.createCell(row0, cell0i, colName[cell0i], cellStyle0);}for (int j = 0; j < lst.size(); j++) {Student stu = lst.get(j);// 为每一条记录创建一个行对象HSSFRow row1 = sheet.createRow(j + 1);row1.setHeightInPoints(24);row1.setRowStyle(cellStyle1);HSSFCell cell0 = row1.createCell(0);cell0.setCellValue(stu.getSid().toString());cell0.setCellStyle(cellStyle1);HSSFCell cell1 = row1.createCell(1);cell1.setCellValue(stu.getSname());cell1.setCellStyle(cellStyle1);HSSFCell cell2 = row1.createCell(2);cell2.setCellValue(stu.getSage().toString());HSSFCell cell3 = row1.createCell(3);cell3.setCellValue(stu.getSsex());HSSFCell cell4 = row1.createCell(4);cell4.setCellValue(stu.getSnativeplace());HSSFCell cell5 = row1.createCell(5);cell5.setCellValue(stu.getSmajor());HSSFCell cell6 = row1.createCell(6);cell6.setCellValue(stu.getSclass());HSSFCell cell7 = row1.createCell(7);cell7.setCellValue(stu.getSnative());}File file = new File(OUT_PATH);if (file.exists()) {System.out.println("文件的输出路径已存在 : " + OUT_PATH);} else {file.mkdirs();// 如果文件目录不存在,则逐级创建System.out.println("文件的输出路径为 : " + OUT_PATH);}String fileName = "A1";String fileSuffix = ".xls";workbook.write(new File(OUT_PATH, fileName + fileSuffix));} catch (Exception e) {System.out.println(e);} finally {try {// 打开资源管理器到指定文件夹Runtime.getRuntime().exec("cmd /c start explorer " + ExportExcelTest.OUT_PATH);} catch (Exception e) {System.out.println(e);}}}
}
程序运行所需jar包下载:https://pan.baidu.com/s/1x6yAAc-g0lKdYXydfBVasA
提取码:3s78
—— END ——
相关文章:

【Java_基础】Java中Native关键字的作用
本篇博文转载与:Java中Native关键字的作用转载于:https://www.cnblogs.com/leiblog/p/10529056.html

在SQL Server 2000 和SQL Server 2005中导出表结构
SQL Server 2000 SELECT 表名 case when a.colorder1 then d.name else end, 表说明 case when a.colorder1 then isnull(f.value,) else end, 字段名 a.name, 主键 case when exists(SELECT 1 FROM sysobjects where xtypePK and p…

百度、谷歌理念对对碰
尽管百度和谷歌哪个更好用是用户自己说了算,但它们对搜索引擎的理解和理念到底有多少异同?它们将带给用户一个怎样的搜索未来? 为了更好地看清这些问题,《第一财经日报》分别向两公司提出了如下问题,且听它们的回答.1.搜索结果提供得尽可能多,是否会提升搜索质量? 并不是搜索…

2019 GDUT Rating Contest I : Problem H. Mixing Milk
题面: H. Mixing Milk Input file: standard inputOutput file: standard outputTime limit: 1 secondMemory limit: 256 megabytesFarming is competitive business – particularly milk production. Farmer John figures that if he doesn’t innovate in his mi…

托管调试助手报错
今天在调试程序时出现下面的异常: 其他信息: CLR 无法从COM 上下文0x1a0e50 转换为COM 上下文0x1a0fc0,这种状态已持续60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送Windows 消息的情况下处理一个运行时间非常长的操作。这种情况通常会影…

在文件中查找指定字符串
1. 在指定文件中查看指定字符串的行数 cat file_name | grep -n "String" 2. 在多个文件中查找指定字符串 在多个指定文件中查找指定字符串,命令如下:grep -l "String" file1 file2 file3-l : 列出包含特定字符串的文件名称&#…

FPGA研发之道(25)-管脚
管脚是FPGA重要的资源之一,FPGA的管脚分别包括,电源管脚,普通I/O,配置管脚,时钟专用输入管脚GCLK等。 本文引用地址:http://www.eepw.com.cn/article/266429.htm (1)电源管脚: 通常来说…

函数组:SDIFRUNTIME
函数组:SDIFRUNTIME;Interfaces for Type Runtime Objects,获得与表相关的数据信息。 包含函数模块: DDIF_FIELDINFO_GET:DD:读取表格字段信息的接口,获得一个表中全部或部分字段的信息。DDIF_F…

原来AGILE就是这么一回事啊!
仅仅还在几年前, XP 还被认为是方法异教, FDD 属于黑客程序方法。如今,敏捷俨然已经成为主流学说,敏捷方法成为人们学习和讨论的热点。敏捷方法的应用也更加广泛,以至于不少外包项目都要求采用某种敏 捷方法。它不仅仅…

开发微信小程序入门前
开发微信小程序入门前 百牛信息技术bainiu.ltd整理发布于博客园 2016年09月21日晚 微信发不了微信“小程序”的内测版,一时间整个互联网都炸了锅。个大新闻、论坛都在讨论这个事情。 作为互联网的一猿,我们怎能不紧跟时代的脚步。于是第二天上午也对微信…
hive的join
第一:在map端产生join mapJoin的主要意思就是,当链接的两个表是一个比较小的表和一个特别大的表的时候,我们把比较小的table直接放到内存中去,然后再对比较大的表格进行map操作。join就发生在map操作的时候,每当扫描一…

表格在线转换工具
表格在线转换工具 :https://tableconvert.com/ —— END ——

Android之View绘制流程源码分析
版权声明:本文出自汪磊的博客,转载请务必注明出处。 对于稍有自定义View经验的安卓开发者来说,onMeasure,onLayout,onDraw这三个方法都不会陌生,起码多少都有所接触吧。 在安卓中,一个View显示到…

看不懂的生成函数
不得不说这个东西真是妙啊 遭到了降智打击 生成函数又叫做母函数,主要用于解决一些组合数学问题 对于一个数列\(\{f_0,f_1,f_2,...,f_n\}\) 我们定义其生成函数为 \[F(x)f_0f_1xf_2x^2...f_nx^n\] 也就是 \[F(x)\sum_{i0}^nf_ix^i\] 也就是把数列的每一项当成了多项…

Coolite Toolkit学习笔记五:常用控件Menu和MenuPanel
Coolite Toolkit里的Menu控件和其他的.NET Web控件不一样,如果只是设计好了Menu或是通过程序初始化菜单项,菜单是不会呈现在界面上的,因为Coolite Toolkit规定Menu控件需要一个容器来做依托,而这个让Menu依托的控件就是MenuPanel&…

解决Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题
问题描述: 在cmd窗口使用 startup 命令启动Tomcat时,出现 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program 错误提示,如下如所示。 解…

在 Windows XP 中,无法使用 Windows 图片和传真查看器来查看图片
在 Microsoft Windows XP 中试图使用 Windows 图片和传真查看器查看图片时,图片未按预期显示。不过,当使用 Microsoft 画图工具查看图片时,图片会按预期显示。注意:Windows 资源管理器中可能不会显示某些图片缩略图。 发生这种现象…

前端常用正则表达式
前端常用的正则表达式 通过一些例子来学习正则表达式摘录,js正则函数match、exec、test、search、replace、split //去除首尾的‘/’input input.replace(/^\/*|\/*$/g,);javascript:; 、javascript:void(0)javascript:;.match(/^(javascript\s*\:|#)/);//["j…

BeanShell使用json.jar包处理Json数据
环境准备 ①Jmeter版本 ,JDK ②前置条件:将json.jar包置于..\lib\下, 如果还是报错,可以将该jar包添加到测试计划的Library中;否则会报:Typed variable declaration : Class: JSONObject not found in nam…

ES6 let和const 命令
ES6 let 和 const 命令1. 变量声明2. 变量提升问题3. 暂时性死区(TDZ)4. 块级作用域4.1 为什么需要块级作用域?4.2 ES6的块级作用域4.3 块级作用域和函数声明1. 变量声明 ES5 只有两种声明变量的方法:var命令和function命令。 ES6 新增了let命令和cons…

jQuery的Tab插件 Tabtastic
Tabtastic 是一个 jQuery 用来实现 Tab 窗体的插件,支持 Tab 嵌套以及动态内容加载。 下面是源文件下载:Tabtastic转载于:https://www.cnblogs.com/zhulidong/archive/2009/11/01/1593753.html

另类×××应用(三):不花一分钱,实现总部和多分支机构网络互联
[本文高清PDF版,在文章最后的附件提供下载,欢迎下载查阅] 【需求分析】(一)我们面临的问题。Freesky公司是一家在台湾和大陆都有很多分支机构的大饼油条连锁经销商,大陆总部在宁波,在宁波、温州、上…

[SDOI2017]天才黑客
传送门 Description 给出一张带边权的有向图,每个边都上都有一个字符串(给出对应Trie树上的节点),一条路径的长度为路径上的边权之和相邻两条边的字符串的lcp长度之和。 求从1到其它节点的最短路 Solution 预备部分 首先&#…

spine - unity3D(摘自博主softimagewht)
摘自:(博主 http://www.cnblogs.com/softimagewht/p/4149118.html) //skeletonDataSkeletonAnimation skeletonAnimation GetComponent<SkeletonAnimation>();Debug.Log(skeletonAnimation.name);//获取角色名Debug.Log(skeletonAnima…

Windows搜索工具 — Everything
everything 主页 :https://www.voidtools.com/zh-cn/ Everything:是 Windows 上一款搜索引擎,它能够基于文件名快速定文件和文件夹位置。 下载链接:https://www.voidtools.com/zh-cn/downloads/ —— END ——

向访客和爬虫显示不同的内容
为了提高网页的用户体验, 我们经常会做一些对搜索引擎不太友好的事情, 但某些情况下这并不是无法挽回的, 可以通过向自然人和搜索引擎机器人显示不同的内容来提供好的用户体验和 SEO. 听说本方法会触犯搜索引擎的一些操作原则, 有可能被被各搜索引擎处罚, 甚至删除网站. 所以我…

php取url后的文件名
<? $a"http://www.esyu.com.cn/images/aaa.gif"; echo substr($a,strrpos($a,"/")1); ?>

ES6 函数的扩展
ES6 函数的扩展1. 函数参数的默认值1.1 基本用法1.2 与解构赋值默认值结合使用1.3 参数默认值的位置1.4 函数的length属性2. rest参数2.1 rest参数2.2 arguments对象3. 函数的name属性4. 箭头函数1. 函数参数的默认值 1.1 基本用法 ES6之前,不能直接为函数的参数指…

Mycat分片规则详解
1、分片枚举 通过在配置文件中配置可能的枚举 id,自己配置分片,本规则适用于特定的场景,比如有些业务需要按照省份或区县来做保存,而全国省份区县固定的,这类业务使用本条规则,配置如下: <ta…

COGS 2769. mk去撸串
【题目描述】 今天 mk 去撸串 ,恰逢店里活动 ,如果吃一种串串超过记录, 可以 赠送 328, 所以 mk 想知道他吃的串串中吃的最多的种类是什么. 【输入格式】 第一行一个整数 1<n<50000; 然后有 n 行长度<100 的全部由小写字母组成的字符串;每个代表一种串串 【输出格式】…