JAVA将执行sql结果导入excel
2014-12-29 19:10
423 查看
Java实现将查询的sql结果集导入excel,用到jxl.jar包
public String queryResultToExcel(String sql,String filename,OutputStream os) { Connection conn = null; Statement sm = null; ResultSet rs = null; try { conn = getConnection(); sm = conn.createStatement(); rs = sm.executeQuery(sql); ResultSetMetaData rsmd = rs.getMetaData(); WritableWorkbook wwb = Workbook.createWorkbook(os); // 建立excel文件 WritableSheet sheet = wwb.createSheet(filename, 10); // 创建一个工作表 // 设置单元格的文字格式 WritableFont wf = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK); WritableCellFormat wcf = new WritableCellFormat(wf); wcf.setVerticalAlignment(VerticalAlignment.CENTRE); wcf.setAlignment(Alignment.LEFT); // 格式化数据--NUMBER类型 NumberFormat numberFormat = new NumberFormat(###0.0#######); WritableCellFormat cellFormatNumber = new WritableCellFormat(numberFormat); cellFormatNumber.setVerticalAlignment(VerticalAlignment.CENTRE); cellFormatNumber.setAlignment(Alignment.RIGHT); NumberFormat numberFormat2 = new NumberFormat(###0); WritableCellFormat cellFormatNumber2 = new WritableCellFormat(numberFormat2); cellFormatNumber2.setVerticalAlignment(VerticalAlignment.CENTRE); cellFormatNumber2.setAlignment(Alignment.RIGHT); // 格式化数据--DATE类型 DateFormat dateFormat=new DateFormat(yyyy-MM-dd); WritableCellFormat cellFormatDate = new WritableCellFormat(dateFormat); cellFormatDate.setVerticalAlignment(VerticalAlignment.CENTRE); cellFormatDate.setAlignment(Alignment.CENTRE); // 格式化数据--文本 WritableCellFormat cellTextFormat = new WritableCellFormat(NumberFormats.TEXT); cellTextFormat.setAlignment(Alignment.CENTRE); cellTextFormat.setVerticalAlignment(VerticalAlignment.CENTRE); // 表体数据 boolean flag = true; int r = 1; int c = 0; int columns = rsmd.getColumnCount(); //缓存最大标题宽度 Vector<integer> colWidth = new Vector<integer>(); for(int i = 1; i <= columns; i++){ colWidth.add(0); } while (rs.next()) { for (int i = 1; i <= columns; i++) { //添加表头数据 if(flag){ String key = rsmd.getColumnName(i).toLowerCase(); sheet.setColumnView(c, key.getBytes(GBK).length + 4); sheet.addCell(new Label(c, 0, key,wcf)); colWidth.set(i-1, key.getBytes(GBK).length); //缓存每列第一行数据的宽度 } //设置列宽--如果下一列的数据比前一列宽,则保存最大宽度 if(rs.getString(i) != null){ if(colWidth.get(i-1)<rs.getstring(i).length()){ auto-generated="" block="" c="0;" catch="" else="" filenotfoundexception="" finally="" flag="false;" if="" ioexception="" new="" pre="" return="" sqlexception="" todo="" try="" writeexception=""><p> </p></rs.getstring(i).length()){></integer></integer>
相关文章推荐
- JAVA将执行sql结果导入excel
- 使用excel导入数据库的sql执行方式
- Java执行SQL脚本导入
- java连接mysql,执行sql结果的陷阱
- 关于把解析SQL文件和把解析的结果导入Excel中
- java调用sqlplus执行批量脚本获得输出结果和调用.bat文件
- HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令
- 将oracle SQL语句执行结果导入文本文件
- 用python script将QC Test plan 执行结果导入excel
- Python执行sql语句并将结果导出为Excel打包发送到指定邮箱
- java for循环里面执行sql语句操作,有效结果只有一次,只执行了一次sql
- 如何将sql结果直接导入到excel中
- JAVA自动生成sql结果到excel,并以附件方式发送到指定邮箱
- 可以方便的将SQL语句的执行结果显示成表格结果的JAVA类,可以用于不同的数据显示
- 解决EXCEL导入 SQL 2000过程,列中存在不同格式的问题
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- 从未使用导入java.sql
- sql作业,执行表间数据导入的实验