java利用jxl查询数据表数据并把数据加载到execl表格中

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
/***
*从数据库查询数据
*然后进行装载写入execl
*@author zyh
**/
public class DataExcel {

static Connection conn = null;

public static void main(String[] args) throws Exception {
	try {
		dataBaseConnection();
		createExcel();
	} catch (Exception e) {
		e.printStackTrace();
	}
	
}

/**
 * 数据库连接
 * @throws Exception
 */
public static void dataBaseConnection() throws Exception{
  String driver="oracle.jdbc.driver.OracleDriver";
  String url="jdbc:oracle:thin:@20.1.2.105:1521:LOWUSER";
  String user="sfck";
  String password="sfck";
	System.out.println("连接数据库开始......");
	 Class.forName(driver);
	 conn = DriverManager.getConnection(url,user,password);
	 System.out.println("连接数据库成功......");
}

/**
 * 从数据库中查出数据,写入Excel文件中
 * @throws Exception
 */
public static void createExcel() throws Exception{
  //文件路径
	String sFilePath = "D:/data/temp/";
	//文件名
	String sFileName = "blackgreay.xls";
	File fFlie = new File(sFilePath+sFileName);
	WritableWorkbook book= Workbook.createWorkbook(fFlie);
	//工作表名称
	String sSheetName = "黑灰名单数据推送";
	WritableSheet sheet = book.createSheet(sSheetName,0);
	//设置工作表网格线
	sheet.getSettings().setShowGridLines(true);
	
	//定义样式
	WritableFont font = new WritableFont(WritableFont.ARIAL, 10);
	WritableCellFormat format = new WritableCellFormat(font);
	//设置水平居中对齐
	format.setAlignment(Alignment.CENTRE);
	//设置垂直居中对齐
	format.setVerticalAlignment(VerticalAlignment.CENTRE);
	//设置背景颜色
	format.setBackground(Colour.GRAY_25);
	//设置单元格边框
	format.setBorder(Border.ALL, BorderLineStyle.THIN);
	//定义表头
	String[] sTitle = {"批次号","请求单号","机构号","客户证件类型","客户证件号码","客户账号","客户名称","查控标识"};
	
	//设置各列列宽
	for(int i = 0; i < sTitle.length; i++){
		if(i==7){
			sheet.setColumnView(i, 40); 
		}else{
			sheet.setColumnView(i, 15); 
		}
	}
	
	int iRow = 0;//行号
	for(int i = 0; i < sTitle.length; i++){
		sheet.addCell(new Label(i,iRow,sTitle[i],format)); 
	}
	iRow += 1;
	String sSql = " select pch,qqdh,jgh,khzjlx,khzjh,khzh,ckbs from electronicinfo ";
	Statement st = conn.createStatement();
	ResultSet rs = st.executeQuery(sSql);
	while(rs.next()) {
		sheet.addCell(new Label(0,iRow,iRow+"",format));
		int iCol = 1;//列号
		//初始化列值
		String sColumnValue = "";
		//特殊关注点:列号不能大于查询结果集列数,否则报无效索引异常
		while(iCol <= rs.getMetaData().getColumnCount()){
			sColumnValue = rs.getString(iCol);
			if(sColumnValue!=""%%sColumnValue!=null){
				sheet.addCell(new Label(iCol-1,iRow,sColumnValue,format)); 
			}else{
				sheet.addCell(new Label(iCol-1,iRow,sColumnValue,format)); 
			}
			iCol ++;
		}
		iRow ++;
	}
	rs.close();
	st.close();
	//关闭连接
	conn.close();
	//写入数据
	book.write();
	//关闭文件
	book.close();
	System.out.println("数据装载完成......");
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值