eclipse sql server 导出excel文件
Jxl.jar
访问Excel的Jar包
注意:支持以.xls结尾的Excel文件,可能不支持.xlsx结尾的
下载地址:
程序所需要得包:

程序代码:
package partice;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import javax.swing.JOptionPane;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class export {
static ResultSet rs = null;
static ResultSetMetaData rsData = null;
static int sheetIndex = 0; // 计数器,起始为0
static int perPageSize = 60000;// excel2003每张表最大为65536行
static String fileName = "调剂学生信息.xls";// 新建的表格名称
static String URL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=studentdatabase";// 数据库IP地址
static String DriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static String username = "sa";// 用户
static String password = "19940503";// 密码
public void main(String[] args) throws Exception {
connectOracle();
}
public void connectOracle() throws SQLException, ClassNotFoundException {
Connection conn = null;
Class.forName(DriverName);
long begintime = System.currentTimeMillis();
try {
System.out.println("数据库连接开始:" + new Date(System.currentTimeMillis()));
conn = DriverManager.getConnection(URL, username, password);
Statement state = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
String sql = "select * from register";
rs = state.executeQuery(sql);
rsData = rs.getMetaData();// 获得所需要的rs信息
rs.last();
int size = rs.getRow();// 列数
rs.beforeFirst();
int sheetsize = size / perPageSize + 1;// sheetsize是sheet的总页数
writeexcel(rs);// 新建一个excel,并且写入第一张表,每次只能写一张表
for (int i = 1; i < sheetsize; i++) {
System.out.println(2);
updateexcel(rs);// 写入后面的后面的表
}
} catch (Exception e) {
System.out.println("数据库连接错误");
e.printStackTrace();
} finally {
conn.close();
System.out.println("数据库连接关闭!用时:"
+ (System.currentTimeMillis() - begintime) + "ms");
JOptionPane.showMessageDialog(null, "导出成功", "提示信息", JOptionPane.WARNING_MESSAGE);
}
}
static void writeexcel(ResultSet rs) throws IOException, Exception,
WriteException {
WritableWorkbook book = Workbook.createWorkbook(new File(fileName));
WritableSheet sheet = book.createSheet("第" + (sheetIndex + 1) + "页",
sheetIndex);
int i = 1;// 每一页设为第一行
while (rs.next()) {
for (int j = 1; j <= rsData.getColumnCount(); j++) {
Label label = new Label(j - 1, i, rs.getString(j) == null ? ""
: rs.getString(j).toString());
if (i == 1) {// 标题只加载第一次
Label titleLabel = new Label(j - 1, 0, rsData
.getColumnName(j));
sheet.addCell(titleLabel);
}
sheet.addCell(label);
}
i++;
if (i > perPageSize) {
break;
}
}
sheetIndex++;
book.write();
book.close();
}
static void updateexcel(ResultSet rs) throws BiffException, IOException,
RowsExceededException, WriteException, SQLException {
Workbook wb = Workbook.getWorkbook(new File(fileName));
WritableWorkbook book = Workbook.createWorkbook(new File(fileName), wb);
WritableSheet sheet = book.createSheet("第" + (sheetIndex + 1) + "页 ",
sheetIndex);
int i = 1;// 每一页设为第一行
while (rs.next()) {
for (int j = 1; j <= rsData.getColumnCount(); j++) {
Label label = new Label(j - 1, i, rs.getString(j) == null ? ""
: rs.getString(j).toString());
if (i == 1) {// 标题只加载第一次
Label titleLabel = new Label(j - 1, 0, rsData
.getColumnName(j));
sheet.addCell(titleLabel);
}
sheet.addCell(label);
}
i++;
if (i > perPageSize) {
break;
}
}
sheetIndex++;
book.write();
book.close();
}
}
对应数据库



java实现数据库导出ECXL表格:ttps://blog.csdn.net/captian_900331/article/details/49689199
eclipse sql server 导出excel文件的更多相关文章
- SQL Server 导出Excel有换行的解决方法
参考地址::https://vcoo.cc/blog/1234/ 从 SQL Server 查询结果中复制结果数据粘贴到 Excel 中存在这么个问题:如果字段内容中有换行符,那么粘贴到 Excel ...
- SQL Server导入Excel文件报错
目录 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 原因 解决方法 该值违反了该列的完整性约束 空行 没有设置为允许为NULL 我以前也导入过数据,也没报错,今天再次导入数据的时候,发现了两 ...
- SQL SERVER导入EXCEL文件:无法创建链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OLEDB.12.0" 的实例。
[方法一] --开启导入功能 exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'A ...
- SQL SERVER导入EXCEL文件:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
1.安装相关组件 2.程序生成属性32位改为64位
- 如何从sql server导出到csv文件
如何从sql server导出到csv文件,具体代码如下: private static void WriteHeader(SqlDataReader reader, TextWriter outpu ...
- sql server 导出的datetime结果 CAST(0x00009E0E0095524F AS DateTime) 如何向mysql,oracle等数据库进行转换
1. 处理 sql server 导出的 datetime 类型的字段 在进行sql server向mysql等其他数据进行迁移数据时,会发现使用sql server导出的datetime类型的结果是 ...
- SQL SERVER导出特殊格式的平面文件
有时候我们需要将SQL SERVER的数据一次性导入到ORACLE中,对于数据量大的表.我一般习惯先从SQL SERVER导出特殊格式的平面文件(CSV或TXT),然后用SQL*Loader装载数据到 ...
- PHP从数据库导出EXCEL文件
参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-ty ...
- PHP导出excel文件
现在教教你如何导入excel文件: 在我的文件储存里面有一个com文件夹的,将其解压放在ThinkPHP/Library/文件夹里面,然后就是写控制器啦!去调用这个插件: <?php names ...
随机推荐
- webpack4搭建vue多页面环境
总结一下webpack4配置vue开发环境,本文不具体介绍webpack的基本概念和用途,如有不了解的请参见https://www.webpackjs.com/concepts/官网 一.webpac ...
- MySQL 8 服务器组件
MySQL 服务器包含了一个基于组件的架构,用于扩展服务器功能.服务器和其他组件可以使用组件提供的服务.(在使用服务方面,服务器也是一个组件,等同于其他组件).组件之间交互仅通过他们各自提供的服务. ...
- ASP.NET MVC自定义Numberic属性的验证信息
最近在使用MVC4时碰到一个Model验证的问题:整型属性输入非整型字符串时,错误信息总是“字段 XXX 必须是一个数字”,我总觉得这句话读起来很别扭,所以就萌生了要改变这个默认错误提示信息的念头,但 ...
- JS中BOM操作知识点
JS BOM window对象 全局变量和全局方法都归在window上 alert-comfirm-prompt 让alert .confirm等弹出框上的提示文字实现换行:\n // confirm ...
- Mac中如何搭建Vue项目并利用VSCode开发
(一)部署Node环境 (1)下载适合Mac环境的Node包,点击进入下载页面 (2)安装Node环境:找到下载好的Node包,这里是node-v12.14.1.pkg,我们双击它,会进入Node.j ...
- Java第五节课总结
继承是对现实生活中的“分类”概念的一种模拟. 通过surper调用的基类构造方法,必须是子类构造方法中的第一个语句. 构造函数(constructor)是一种特殊的方法 .主要用来在创建对象时初始化对 ...
- IDEA 解决Number objects are compared using '==', not 'equals()' 警告
当代码被工具标黄色高亮时,代表需要优化或重构了 == 是值相等.对于Integer这样的数据类型而言,意义是两个Integer对象的内存地址相等.也就是说如果你有两个不同的Integer的对象, 如果 ...
- Spring里面AOP的和IOC的理解
1.Spring里面AOP的理解:https://www.cnblogs.com/hongwz/p/5764917.html例如日志功能.日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心 ...
- 字符串hash补充(模数情况下)
字符串模板,在模数意义下的,比较好用 #include<stdio.h> typedef long long LL; /*[字符串哈希算法] 字符串哈希算法的提出,涉及到如何快速地求两个字 ...
- 9Front fqa 目录
9Front System 9Front 常见问答(fqa) 注意! 9front dash1 手册是由 9front 用户编写的. 这些用户有能做的,有不能写的:那些不能写的写了这本电子杂志.-- ...