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

来源:互联网 发布:图标设计软件 编辑:程序博客网 时间:2024/06/11 20:53

              呵呵,写了个最简单的,上传上来,也当自己备份吧,

 

  1. package com.lip.main;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.OutputStream;
  6. import java.sql.Connection;
  7. import java.sql.DriverManager;
  8. import java.sql.ResultSet;
  9. import java.sql.Statement;
  10. import java.util.Vector;
  11. import jxl.write.Label;
  12. import jxl.write.WritableSheet;
  13. import jxl.write.WritableWorkbook;
  14. import jxl.Workbook;
  15. public class ExportExcel {
  16.     /**
  17.      * 这里主要是实现以main函数形式的导出操作.这里是实际从数据库当中导出数据,当然操作形式相当多.
  18.      * 这里主要来说说核心其实就是将数据写入到Excel当中,其中有一些修饰之类的就不加以累述了.比如头部,标题.字体,宽高...等等,
  19.      * 
  20.      * 这个是一个可运行程序,实际运用也许不大,这里采用最简单的方式来说明它所用到的核心东西就够了.接着还会以WEB形式展示其上传下载功能.
  21.      * 
  22.      * 一切没有封装,就是直接填充到Excel当中去.
  23.      * 
  24.      * Author: Lip(lizg)
  25.      * Date : 2009-01-08
  26.      * 
  27.      * 这里以从Oracle和MySQL的一个表当中导出数据为例子,来说明一下实际的操作.
  28.      * 
  29.      * 再次声明,这里就是一些很简单的内容来说明.
  30.      * 
  31.      * 首先是最简单的MySQL导出数据.(Oracle一样的)
  32.      * 
  33.      */
  34.     public static void main(String[] args) {
  35.         //(第一:)首先:导出数据,需要导出到一个你命名的文件里面,这里当然是Excel类型文件.所以这里就建立.
  36.         File excelFile = new File("c://测试.xls");//这里直接建立文件到目录下,
  37.         try{
  38.             excelFile.createNewFile();
  39.         }catch(Exception e){
  40.             //
  41.         }
  42.         //(第一步完成)这里就直接操作,没有用到文件流之类的,下次会用到.
  43.         
  44.         
  45.         //(第二:)要导出Excel,数据必不可少的,所以这里先来把数据取好吧,
  46.         try{
  47.             //成功取得数据.
  48.             Class.forName("com.mysql.jdbc.Driver").newInstance();
  49.             Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:5885/excel","root","5885");
  50.             Statement  stat = conn.createStatement();
  51.             ResultSet  rest = stat.executeQuery("select * from test");
  52.             //System.out.println(rest);可以测试一下.
  53.             //(第二步完成)
  54.             
  55.             
  56.             /*
  57.              * (第三:)数据得到,然后就是填充,
  58.              * 
  59.              * 这里直接将数据填充到表当中.
  60.              * 
  61.              * 然后就是填充了,填充是一个过程,
  62.              */
  63.             //建立导出到这个文件.
  64.             WritableWorkbook writBook = Workbook.createWorkbook(excelFile);
  65.             //这个其实就是让其填充到Excel的第一页,就是从0开始而已.因为一个Excel文件可以在下方翻页,可以有很多的页码.
  66.             //第一个参数就是你为某页设置的标题,第二个是第几页.这里标题和页码不要重复,不然会出现bug,以下只是说明,可以运行试试.
  67.             WritableSheet    writShet = writBook.createSheet("第一页", 0);
  68.             WritableSheet    writShet1 = writBook.createSheet("第二页", 1);
  69.             //这个就是实际的每一页的表格了,它就是实际的数据所在,它可以添加很多的数据然后填充到每一页当中.
  70.             /**
  71.              * 说明一下,这里的Label 其实就是按照参数设置来填充数据的,
  72.              * 它有一些参数设定.它有好几个参数,最主要的就是前面三个吧,
  73.              * 
  74.              * 第一个是列,也就是第几列
  75.              * 第二个是行,也就是第几行
  76.              * 第三个就是填充到这个坐标的数据.
  77.              * 还有后面的参数,(字体什么的.)大家可以参考API
  78.              */
  79.             Label            label    = null;
  80.             int i = 0;
  81.             while(rest.next()){
  82.                 label = new Label(0,i,rest.getString(1));
  83.                 writShet.addCell(label);
  84.                 label = new Label(0,i,rest.getString(1));
  85.                 writShet1.addCell(label);
  86.                 label = new Label(1,i,rest.getString(2));
  87.                 writShet.addCell(label);
  88.                 label = new Label(1,i,rest.getString(2));
  89.                 writShet1.addCell(label);
  90.                 i++;
  91.             }
  92.             writBook.write();
  93.             writBook.close();
  94.             ress.close();
                stat.close();
                conn.close();
  95.             //(第三步完成)
  96.         }catch(Exception e){
  97.             System.out.println(e.getMessage());
  98.         }
  99.     }
  100. }
  101. /*
  102.   数据建立也相当简单.就是一个表,两个字段,随便建立几个数据.以便说明:
  103. create database excel;
  104.   
  105. DROP TABLE IF EXISTS `test`;
  106. CREATE TABLE `test` (
  107.   `Id` int(11) NOT NULL auto_increment,
  108.   `name` varchar(20) default NULL,
  109.   PRIMARY KEY  (`Id`)
  110. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
  111. INSERT INTO `test` VALUES (1,'第一个');
  112. INSERT INTO `test` VALUES (2,'第二个');
  113. INSERT INTO `test` VALUES (3,'第三个');
  114. INSERT INTO `test` VALUES (4,'第四个');
  115.  */
原创粉丝点击