Java将数据库数据导入EXCEL

一般的数据库数据怎么导入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" >

导出的excel的数据

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

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

时间: 2024-10-10 05:33:24

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

java数据库数据导入excel

data导出入excel中 controller: package com.longfor.hrssc.api.controller; import com.longfor.hrssc.api.model.BasicInformation; import com.longfor.hrssc.api.service.IBasicInformationService; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.u

PHP把数据库数据导入Excel

<?php function xlsBOF() { echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0); return; } function xlsEOF() { echo pack("ss", 0x0A, 0x00); return; } function format( $STR ){ $STR = str_replace( "\"", "", $ST

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

引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作

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

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])  本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   (三)SSIS的简介   (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介绍一下)   (六)SSIS操作过程(生成Package,用来调用)(下一篇随笔将详细讲解制作Package包的过程,图片太多,篇幅过长,因此本文将直接采用生成的Package包进行

C#将SQL数据库中数据导入Excel中,并将Excel中反导入SQL数据库中

实际的开发中,我们会经常遇到数据的转化的需要,将Excel中的数据转入到SQL中,或将SQL在数据库表中的数据导入到Excel中.代码如下: Code using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windo

C#变成数据导入Excel和导出Excel

excel 基础 •整个excel 表格叫工作表:workbook:工作表包含的叫页:sheet:行:row:单元格:cell. •excel 中的电话号码问题,看起来像数字的字符串以半角单引号开头就没问题了. •使用区域(usedrange):用excel 表的时候不一定是从最左上角的单元格开始用,为了减小文件尺寸,有使用区域的概念,excel 只存储使用区域. 程序处理excel 的技术 •ole automation:程序启动一个excel 进程,然后和excel 进程进行通讯来进行exc

数据库数据用Excel导出的3种方法

将数据库数据用Excel导出主要有3种方法:用Excel.Application接口.用OleDB.用HTML的Tabel标签 方法1——Excel.Application接口: 首先,需要要Excel.dll这个文件,确保自身机器上装有MS Office,在Office安装目录(../Microsoft Office/OFFICE11/,具体目录取决于自己的安装)中找到Excel.exe,然后放在(../Microsoft Visual Studio 8/SDK/v2.0/Bin)目录中,在C

C#语言将 mysql数据库表格导入excel的函数

private void DataTabletoExcel(System.Data.DataTable tmpDataTable, string strFileName) { if (tmpDataTable == null) { return; } int rowNum = tmpDataTable.Rows.Count;//行 int columnNum = tmpDataTable.Columns.Count;//列 int rowIndex = 1;//行 int columnIndex

通过模板将数据导入EXCEL

在EXCEL模板里设置好样式和格式 点击事件 private void btnReport_Click(object sender, EventArgs e)        {            //将数据导入Excel中并设置Excel基本样式            ExcelHandle excelHandle = new ExcelHandle();            excelHandle.GenerateStudentsReports(this.dgvStudents);