数据库中数据导入到Excel表

package com.neusoft.serviceImp;

import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
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.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.neusoft.daoImp.PeoplesDaoImp;
import com.neusoft.entity.Peoples;

import jxl.*;
import jxl.write.*;
import jxl.write.biff.RowsExceededException;

/**
 * 对Excel表进行操作
 *
 * @author ********
 *
 */
public class ExcelUtil {
 private static Log log = LogFactory.getLog(ExcelUtil.class);
 
 public boolean DB2Excel(String path) {
  boolean flag = false;
  WritableWorkbook workbook = null;
  WritableSheet sheet = null;
  Label label = null;

  // 创建Excel表
  try {
    workbook = Workbook.createWorkbook(new File(path));
   //workbook = Workbook.createWorkbook(os);
   // 创建Excel表中的sheet
   sheet = workbook.createSheet("First Sheet", 0);

   // 定义表中的数据
   // Label label = new Label(0, 0, "k k 中国人*");
   // Label label1 = new Label(0, 1, "A label record");
   // Label label3 = new Label(0, 2, "3.14159");
   // Number number = new Number(1, 1, 3.1459);

   // 向Excel中添加数据\
   System.out.println("1!!!!!");
   ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");
   System.out.println("1@@@@@@");
   PeoplesDaoImp dao=(PeoplesDaoImp) factory.getBean("peoplesDaoImp");
   System.out.println("1###########");
   List list = dao.find();
   System.out.println(list.size());
   int columnCount = list.size();

   // ResultSetMetaData rsmd = rs.getMetaData();
   // int columnCount = rsmd.getColumnCount();
   String colName = null;
   int row = 0;
   // 添加标题
   // for (int i = 0; i < columnCount; i++) {
   // colName = rsmd.getColumnName(i + 1);
   // label = new Label(i, row, colName);
   // // log.info("标题:"+i+"---"+row +"---"+ colName);
   // sheet.addCell(label);
   // }
   Label label1 = new Label(0, row, "群组名称");
   Label label2 = new Label(1, row, "姓名");
   Label label3 = new Label(2, row, "生日");
   Label label4 = new Label(3, row, "电话");
   Label label5 = new Label(4, row, "邮箱");
   Label label6 = new Label(5, row, "地址");
   sheet.addCell(label1);
   sheet.addCell(label2);
   sheet.addCell(label3);
   sheet.addCell(label4);
   sheet.addCell(label5);
   sheet.addCell(label6);

   row++;
   log.info("写入标题成功");
   
   for(int i=0;i<columnCount; i++){
    Peoples p = (Peoples)list.get(i);
    Label label11 = new Label(0, row,p.getGroupname() );
    Label label21 = new Label(1, row,p.getName() );
    Label label31 = new Label(2, row,p.getBirthday() );
    Label label41 = new Label(3, row,p.getTelephone() );
    Label label51 = new Label(4, row,p.getEmail() );
    Label label61 = new Label(5, row,p.getAddress() );
    sheet.addCell(label11);
    sheet.addCell(label21);
    sheet.addCell(label31);
    sheet.addCell(label41);
    sheet.addCell(label51);
    sheet.addCell(label61);
    row++;
   }
   
//   while (rs.next()) {
//    for (int i = 0; i < columnCount; i++) {
//     label = new Label(i, row, rs.getString(i + 1));
//     // log.info("行:"+i+"---"+row +"---"+ rs.getString(i+1));
//     sheet.addCell(label);
//    }
//    row++;
//   }
   log.info("写入内容成功");
   
   System.out.println("AAAAAAAAAAAAAAAAAAA");
   // 关闭文件
   workbook.write();
   workbook.close();
   log.info("数据成功写入Excel");
   flag = true;
  } catch (RowsExceededException e) {
   log.info(e.getMessage());
  } catch (WriteException e) {
   log.info(e.getMessage());
  } catch (IOException e) {
   log.info(e.getMessage());
  } finally {
   try {
    workbook.close();
   } catch (Exception e) {
   }
  }
  return flag;
 }

 public boolean Excel() throws RowsExceededException, WriteException {
  boolean flag = false;
  WritableWorkbook workbook = null;
  WritableSheet sheet = null;
  Label label = null;
  try {
   workbook = Workbook.createWorkbook(new File("d:/output.xls"));
   // 创建Excel表中的sheet
   sheet = workbook.createSheet("First Sheet", 0);
   // 定义表中的数据
   label = new Label(0, 0, "k k 中国人*");
   Label label1 = new Label(0, 1, "A label record");
   Label label3 = new Label(0, 2, "3.14159");
   // jxl.write.Number number=new jxl.write.Number(1, 1, 3.1459);
   sheet.addCell(label);
   // sheet.addCell(number);
   sheet.addCell(label1);
   sheet.addCell(label3);
   // Number number = new Number(1, 1, 3.1459);
   workbook.write();
   workbook.close();
   System.out.println("SSSSSSSSSSSSSSSSSSSSSSSS");
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return false;
 }

 public static void main(String[] args) {
  try {

   // Class.forName("net.sourceforge.jtds.jdbc.Driver");
   // Connection con = DriverManager.getConnection(
   // "jdbc:jtds:sqlserver://localhost:1433/abc", "sa", "sa");
   // Statement st = con.createStatement();
   // ResultSet rs = st.executeQuery("select * from abc.dbo.sss");
   // // if (!new ExcelUtil().DB2Excel(rs)){
   // // log.info("数据写入失败");
   // // }
   // rs.close();
   // st.close();
   // con.close();
   ExcelUtil e = new ExcelUtil();
   e.DB2Excel("d:/output.xls");

  } catch (Exception e) {
   e.printStackTrace();
  }
 }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值