转载:http://blog.csdn.net/ink4t/article/details/77150183
1. 前言:
在开发过程中往往少不了自动生成excel,比如学校教务系统,医疗系统,公司财务或者是公司员工的工资预览表都会使用。
2. 准备阶段:
1、Java开发环境
2、所需要的jar包:
(1)MySQL-connector-java-5.1.12-bin.jar
(2)poi-3.17-beta1.jar
这里提供了相关的jar包链接:
链接:http://pan.baidu.com/s/1dFeVOHj 密码:sgl1
3. 实例
3.1 通过java生成Excel文件,并且能添加内容进去
package cn.ink.excel; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Workbook; public class FromDbToExcelTest01 { public static void main(String[] args) throws Exception { // 建立一个Excel Workbook book = new HSSFWorkbook(); // 在对应的Excel中建立一个分表 Sheet sheet1 =(Sheet) book.createSheet("分表1"); // 设置相应的行(初始从0开始) Row row =sheet1.createRow(0); // 在所在的行设置所在的单元格(相当于列,初始从0开始,对应的就是A列) Cell cell = row.createCell(0); // 写入相关数据到设置的行列中去。 cell.setCellValue("相关数据"); // 保存到计算机相应路径 book.write( new FileOutputStream("D://a.xls")); } }
3.2 读出对应数据库表中的内容
import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.util.ArrayList; import java.util.List; import com.mysql.jdbc.Connection; import com.mysql.jdbc.Statement; public class Test03 { //TODO 需要将url\用户名\密码修改为自己的 public final static String url = "jdbc:mysql://127.0.0.1:3306/blog"; public final static String user = "root"; public final static String password = "123456"; public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); // 连接数据库 Connection con = (Connection) DriverManager.getConnection(url, user, password); DatabaseMetaData dbmt = con.getMetaData(); // 拿到所有的blog数据库中所有信息 // TODO 需要将blog修改为自己的数据库 ResultSet rs = dbmt.getTables("blog", "blog", null, new String[] { "TABLE", "VIEW" }); List<String> tablenames = new ArrayList<String>(); while (rs.next()) { String tablename = rs.getString("TABLE_NAME"); tablenames.add(tablename); } for (String tablename : tablenames) { System.out.println(tablename + "表:"); String sql = "select * from " + tablename; Statement st = (Statement) con.createStatement(); ResultSet dataRs = st.executeQuery(sql); ResultSetMetaData rsmt = dataRs.getMetaData(); // 拿到列数 int colnums = rsmt.getColumnCount(); for (int i = 1; i <= colnums; i++) { // 拿到表头信息 String colName = rsmt.getColumnName(i); System.out.print(colName + "\t"); } System.out.println(); while (dataRs.next()) { for (int i = 1; i <= colnums; i++) { // 拿到表信息 System.out.print(dataRs.getString(i) + "\t"); } System.out.println(); } } con.close(); } catch (Exception e) { e.printStackTrace(); } } }
3.3 将指定数据库中指定数据表导出到Excel中
import java.io.FileOutputStream; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import com.mysql.jdbc.Connection; import com.mysql.jdbc.Statement; public class FromOneSheetToExcel { //TODO 需要将url\用户名\密码修改为自己的 public final static String url = "jdbc:mysql://127.0.0.1:3306"; // 数据库URL public final static String user = "root"; // 数据库用户名 public final static String password = "123456"; // 数据库密码 // 把数据库单张表信息导入到Excel表中 public static void main(String[] args) throws Exception { // 架子啊数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 连接数据库 Connection con = (Connection) DriverManager.getConnection(url, user, password); // 创建Excel表。 Workbook book = new HSSFWorkbook(); // DatabaseMetaData dbmt = con.getMetaData(); // 获得blog数据库 //TODO 需要将blog修改为你指定的数据库 // ResultSet rs = dbmt.getTables("blog", "blog", null, new String[] { // "TABLE", "VIEW" }); // 设置要转化为Excel的表 //TODO 需要将Table_Name修改为当前数据库中你想导出的数据表 String Table_Name = "team"; // while (rs.next()) { // if ("team".equals(rs.getString("TABLE_NAME"))) { // Table_Name = "team"; // break; // } // } // 在当前Excel创建一个子表 Sheet sheet = book.createSheet(Table_Name); Statement st = (Statement) con.createStatement(); // 创建sql语句,对team进行查询所有数据 String sql = "select * from blog." + Table_Name; ResultSet rs = st.executeQuery(sql); // 设置表头信息(写入Excel左上角是从(0,0)开始的) Row row1 = sheet.createRow(0); ResultSetMetaData rsmd = rs.getMetaData(); int colnum = rsmd.getColumnCount(); for (int i = 1; i <= colnum; i++) { String name = rsmd.getColumnName(i); // 单元格 Cell cell = row1.createCell(i - 1); // 写入数据 cell.setCellValue(name); } // 设置表格信息 int idx = 1; while (rs.next()) { // 行 Row row = sheet.createRow(idx++); for (int i = 1; i <= colnum; i++) { String str = rs.getString(i); // 单元格 Cell cell = row.createCell(i - 1); // 写入数据 cell.setCellValue(str); } } // 保存 book.write(new FileOutputStream("D://" + Table_Name + ".xls")); } }
相关推荐
在IT行业中,将数据库数据导出到Excel文件是一种常见的需求,尤其在数据分析、报表生成或者数据备份时。本文将详细讲解如何使用Java实现从MySQL数据库的表导出到Excel文件的过程,以及涉及到的关键技术和工具。 ...
总结来说,Java导出数据到Excel文件支持多级表头的过程涉及以下步骤: 1. 引入Apache POI库。 2. 创建`SXSSFWorkbook`和`SXSSFSheet`对象。 3. 设计和创建多级表头,一级表头在前,二级表头在其下。 4. 从数据库查询...
在Java编程环境中,将JSP表格中的数据导出到Excel文件是一种常见的需求,尤其是在数据分析、报表生成和数据交换等场景中。本篇文章将详细介绍如何利用Java实现这一功能,主要涉及的技术包括Java Servlet、JSP以及...
在Java开发中,将数据导出到Excel是一种常见的需求,特别是在数据分析、报表生成或数据交换等场景下。Excel因其易用性和丰富的格式设置能力,成为处理结构化数据的理想选择。本篇文章将深入探讨如何利用Java实现这一...
在Java编程环境中,生成自定义Excel模板是一项常见的需求,尤其在数据分析、报表生成等领域。本文将深入探讨如何使用Java和jxl库来实现这一功能,让开发者能够创建任意复杂格式的Excel文件,并允许用户在客户端保存...
资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。
在Java开发中,处理大数据量的Excel导出是一项常见的任务,尤其当数据量达到数十万条时,单个Excel文件可能会遇到性能瓶颈或格式限制。本项目针对这一问题提出了一种解决方案,即分块生成多个Excel文件,然后将它们...
在Java开发中,当面临大批量数据导出到Excel文件时,可能会遇到内存溢出的问题。这是因为Excel文件格式本身的设计,以及Java默认处理大数据的方式,可能导致内存占用过高,尤其是在一次性加载大量数据到内存中进行...
本示例涉及的主题是“java导出excel复杂表头”,这意味着我们要处理的不是简单的单级表头,而是包含多级或者多层次结构的表头。在描述中提到这是一个可以直接运行的Java工程,但需要进一步改造为Web下载服务。 首先...
根据excel模板动态导出数据库数据 package text; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.servlet....
在Java编程中,将List集合数据导出到Excel表格是一个常见的需求,特别是在数据分析、报表生成或数据导出等场景。本实例提供了一个通用工具类,能够处理多种不同类型的对象集合,实现了最大化的通用性,使得开发者...
在Java编程中,导出复杂的Excel模板是一项常见的需求,尤其在数据分析、报表生成或数据交换等场景中。本文将深入探讨如何使用Java实现这一功能,包括选用的库、步骤、以及处理复杂模板的关键技巧。 首先,Java中最...
在Java编程环境中,处理Excel数据并将其导出是一项常见的任务,尤其在数据分析、报表生成或者数据交换等场景中。Excel文件格式(.xlsx或.xls)因其直观易用和广泛支持而受到青睐。在这个主题中,我们将深入探讨如何...
java实现导出excel功能,可稍作修改移值到网页上进行数据导出
在Java编程中,导出Excel是一项常见的需求,尤其在数据处理和报表生成方面。本资源提供的"java导出excel复合表头简单实例"是针对Java开发者的一个实用教程,特别是对于那些刚开始接触Java Excel导出功能的新手。这个...
通过这个“java的poi生成excel图表demo”,我们可以学习如何利用POI创建动态的、数据驱动的Excel曲线图,进一步提升数据的可视性和理解性。这个压缩包中的“EexcelChart”可能是示例代码、测试数据或生成的Excel文件...
总结来说,这个Java web项目通过Apache POI库实现了数据到Excel的动态导出,涉及到了文件操作、数据结构映射、模板应用和性能优化等多个方面,是Java Web开发中一个实用的功能实现。在实际开发中,可以参考这个案例...
Java多线程导出Excel是处理大数据量时的一种高效策略,尤其在面对千万级别的数据时。传统的Apache POI库在处理大规模数据时可能会遇到栈溢出(StackOverflowError)和内存溢出(OutOfMemoryError)等问题,因为这些...
Java编程调用PageOffice实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...
在Java编程中,导出Excel是一项常见的任务,特别是在数据分析、报表生成或数据交换等领域。而带图片的Excel导出则增加了复杂性,因为涉及到二进制数据的处理和Excel特定格式的支持。以下是一些关于如何在Java中实现...