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文件的更多相关文章

  1. SQL Server 导出Excel有换行的解决方法

    参考地址::https://vcoo.cc/blog/1234/ 从 SQL Server 查询结果中复制结果数据粘贴到 Excel 中存在这么个问题:如果字段内容中有换行符,那么粘贴到 Excel ...

  2. SQL Server导入Excel文件报错

    目录 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 原因 解决方法 该值违反了该列的完整性约束 空行 没有设置为允许为NULL 我以前也导入过数据,也没报错,今天再次导入数据的时候,发现了两 ...

  3. SQL SERVER导入EXCEL文件:无法创建链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OLEDB.12.0" 的实例。

    [方法一] --开启导入功能    exec sp_configure 'show advanced options',1    reconfigure    exec sp_configure 'A ...

  4. SQL SERVER导入EXCEL文件:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    1.安装相关组件  2.程序生成属性32位改为64位

  5. 如何从sql server导出到csv文件

    如何从sql server导出到csv文件,具体代码如下: private static void WriteHeader(SqlDataReader reader, TextWriter outpu ...

  6. sql server 导出的datetime结果 CAST(0x00009E0E0095524F AS DateTime) 如何向mysql,oracle等数据库进行转换

    1. 处理 sql server 导出的 datetime 类型的字段 在进行sql server向mysql等其他数据进行迁移数据时,会发现使用sql server导出的datetime类型的结果是 ...

  7. SQL SERVER导出特殊格式的平面文件

    有时候我们需要将SQL SERVER的数据一次性导入到ORACLE中,对于数据量大的表.我一般习惯先从SQL SERVER导出特殊格式的平面文件(CSV或TXT),然后用SQL*Loader装载数据到 ...

  8. PHP从数据库导出EXCEL文件

    参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-ty ...

  9. PHP导出excel文件

    现在教教你如何导入excel文件: 在我的文件储存里面有一个com文件夹的,将其解压放在ThinkPHP/Library/文件夹里面,然后就是写控制器啦!去调用这个插件: <?php names ...

随机推荐

  1. C# sqlite 事务提交多个语句,提升插入速度

    private SQLiteConnection connection; private SQLiteCommand command; private SQLiteTransaction transa ...

  2. WebGL_0002:palycanvas 配置文件路径

    playcanvas 配置文件路径https://s3-eu-west-1.amazonaws.com/apps.playcanvas.com/wmSPTNhb/config.jsonsence 地址 ...

  3. 连接数据库的工具JdbcUtil

    public class JdbcUtil { private static String driver=null;//驱动 private static String url=null;//连接地址 ...

  4. IntelliJ IDEA搭建一个简单的springboot项目

    一.IDEA 安装包 百度网盘链接:https://pan.baidu.com/s/1MYgZaBVWXgy64KxnoeJSyg 提取码:7dh2 IDEA注册码获取:http://idea.lan ...

  5. 简单实现KNN(处理连续型数据)

    import numpy as np import matplotlib.pyplot as plt import time import math import collections raw_da ...

  6. 真·从零开始的Ubuntu+Apache+MySQL+PHP+phpstorm+xdebug下的debug环境搭建(纯小白向)

    费了好几天劲,终于把Linux下的开发环境如何设置搞的有点明白了,在此写篇博客庆祝一下,让大家以后少踩坑(缓慢更新中) 关键词 win10双系统装Ubuntu 下载U盘烧录工具 下载UbuntuLTS ...

  7. FLUSH+RELOAD技术

    FLUSH+RELOAD技术是PRIME+PROBE技术的变体,攻击间谍进程和目标进程的共享页.在共享页中,间谍进程可以确保一个特定的内存的映射从整个cache的层级中剔除.间谍进程就是使用这一点去监 ...

  8. BZOJ3172&&lg3966 TJOI单词(广义后缀自动机)

    BZOJ3172&&lg3966 TJOI单词(广义后缀自动机) 题面 自己找去 HINT 给出多个文本串,让你查找每个文本串一共出现了多少次,广义后缀自动机建出parent tree ...

  9. spring boot 文件上传工具类(bug 已修改)

    以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...

  10. java读取解析application.yml

    java读取解析application.yml 不用依赖spring容器,可单独使用. bug已修改... 第一步.首先要2个jar <!-- properties和yaml格式化 --> ...