天天看点

java数据导入excel_Java将数据库数据导入EXCEL

一般的数据库数据怎么导入excel中呢??这让人非常疑惑,今天我找到了一个方法能够实现

须要导入一个第三方包下载地址

详细内容例如以下:

java数据导入excel_Java将数据库数据导入EXCEL

里面含有指导文档,index.html里面含有怎样读取数据库文件到excel和excel数据到数据库中。

java数据导入excel_Java将数据库数据导入EXCEL

主要用到一个包

java数据导入excel_Java将数据库数据导入EXCEL

将这个包复制到项目里面就能够了。

先做一个简单版本号的helloword

public void mkexcel() throws Exception{

//首先在内存中建立好工作薄

HSSFWorkbook book =new HSSFWorkbook();//建立好工作薄

HSSFSheet sheet = book.createSheet("表一");//表单名以及表单

HSSFRow row=sheet.createRow(4);//创建行数

HSSFCell cell=row.createCell(4);//创建列数

cell.setCellValue("大哥哥。加油!!

");//将数据写到cell中去

//内存中建立可不行。必需要写到文件

FileOutputStream out =new FileOutputStream("a.xls");

book.write(out);

}效果图:

java数据导入excel_Java将数据库数据导入EXCEL

通过上面的简单实例,我们能发现,创建xls的文件类似于在网页中动态创建table表格类似点击打开链接

1。建立工作薄

2,薄建立表

3。表建行

4。行建列

5,列里面设值

有了上面的这个简单的介绍,如今開始导入数据库里面的内容

1,我们必须从内存中建立工作薄

HSSFWorkbook book =new HSSFWorkbook();

2,创建sheet的时候。我们须要指定sheet名,全部须要用到元数据得到database里面的table名

Connection con =hibernateFactory2.getCon();//数据库连接成功

DatabaseMetaData dmeta=con.getMetaData();//元数据

ResultSet rs=dmeta.getCatalogs();//获得全部的数据库,可是为了方便。我们直接指定数据库名

3。获得table名。

String dName="hncu";

//获得数据库里面的表名,返回ResultSet 所有放在list中

ResultSet rs=dmeta.getTables(dName, dName, null, new String[]{"TABLE"});

//放在list 中,为后面的sheet名

List list =new ArrayList();

while(rs.next())

{

list.add(rs.getString("TABLE_NAME"));//找出表名将其放入list 中

}

4,開始建立sheet表单。同一时候採用元素据生成表头

for(String sheetname:list){

HSSFSheet sheet=book.createSheet(sheetname);//设置表单和表单名

String sql="select * from "+dName+"."+sheetname;//以数据库的名字.表名来获取

Statement st =con.createStatement();

ResultSet rs2=st.executeQuery(sql);

ResultSetMetaData rsmd=rs2.getMetaData();

int col =rsmd.getColumnCount();//获得有多少列

//生成表单的第一行,表头

HSSFRow row0 =sheet.createRow(0);

for(int i=0;i

HSSFCell cell = row0.createCell(i);

cell.setCellValue(rsmd.getColumnName(i+1));

}

5,创建行和列以及设置行列的值

int idx=1;//用来生成行

//第一头部分完毕

//完毕第二部分

while(rs2.next()){

HSSFRow row =sheet.createRow(idx++);//一行创建完毕。開始创建列

for(int i =0 ;i

HSSFCell cell =row.createCell(i);

cell.setCellValue(rs2.getString(i+1));

}

}

}

6,存到文件

FileOutputStream out =new FileOutputStream("db.xls");

book.write(out);//採用book来进行写

能直接执行的代码

public void Test3() throws Exception{

//先从内存中的数据建立

HSSFWorkbook book =new HSSFWorkbook();

Connection con =hibernateFactory2.getCon();//数据库连接

DatabaseMetaData dmeta=con.getMetaData();//元素据

//ResultSet rs=dmeta.getCatalogs();//获得所有的数据库

String dName="hncu";

//获得数据库里面的表名,返回ResultSet 所有放在list中

ResultSet rs=dmeta.getTables(dName, dName, null, new String[]{"TABLE"});

//放在list 中,为后面的sheet名

List list =new ArrayList();

while(rs.next())

{

list.add(rs.getString("TABLE_NAME"));//找出表名将其放入list 中

}

for(String sheetname:list){

HSSFSheet sheet=book.createSheet(sheetname);//设置表单和表单名

String sql="select * from "+dName+"."+sheetname;//以数据库的名字.表名来获取

Statement st =con.createStatement();

ResultSet rs2=st.executeQuery(sql);

ResultSetMetaData rsmd=rs2.getMetaData();

int col =rsmd.getColumnCount();//获得有多少列

//生成表单的第一行

HSSFRow row0 =sheet.createRow(0);

for(int i=0;i

HSSFCell cell = row0.createCell(i);

cell.setCellValue(rsmd.getColumnName(i+1));

}

int idx=1;

//第一头部分完毕

//完毕第二部分

while(rs2.next()){

HSSFRow row =sheet.createRow(idx++);//一行创建完毕。開始创建列

for(int i =0 ;i

HSSFCell cell =row.createCell(i);

cell.setCellValue(rs2.getString(i+1));

}

}

}

FileOutputStream out =new FileOutputStream("db.xls");

book.write(out);

就这样就将数据所有导入到excel里面了

效果图:

数据库中的数据

java数据导入excel_Java将数据库数据导入EXCEL

导出的excel的数据

java数据导入excel_Java将数据库数据导入EXCEL

可以全然导出来,可是在实验的时候。数据库类型为blob类型的不能导出,由于excel 的每一个单元格的数据不支持那么大的。

有什么问题,大家一起提出来,共同讨论下。谢谢