`

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)和面向切面编程...

    jxl架包下载

    JXL允许你遍历Excel行和列,然后使用SQL语句或ORM框架(如Hibernate或MyBatis)将数据插入到合适的数据库表中。这对于数据迁移、数据清洗或数据分析非常有用。 3. **从数据库导出Excel**:同样,JXL也可以帮助将...

    excel 数据导入导出

    5. **下载或发送**:根据需求,你可以提供一个下载链接,让用户直接下载导出的Excel文件,或者通过邮件等方式将文件发送给用户。 以上就是关于“Excel数据导入导出”以及结合Oracle存储过程和JXL库进行操作的基本...

    jxl.jar和jxl.api文档及使用方法

    首先读取Excel文件,然后创建一个数据处理逻辑,将每行数据映射到SQL的插入语句,最后批量执行这些SQL语句。这样可以大大提高数据导入的效率。 总的来说,JExcelAPI是一个强大的工具,它简化了Java应用程序与Excel...

    jxl操作excel

    本篇文章将深入探讨如何利用jxl库来实现Excel报表的导出以及将Excel中的数据插入到数据库。 首先,让我们了解jxl库的基本概念。jxl是一个开源项目,它提供了Java程序员与Excel文件进行交互的能力。通过jxl,我们...

    Oracle form导出excle实例

    ### Oracle Form导出Excel实例解析 #### 核心知识点:Oracle Form与数据导出 Oracle Form是一个基于Oracle数据库的应用开发工具,它提供了创建、编辑和运行数据库应用程序的能力。通过Oracle Form,开发者能够设计...

    Java实现数据的导入导出

    通过JDBC,我们可以编写SQL语句或使用预编译的PreparedStatement来插入数据。如果数据量大,可能还需要考虑批处理操作,以提高导入效率。 标签中的"jxl"指的就是JXL库,它在Java中用于处理Excel文件。JXL提供了以下...

    java excel 导入导出

    3. **Excel导出**:导出Excel文件时,同样需要创建`Workbook`和`Sheet`,然后在每个单元格上写入数据。对于金额,确保精度和格式的正确性至关重要。可以使用`NumberCell`来创建数值单元格,并设置小数位数以保证100%...

    Excel和Sqlserver通过java交流信息

    JDBC是Java标准的一部分,提供了一套API来连接数据库,执行SQL语句,以及获取结果集。要与SQL Server 2005通信,我们需要微软提供的JDBC驱动(如`sqljdbc4.jar`,通常与SQL Server安装包一起提供),将其添加到Java...

    jxl和数据库jar包

    使用jxl,你可以方便地将数据导出为Excel格式,或者从Excel文件中导入数据,这对于数据分析、报表生成和数据交换等场景非常有用。以下是一些使用jxl的关键知识点: 1. **安装与导入**:将下载的jxl.jar添加到项目的...

Global site tag (gtag.js) - Google Analytics