jxl:将数据库中数据导入到excel(一)
2010-01-13 22:04:01| 分类: java资料 |字号 订阅 java
Java代码
mysql
- CREATE TABLE `books` (
- `book_id` int(11) NOT NULL auto_increment,
- `book_name` varchar(200) character set gb2312 default NULL,
- `book_author` varchar(100) character set gb2312 default NULL,
- `book_publish` varchar(100) character set gb2312 default NULL,
- `book_date` date default NULL,
- `book_isbn` varchar(20) default NULL,
- `book_page` int(11) default NULL,
- `book_price` decimal(10,2) default NULL,
- `book_content` varchar(100) character set gb2312 default NULL,
- PRIMARY KEY (`book_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=gbk ROW_FORMAT=COMPRESSED;
CREATE TABLE `books` ( `book_id` int(11) NOT NULL auto_increment, `book_name` varchar(200) character set gb2312 default NULL, `book_author` varchar(100) character set gb2312 default NULL, `book_publish` varchar(100) character set gb2312 default NULL, `book_date` date default NULL, `book_isbn` varchar(20) default NULL, `book_page` int(11) default NULL, `book_price` decimal(10,2) default NULL, `book_content` varchar(100) character set gb2312 default NULL, PRIMARY KEY (`book_id`)) ENGINE=InnoDB DEFAULT CHARSET=gbk ROW_FORMAT=COMPRESSED; sql
Java代码
数据库
- package jsl.test;
- import java.io.File;
-
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
-
-
- 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 : --
- *
- * 这里以从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:3306/test","root","root");
- Statement stat = conn.createStatement();
- ResultSet rest = stat.executeQuery("select * from books");
- //Systemoutprintln(rest);能够测试一下
- //(第二步完成)
-
-
- /*
- * (第三:)数据获得,而后就是填充,
- *
- * 这里直接将数据填充到表当中
- *
- * 而后就是填充了,填充是一个过程,
- */
- //创建导出到这个文件
- WritableWorkbook writBook = Workbook.createWorkbook(excelFile);
- //这个其实就是让其填充到Excel的第一页,就是从开始而已由于一个Excel文件能够在下方翻页,能够有不少的页码
- //第一个参数就是你为某页设置的标题,第二个是第几页这里标题和页码不要重复,否则会出现bug,如下只是说明,能够运行试试
- WritableSheet writShet = writBook.createSheet("第一页", 0);
-
- //这个就是实际的每一页的表格了,它就是实际的数据所在,它能够添加不少的数据而后填充到每一页当中
- /**
- * 说明一下,这里的Label 其实就是按照参数设置来填充数据的,
- * 它有一些参数设定它有好几个参数,最主要的就是前面三个吧,
- *
- * 第一个是列,也就是第几列
- * 第二个是行,也就是第几行
- * 第三个就是填充到这个坐标的数据
- * 还有后面的参数,(字体什么的)你们能够参考API
- */
- Label label = null;
- int i = 1;
- while(rest.next()){
- label=new Label(0,0,"id");
- writShet.addCell(label);
- label=new Label(1,0,"书名");
- writShet.addCell(label);
- label=new Label(2,0,"做者");
- writShet.addCell(label);
- label=new Label(3,0,"出版社");
- writShet.addCell(label);
- label=new Label(4,0,"出版日前");
- writShet.addCell(label);
- label=new Label(5,0,"isdn");
- writShet.addCell(label);
- label=new Label(6,0,"页数");
- writShet.addCell(label);
- label=new Label(7,0,"价格");
- writShet.addCell(label);
- label=new Label(8,0,"内容简介");
- writShet.addCell(label);
-
- label = new Label(0,i,rest.getString(1));
- writShet.addCell(label);
-
- label = new Label(1,i,rest.getString(2));
- writShet.addCell(label);
- label = new Label(2,i,rest.getString(3));
- writShet.addCell(label);
- label = new Label(3,i,rest.getString(4));
- writShet.addCell(label);
- label = new Label(4,i,rest.getString(5));
- writShet.addCell(label);
- label = new Label(5,i,rest.getString(6));
- writShet.addCell(label);
- label = new Label(6,i,rest.getString(7));
- writShet.addCell(label);
- label = new Label(7,i,rest.getString(8));
- writShet.addCell(label);
- label = new Label(8,i,rest.getString(9));
- writShet.addCell(label);
-
- i++;
- }
- writBook.write();
- writBook.close();
- rest.close();
- stat.close();
- conn.close();
- //(第三步完成)
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
- }