您的位置:首页 > 大数据 > 人工智能

JXL(针对Excel操作)系列之一:最简单的导出操作(main

2009-01-08 17:51 381 查看
呵呵,写了个最简单的,上传上来,也当自己备份吧,

package com.lip.main;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.OutputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.Vector;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.Workbook;

public class ExportExcel {

/**

* 这里主要是实现以main函数形式的导出操作.这里是实际从数据库当中导出数据,当然操作形式相当多.

* 这里主要来说说核心其实就是将数据写入到Excel当中,其中有一些修饰之类的就不加以累述了.比如头部,标题.字体,宽高...等等,

*

* 这个是一个可运行程序,实际运用也许不大,这里采用最简单的方式来说明它所用到的核心东西就够了.接着还会以WEB形式展示其上传下载功能.

*

* 一切没有封装,就是直接填充到Excel当中去.

*

* Author: Lip(lizg)

* Date : 2009-01-08

*

* 这里以从Oracle和MySQL的一个表当中导出数据为例子,来说明一下实际的操作.

*

* 再次声明,这里就是一些很简单的内容来说明.

*

* 首先是最简单的MySQL导出数据.(Oracle一样的)

*

*/

public static void main(String[] args) {

//(第一:)首先:导出数据,需要导出到一个你命名的文件里面,这里当然是Excel类型文件.所以这里就建立.

File excelFile = new File("c://测试.xls");//这里直接建立文件到目录下,

try{

excelFile.createNewFile();

}catch(Exception e){

//

}

//(第一步完成)这里就直接操作,没有用到文件流之类的,下次会用到.

//(第二:)要导出Excel,数据必不可少的,所以这里先来把数据取好吧,

try{

//成功取得数据.

Class.forName("com.mysql.jdbc.Driver").newInstance();

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:5885/excel","root","5885");

Statement stat = conn.createStatement();

ResultSet rest = stat.executeQuery("select * from test");

//System.out.println(rest);可以测试一下.

//(第二步完成)

/*

* (第三:)数据得到,然后就是填充,

*

* 这里直接将数据填充到表当中.

*

* 然后就是填充了,填充是一个过程,

*/

//建立导出到这个文件.

WritableWorkbook writBook = Workbook.createWorkbook(excelFile);

//这个其实就是让其填充到Excel的第一页,就是从0开始而已.因为一个Excel文件可以在下方翻页,可以有很多的页码.

//第一个参数就是你为某页设置的标题,第二个是第几页.这里标题和页码不要重复,不然会出现bug,以下只是说明,可以运行试试.

WritableSheet writShet = writBook.createSheet("第一页", 0);

WritableSheet writShet1 = writBook.createSheet("第二页", 1);

//这个就是实际的每一页的表格了,它就是实际的数据所在,它可以添加很多的数据然后填充到每一页当中.

/**

* 说明一下,这里的Label 其实就是按照参数设置来填充数据的,

* 它有一些参数设定.它有好几个参数,最主要的就是前面三个吧,

*

* 第一个是列,也就是第几列

* 第二个是行,也就是第几行

* 第三个就是填充到这个坐标的数据.

* 还有后面的参数,(字体什么的.)大家可以参考API

*/

Label label = null;

int i = 0;

while(rest.next()){

label = new Label(0,i,rest.getString(1));

writShet.addCell(label);

label = new Label(0,i,rest.getString(1));

writShet1.addCell(label);

label = new Label(1,i,rest.getString(2));

writShet.addCell(label);

label = new Label(1,i,rest.getString(2));

writShet1.addCell(label);

i++;

}

writBook.write();

writBook.close();

ress.close();
stat.close();
conn.close();

//(第三步完成)

}catch(Exception e){

System.out.println(e.getMessage());

}

}

}

/*

数据建立也相当简单.就是一个表,两个字段,随便建立几个数据.以便说明:

create database excel;

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`Id` int(11) NOT NULL auto_increment,

`name` varchar(20) default NULL,

PRIMARY KEY (`Id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

INSERT INTO `test` VALUES (1,'第一个');

INSERT INTO `test` VALUES (2,'第二个');

INSERT INTO `test` VALUES (3,'第三个');

INSERT INTO `test` VALUES (4,'第四个');

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: