如何用Java把数据从数据库导入到Excel中
2013-06-08 00:21
561 查看
packagecom.madhouse.sys.util;
importjava.io.File;
importjava.io.IOException;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.ResultSetMetaData;
importjava.sql.SQLException;
importjxl.Workbook;
importjxl.write.Label;
importjxl.write.WritableSheet;
importjxl.write.WritableWorkbook;
importjxl.write.WriteException;
importjxl.write.biff.RowsExceededException;
importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
importcom.mysql.jdbc.Connection;
importcom.mysql.jdbc.Statement;
/**
*<li>把数据导入到Excel公用类</li>
*</br>Thisisabout<code>ExcelUtil</code>
*
*@authorhjy273
*@version1.0
*@dateSep6,20089:52:52PM
*/
publicclassExcelUtil{
privatestaticLoglog=LogFactory.getLog(ExcelUtil.class);
publicExcelUtil(){
}
publicbooleanDB2Excel(ResultSetrs){
booleanflag=false;
WritableWorkbookworkbook=null;
WritableSheetsheet=null;
Labellabel=null;
//创建Excel表
try{
workbook=Workbook.createWorkbook(newFile("e:/_report/output.csv"));
//workbook=Workbook.createWorkbook(os);
//创建Excel表中的sheet
sheet=workbook.createSheet("FirstSheet",0);
//向Excel中添加数据
ResultSetMetaDatarsmd=rs.getMetaData();
intcolumnCount=rsmd.getColumnCount();
StringcolName=null;
introw=0;
//添加标题
for(inti=0;i<columnCount;i++){
colName=rsmd.getColumnName(i+1);
label=newLabel(i,row,colName);
//log.debug("标题:"+i+"---"+row+"---"+colName);
sheet.addCell(label);
}
row++;
log.debug("写入标题成功");
while(rs.next()){
for(inti=0;i<columnCount;i++){
label=newLabel(i,row,rs.getString(i+1));
log.debug("行:"+i+"---"+row+"---"+rs.getString(i+1));
sheet.addCell(label);
}
row++;
}
log.debug("写入内容成功");
//关闭文件
workbook.write();
workbook.close();
log.info("数据成功写入Excel");
flag=true;
}catch(SQLExceptione){
log.debug(e.getMessage());
}catch(RowsExceededExceptione){
log.debug(e.getMessage());
}catch(WriteExceptione){
log.debug(e.getMessage());
}catch(IOExceptione){
log.debug(e.getMessage());
}finally{
try{
workbook.close();
}catch(Exceptione){
}
}
returnflag;
}
/**
*测试方法
*
*@paramargs
*/
publicstaticvoidmain(String[]args){
//writeyourcode
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connectionconn=(Connection)DriverManager
.getConnection(
"jdbc:mysql://localhost:3306/firewall?useUnicode=true&characterEncoding=utf8",
"root","root");
Statementst=(Statement)conn.createStatement();
ResultSetrs=st
.executeQuery("select*fromfirewall.tb_operator");
if(!newExcelUtil().DB2Excel(rs)){
log.info("数据写入失败");
}
rs.close();
st.close();
conn.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
代码片段:
importjava.io.File;
importjava.io.IOException;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.ResultSetMetaData;
importjava.sql.SQLException;
importjxl.Workbook;
importjxl.write.Label;
importjxl.write.WritableSheet;
importjxl.write.WritableWorkbook;
importjxl.write.WriteException;
importjxl.write.biff.RowsExceededException;
importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
importcom.mysql.jdbc.Connection;
importcom.mysql.jdbc.Statement;
/**
*<li>把数据导入到Excel公用类</li>
*</br>Thisisabout<code>ExcelUtil</code>
*
*@authorhjy273
*@version1.0
*@dateSep6,20089:52:52PM
*/
publicclassExcelUtil{
privatestaticLoglog=LogFactory.getLog(ExcelUtil.class);
publicExcelUtil(){
}
publicbooleanDB2Excel(ResultSetrs){
booleanflag=false;
WritableWorkbookworkbook=null;
WritableSheetsheet=null;
Labellabel=null;
//创建Excel表
try{
workbook=Workbook.createWorkbook(newFile("e:/_report/output.csv"));
//workbook=Workbook.createWorkbook(os);
//创建Excel表中的sheet
sheet=workbook.createSheet("FirstSheet",0);
//向Excel中添加数据
ResultSetMetaDatarsmd=rs.getMetaData();
intcolumnCount=rsmd.getColumnCount();
StringcolName=null;
introw=0;
//添加标题
for(inti=0;i<columnCount;i++){
colName=rsmd.getColumnName(i+1);
label=newLabel(i,row,colName);
//log.debug("标题:"+i+"---"+row+"---"+colName);
sheet.addCell(label);
}
row++;
log.debug("写入标题成功");
while(rs.next()){
for(inti=0;i<columnCount;i++){
label=newLabel(i,row,rs.getString(i+1));
log.debug("行:"+i+"---"+row+"---"+rs.getString(i+1));
sheet.addCell(label);
}
row++;
}
log.debug("写入内容成功");
//关闭文件
workbook.write();
workbook.close();
log.info("数据成功写入Excel");
flag=true;
}catch(SQLExceptione){
log.debug(e.getMessage());
}catch(RowsExceededExceptione){
log.debug(e.getMessage());
}catch(WriteExceptione){
log.debug(e.getMessage());
}catch(IOExceptione){
log.debug(e.getMessage());
}finally{
try{
workbook.close();
}catch(Exceptione){
}
}
returnflag;
}
/**
*测试方法
*
*@paramargs
*/
publicstaticvoidmain(String[]args){
//writeyourcode
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connectionconn=(Connection)DriverManager
.getConnection(
"jdbc:mysql://localhost:3306/firewall?useUnicode=true&characterEncoding=utf8",
"root","root");
Statementst=(Statement)conn.createStatement();
ResultSetrs=st
.executeQuery("select*fromfirewall.tb_operator");
if(!newExcelUtil().DB2Excel(rs)){
log.info("数据写入失败");
}
rs.close();
st.close();
conn.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
代码片段:
001 | java把数据从数据库导入到excel |
002 |
003 |
004 | package com.madhouse.sys.util; |
005 |
006 | import java.io.File; |
007 | import java.io.IOException; |
008 |
009 | import java.sql.DriverManager; |
010 | import java.sql.ResultSet; |
011 | import java.sql.ResultSetMetaData; |
012 | import java.sql.SQLException; |
013 |
014 | import jxl.Workbook; |
015 | import jxl.write.Label; |
016 | import jxl.write.WritableSheet; |
017 | import jxl.write.WritableWorkbook; |
018 | import jxl.write.WriteException; |
019 | import jxl.write.biff.RowsExceededException; |
020 |
021 | import org.apache.commons.logging.Log; |
022 | import org.apache.commons.logging.LogFactory; |
023 |
024 | import com.mysql.jdbc.Connection; |
025 | import com.mysql.jdbc.Statement; |
026 |
027 | /** |
028 | * <li>把数据导入到Excel公用类</li> |
029 | * |
030 | * |
031 | * |
032 | * |
033 | * |
034 | */ |
035 | public class ExcelUtil { |
036 |
037 | private static Log class ); |
038 |
039 | public ExcelUtil() { |
040 |
041 | } |
042 |
043 | public boolean DB2Excel(ResultSet |
044 | boolean flag false ; |
045 | WritableWorkbook null ; |
046 | WritableSheet null ; |
047 | Label null ; |
048 |
049 | // 创建Excel表 |
050 | try { |
051 | workbook new File( "e:/_report/output.csv" )); |
052 | //workbook |
053 |
054 | // 创建Excel表中的sheet |
055 | sheet "First Sheet" , 0 ); |
056 |
057 | // 向Excel中添加数据 |
058 | ResultSetMetaData |
059 | int columnCount |
060 | String null ; |
061 | int row 0 ; |
062 | // 添加标题 |
063 | for ( int i 0 ; |
064 | colName 1 ); |
065 | label new Label(i, |
066 | // |
067 | sheet.addCell(label); |
068 | } |
069 | row++; |
070 | log.debug( "写入标题成功" ); |
071 | while (rs.next()) { |
072 | for ( int i 0 ; |
073 | label new Label(i, 1 )); |
074 | log.debug( "行:" +i+ "---" +row + "---" + rs.getString(i+ 1 )); |
075 | sheet.addCell(label); |
076 | } |
077 | row++; |
078 | } |
079 | log.debug( "写入内容成功" ); |
080 |
081 | // 关闭文件 |
082 | workbook.write(); |
083 | workbook.close(); |
084 | log.info( "数据成功写入Excel" ); |
085 | flag true ; |
086 | } catch (SQLException |
087 | log.debug(e.getMessage()); |
088 | } catch (RowsExceededException |
089 | log.debug(e.getMessage()); |
090 | } catch (WriteException |
091 | log.debug(e.getMessage()); |
092 | } catch (IOException |
093 | log.debug(e.getMessage()); |
094 | } finally { |
095 | try { |
096 | workbook.close(); |
097 | } catch (Exception |
098 | } |
099 | } |
100 | return flag; |
101 | } |
102 |
103 | /** |
104 | * 测试方法 |
105 | * |
106 | * |
107 | */ |
108 | public static void main(String[] |
109 | // |
110 | try { |
111 |
112 | Class.forName( "org.gjt.mm.mysql.Driver" ).newInstance(); |
113 | Connection |
114 | .getConnection( |
115 | "jdbc:mysql://localhost:3306/firewall?useUnicode=true&characterEncoding=utf8" , |
116 | "root" , "root" ); |
117 | Statement |
118 | ResultSet |
119 | .executeQuery( "select ); |
120 | if (! new ExcelUtil().DB2Excel(rs)){ |
121 | log.info( "数据写入失败" ); |
122 | } |
123 | rs.close(); |
124 | st.close(); |
125 | conn.close(); |
126 |
127 | } catch (Exception |
128 | e.printStackTrace(); |
129 | } |
130 |
131 | } |
132 |
133 | } |
相关文章推荐
- Java如何将Excel数据导入到数据库
- 如何用Java将excel数据导入数据库
- java中如何导入03和07版的Excel文件数据,存入到数据库
- java中jxl将数据库中的数据导入到excel中
- Java实现Excel导入数据库,数据库中的数据导入到Excel
- 利用java操作Excel表格(把Excel中的数据导入数据库中)
- Java操作Excel(三)将Excel中的数据批量的导入数据库
- 将数据库里面的数据导入到Excel(Java)
- java将数据库查询数据导入excel
- java 100万条数据以内的Excel 导入到数据库 适用于2003和2007版
- JAVA实现数据库数据导入/导出到Excel(POI技术)
- Java实现Excel导入数据库,数据库中的数据导入到Excel
- Java实现Excel导入数据库,数据库中的数据导入到Excel
- Java 利用poi把数据库中数据导入Excel
- 如何将excel中的数据导入到数据库
- 如何将Excel表中的数据导入到数据库
- Java实现Excel导入数据库,数据库中的数据导入到Excel
- java下载excel导入excel读取excel数据,将数据插入数据库
- JAVA工具类(5) --- 批量导入excel表格数据到数据库中
- Java将数据库数据导入Excel