/**
* 导出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文档",我们遵循以下步骤: 1. **设置环境**:首先,确保你的项目中已经包含了JXL库的jar文件。你可以通过Maven或Gradle等构建工具将其作为依赖添加到项目中。 2. **数据库连接*...
jxl结合IBATIS,导出EXCEL。读取EXCEL模板,把数据写到新的EXCEL中。sql语句中要起别名,别名第一位为字母,第二位包括第二位要是整数数字,这个数字决定插入到excel表格中的位置,决定插入的是那一列。EXCEL模板中...
在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件导入数据到数据库。Apache POI是一个流行的API,专为处理Microsoft Office格式的文件,如Excel(.xlsx, .xls)。本教程将详细介绍如何...
接着,建立JDBC连接到Oracle数据库,创建SQL语句插入数据,并执行这些语句将Excel中的数据导入到数据库中。 在实际应用中,需要注意以下几点: - 数据类型转换:Excel和数据库中的数据类型可能不同,因此在导入和...
首先,我们需要在项目中配置Oracle JDBC驱动,然后创建数据库连接,预编译SQL语句,最后执行插入操作。以下是一个基本示例: ```java import java.sql.*; public class OracleImporter { public static void main...
本项目“Java完美导出Excel程序”是利用Java技术实现的一种高效、灵活的数据导出工具,它允许开发者通过输入SQL查询和指定Excel文件名,自动生成包含查询结果的Excel文件。这一功能在数据分析、报表生成以及数据共享...
总的来说,这个示例提供了从Oracle数据库导出数据到Excel的一种解决方案,使用了JXL库来创建和操作Excel文件,同时依赖Oracle的JDBC驱动进行数据库连接。通过理解和应用这些技术,开发者可以构建自己的数据导出工具...
2. **执行SQL查询**:编写SQL语句,查询需要导出的数据。如果包含BLOB字段,记得使用游标处理大对象。 ```java Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);...
在这个案例中,我们将探讨如何在SSH框架下实现从网页导出Excel文件的功能,而无需依赖第三方库如Apache POI或jxl。 1. **SSH框架简介** - **Spring**:一个全面的轻量级容器,提供依赖注入(DI)和面向切面编程...