`

jxl 实现根据sql语句导出excel文件

阅读更多
/**
	 * 导出Excel
	 * @param filePath			导出文件(模板)路径
	 * @param sql				导出的SQL语句
	 * @param startLine			起始行
	 * @param printTitle		是否打印标题
	 * @throws Exception
	 */
	public void doExport(String filePath , String sql , int startLine , boolean printTitle) throws Exception  {
		
		
		Class.forName("oracle.jdbc.driver.OracleDriver");
		Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:yz", "scott", "tiger"); //获取数据库连接 
		WritableWorkbook book = null ;
		WritableSheet sheet = null ;
		 
		if(new File(filePath).exists()){
			Workbook wb = Workbook.getWorkbook(new File(filePath)); 
			book = Workbook.createWorkbook(new File(filePath), wb); 								// 添加一个工作表
			sheet = book.getSheet(0);	
		}else {
			book = Workbook.createWorkbook(new File(filePath));	 							 	 	 // 第一步
			sheet = book.createSheet("第一页", 0); 						 							 // 创建Sheet
		}
		
		
		PreparedStatement pstm = conn.prepareStatement(sql);							
		ResultSet rs = pstm.executeQuery();							//获取数据集
		ResultSetMetaData rsmd = rs.getMetaData();					//获取表头
		int colCnt = rsmd.getColumnCount();							//获取数据集的列数
		
		
		if(printTitle){
			
			/**
			 * 定义单元格样式
			 */
			WritableFont wf = new WritableFont(WritableFont.ARIAL, 15, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,Colour.BLACK); // 定义格式 字体 下划线 斜体 粗体 颜色
			WritableCellFormat wcf = new WritableCellFormat(wf); // 单元格定义
			wcf.setBackground(jxl.format.Colour.BLACK); // 设置单元格的背景颜色
			wcf.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式
			sheet.setRowView(startLine, 1000); // 设置行的高度
			
			//打印标题头
			for(int k = 1; k < colCnt + 1; k++){
				String title = rsmd.getColumnName(k);
				Label labelTitle = new Label( k-1 , startLine , title , wcf);
				sheet.setColumnView(k-1 , 30); // 设置列的宽度
				sheet.addCell(labelTitle);
			}
			startLine++ ;
		}
		
		
		//打印sql语句查出来的数据
		while (rs.next()) {
			for (int j = 1; j < colCnt+1; j++) {
				String colName = rsmd.getColumnName(j);
				String colValue = rs.getString(colName);
				Label label = new Label(j-1, startLine, colValue);
				sheet.addCell(label);
			}
			startLine++;
		}
		
		  
		book.write();
		book.close();
		pstm.close();
		conn.close();
	}

 

分享到:
评论

相关推荐

    jxl 导出 excel

    要实现"jxl从数据库中直接导出excel文档",我们遵循以下步骤: 1. **设置环境**:首先,确保你的项目中已经包含了JXL库的jar文件。你可以通过Maven或Gradle等构建工具将其作为依赖添加到项目中。 2. **数据库连接*...

    jxl结合IBATIS导出EXCEL

    jxl结合IBATIS,导出EXCEL。读取EXCEL模板,把数据写到新的EXCEL中。sql语句中要起别名,别名第一位为字母,第二位包括第二位要是整数数字,这个数字决定插入到excel表格中的位置,决定插入的是那一列。EXCEL模板中...

    JAVA实现数据库数据导入导出到Excel(POI)所需jar包

    在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件导入数据到数据库。Apache POI是一个流行的API,专为处理Microsoft Office格式的文件,如Excel(.xlsx, .xls)。本教程将详细介绍如何...

    jxl-2.6.10.rar odjbc14.jar : oracle导入导出Excel所需 jar包

    接着,建立JDBC连接到Oracle数据库,创建SQL语句插入数据,并执行这些语句将Excel中的数据导入到数据库中。 在实际应用中,需要注意以下几点: - 数据类型转换:Excel和数据库中的数据类型可能不同,因此在导入和...

    JXL(Java操作Excel文件Oracle数据库)

    首先,我们需要在项目中配置Oracle JDBC驱动,然后创建数据库连接,预编译SQL语句,最后执行插入操作。以下是一个基本示例: ```java import java.sql.*; public class OracleImporter { public static void main...

    Java 完美导出Excel程序

    本项目“Java完美导出Excel程序”是利用Java技术实现的一种高效、灵活的数据导出工具,它允许开发者通过输入SQL查询和指定Excel文件名,自动生成包含查询结果的Excel文件。这一功能在数据分析、报表生成以及数据共享...

    JAVA TABEL示例 EXCEL导出 jxl jar包

    总的来说,这个示例提供了从Oracle数据库导出数据到Excel的一种解决方案,使用了JXL库来创建和操作Excel文件,同时依赖Oracle的JDBC驱动进行数据库连接。通过理解和应用这些技术,开发者可以构建自己的数据导出工具...

    ORACLE导出到EXCEL

    2. **执行SQL查询**:编写SQL语句,查询需要导出的数据。如果包含BLOB字段,记得使用游标处理大对象。 ```java Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);...

    ssh整合web导出excel案例.docx

    在这个案例中,我们将探讨如何在SSH框架下实现从网页导出Excel文件的功能,而无需依赖第三方库如Apache POI或jxl。 1. **SSH框架简介** - **Spring**:一个全面的轻量级容器,提供依赖注入(DI)和面向切面编程...

Global site tag (gtag.js) - Google Analytics