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

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

详细内容例如以下:

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

主要用到一个包

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

先做一个简单版本号的helloword

<span style="white-space:pre">	</span>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);
}

效果图:

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

1。建立工作薄

2,薄建立表

3。表建行

4。行建列

5,列里面设值



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

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

<span style="font-size:18px; white-space: pre;">	</span><span style="font-size:24px;">HSSFWorkbook book =new HSSFWorkbook();</span>

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

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

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


<span style="font-size:24px;">ResultSet rs=dmeta.getCatalogs();//获得全部的数据库,可是为了方便。我们直接指定数据库名</span>

3。获得table名。

<span style="white-space:pre">		</span>String dName="hncu";
//获得数据库里面的表名,返回ResultSet 所有放在list中
ResultSet rs= dmeta.getTables(dName, dName, null, new String[]{"TABLE"});
//放在list 中,为后面的sheet名
List<String > list =new ArrayList<String>();
while(rs.next())
{
<span style="white-space: pre;"> </span>list.add(rs.getString("TABLE_NAME"));//找出表名将其放入list 中
}

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

<span style="white-space:pre">	<span style="font-size:24px;">		</span></span><span style="font-size:24px;">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<col;i++){
HSSFCell cell = row0.createCell(i);
cell.setCellValue(rsmd.getColumnName(i+1));
}</span>

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

<span style="white-space:pre">			</span>int idx=1;//用来生成行
//第一头部分完毕 //完毕第二部分
while(rs2.next()){
HSSFRow row =sheet.createRow(idx++);//一行创建完毕。開始创建列
for(int i =0 ;i<col;i++){
HSSFCell cell =row.createCell(i);
cell.setCellValue(rs2.getString(i+1));
}
}
}

6,存到文件

	<span style="white-space:pre">	</span><span style="font-size:24px;">FileOutputStream out =new FileOutputStream("db.xls");
<span style="white-space:pre"> </span> book.write(out);//採用book来进行写</span>

能直接执行的代码

public void Test3() throws Exception{
/*
* 要先得到数据库里面的数据。我们必须採用元数据,获得想关的内容
* 要是直接执行,须要导包 建立数据库,查看的生成后文件在和根文件夹src同级
*/ //先从内存中的数据建立
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<String > list =new ArrayList<String>();
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<col;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<col;i++){
HSSFCell cell =row.createCell(i);
cell.setCellValue(rs2.getString(i+1));
}
}
}
FileOutputStream out =new FileOutputStream("db.xls");
book.write(out);

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

效果图:

数据库中的数据

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

导出的excel的数据



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

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

Java将数据库数据导入EXCEL的更多相关文章

  1. JAVA实现数据库数据导入/导出到Excel(POI)

    准备工作: 1.导入POI包:POI下载地址http://mirrors.tuna.tsinghua.edu.cn/apache/poi/release/src/(重要) 如下 2.导入Java界面美 ...

  2. java数据库数据导入excel

    data导出入excel中 controller: package com.longfor.hrssc.api.controller; import com.longfor.hrssc.api.mod ...

  3. ASP.NET中数据库数据导入Excel并打印(2)

    大家可能觉得上面的代码比较复杂,因为上面对于对打印要求比较高的应用,是十分有效的.如果只是单单对数据进行导出,还可以使用简单的格式,比如使用以下的代码:      Private Sub Page_L ...

  4. 在java中实现数据导入excel表格中

    1.首先前端代码如下: 一个导出按钮:<input id="export" class="btn btn-primary" type="butt ...

  5. PHP把数据库数据导入Excel

    <?php function xlsBOF() { echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0); return; ...

  6. [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  7. 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  8. Java实现大批量数据导入导出(100W以上) -(三)超过25列Excel导出

    前面一篇文章介绍大数据量导出实现: Java实现大批量数据导入导出(100W以上) -(二)导出 这篇文章在Excel列较少时,按以上实际验证能很快实现生成.但如果列较多时用StringTemplat ...

  9. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

    效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])    本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   ...

随机推荐

  1. CSS文字换行详细解说

    本文列举了兼容 IE 和 FF 地换行 CSS 推荐样式,详细介绍了word-wrap同word-break地区别.兼容 IE 和 FF 地换行 CSS 推荐样式: 最好地方式是 word-wrap: ...

  2. HTML标签 闭合还是不闭合?

    你在写 HTML5 代码的时候,是否纠结过应该写 <br /> 还是 <br>,是写 <input /> 还是写 <input>.写 <scrip ...

  3. Back Track 5 之 网络踩点

    DNS记录探测 dnsenum 针对NDS信息收集的工具 格式: ./dnsenum.pl dbsserver (域名) 请原谅我拿freestu.net这个学校团委的域名做的测试,求不黑!! dns ...

  4. 【SQLite】 C#中操作SQlite

    简介 SQLite是轻量级数据库,具体的介绍请参考官网(SQLite官网).在WinForm的项目中需要采用独立的数据库访问,可在断网单机上使用,所以选择了SQLite! 使用 主要针对C#项目(Wi ...

  5. [Javascript] Using map() function instead of for loop

    As an example, if Jason was riding the roller coaster (and when isn’t he), your goal would be to cha ...

  6. Throwing cards away I uva1594

     Throwing cards away I Given is an ordered deck of  n  cards numbered 1 to n  with card 1 at the t ...

  7. MySQL双主如何解决主键冲突问题

    搭建了个双主,突然想到如果表设置了自增主键的话,当业务同时向双库中插入一条数据,这时候情况是什么样子的呢? 比如:主库A和主库B上的一个表数据为: 12 'ninhao' .当业务同时写入数据后主库A ...

  8. oracle 插入表数据的4种方式

      1.往表中插入一整行数据 /*方法一*/ INSERT INTO 表名 VALUES(val1,val2,val3,...); /*方法二*/ '; 如: ,, FROM DUAL; 注意: 2. ...

  9. ORACLE-SQL(一)

      迁移时间:2017年6月1日10:02:43 CreateTime--2017年6月1日09:59:30Author:Marydon 一.SQL语句 (一)基础篇 1.1.1 where 子句 1 ...

  10. Oracle使用——PLSQL的中文乱码显示全是问号

    问题 这两天刚将PLSQL与Oracle配置好,但是在PLSQL中插入数据时.出现一个问题,PLSQL中的表里无法显示中文,中文无法保存.无法输出.中文在表中显示问号.如图: 原因 经过一番查证,发现 ...