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. MySQL char与varchar 的区别

    一.差异 1.占用存储空间上 char 初始化时占固定空间,varchar依据插入内容大小使用空间. 2.char最大字符长度255个(约0.1KB),varchar则是65535(约192KB). ...

  2. Android_AsyncTask异步类

    ·AsyncTask是一个轻量级的异步抽象类 ·Android程序刚启动时,会同时启动一个像一个的主线程,这个主线程主要负责处理与UI有关的事件,有时也被称为UI线程,Android app中必须遵循 ...

  3. Qt Gui 第七章

    1.processEvents 该函数用来处理窗口的各种事件,重绘和event ; row < RowCount; ++row) { ; column < ColumnCount; ++c ...

  4. Linux命令——细节

    echo -n 不换行输出 echo -e 处理特殊字符 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: \a 发出警告声: \b 删除前一个字符: \c 最后不加上换行符号:  ...

  5. vue 查看dist文件里的结构

    场景:优化打包后的代码,提高性能. 1.方式一:report-json. 1.1 package.json文件里加入以下命令, "report": "vue-cli-se ...

  6. jQuery---第一部分复习

    jquery: 简单.粗暴    jq和js的关系   js是什么? js是一门编程语言   jq仅仅是基于js的一个库,jq可理解为就是开发js的一个工具.          概念   1. 为什么 ...

  7. 18新生赛 4. Deal

    题目描述:双十一过后,syx发现自己快要吃土了.但是机智的他决定理财.他预测了将来n天的比特币行情,发现有涨有跌,有跌有涨.手里的钱只要在比特币的浪潮中经历沉浮,低价收入,高价卖出,就可以轻易割到别人 ...

  8. 原生JS数组操作的6个函数 arr.forEach arr.map arr.filter arr.some arr.every arr.findIndex

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 在myEclipse中根据图表自动生成Hibernate文件

    1.新建一个Java Project项目,在scr中创建两个包:Com.hibernate.po 和com.hibernate.dao 2. 3.点击ok 4. 5.选中MyElipse Derby, ...

  10. npm 模块开发调试技巧之最优方案npm link

    在我们平时写项目中,当我们需要新开发或修改的 npm 模块时,如何在本地项目中调试呢? 本地项目路径:G:\npm\project 开发的模块路径:G:\npm\model 方法一: 在cmd命令窗口 ...