做了一个利用POI导出数据库数据到Excel的例子,并把这个例子与大家一起分享,一起学习,共同进步!
先简单介绍一下poi,poi是apache组织的一个开源项目,最新版为poi-3.0.1,要使用poi需要到apache网站下载poi-bin3.0.1.zip压缩包,并将poi-3.0.1.jar加入到项目的ClassPath中。
下面是完成这个实例的步骤:
1、建立好一个web工程:poi;
2、导入所需要的jar包:poi-3.0.1.jar和mysql数据库驱动包;
3、编写一个StudentResultSet类,用于取出数据库中的数据;
package org.hnylj.poi; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class StudentResultSet { private Connection conn; private PreparedStatement pstmt; private ResultSet rs; private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String URL = "jdbc:mysql://localhost:3306/poi"; private static final String USERNAME = "root"; private static final String PASSWORD = "123"; //查询数据库中的数据 public ResultSet query() { try { Class.forName(DRIVER); conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); pstmt = conn.prepareStatement("select * from student"); rs = pstmt.executeQuery(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return rs; } }
4、编写一个BuildExcelServlet,用于生成Excel;
package org.hnylj.poi; import java.io.FileOutputStream; import java.io.IOException; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class BuildExcelServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StudentResultSet stuResultSet = new StudentResultSet(); ResultSet rs = stuResultSet.query(); String xlsName = "test.xls"; String sheetName = "sheetName"; HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); workbook.setSheetName(0, sheetName); HSSFRow row = sheet.createRow((short) 0); HSSFCell cell; try { ResultSetMetaData md = rs.getMetaData(); int nColumn = md.getColumnCount(); for (int i = 1; i <= nColumn; i++) { cell = row.createCell((short) (i - 1)); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue(new HSSFRichTextString(md.getColumnLabel(i))); } int iRow = 1; while (rs.next()) { row = sheet.createRow((short) iRow); for (int j = 1; j <= nColumn; j++) { cell = row.createCell((short) (j - 1)); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue(new HSSFRichTextString(rs.getObject(j) .toString())); } iRow++; } String filename = request.getRealPath("/") + xlsName; request.setAttribute("filename", filename); FileOutputStream fOut = new FileOutputStream(filename); workbook.write(fOut); fOut.flush(); fOut.close(); request.getRequestDispatcher("OpenExcelServlet").forward(request, response); } catch (Exception e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
5、编写一个OpenExcelServlet,用于把生成的Excel在页面上打开;
package org.hnylj.poi; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class OpenExcelServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/vnd.ms-excel"); PrintWriter out = response.getWriter(); String filePath = (String) request.getAttribute("filename"); BufferedInputStream bis = null; try { bis = new BufferedInputStream(new FileInputStream(filePath)); int bytesRead; while ((bytesRead = bis.read()) != -1) { out.write(bytesRead); out.flush(); } } catch (IOException e) { e.printStackTrace(); } finally { if (bis != null) bis.close(); if (out != null) out.close(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
6、在web.xml里配置一下servlet的映射;
<servlet> <servlet-name>BuildExcelServlet</servlet-name> <servlet-class>org.hnylj.poi.BuildExcelServlet</servlet-class> </servlet> <servlet> <servlet-name>OpenExcelServlet</servlet-name> <servlet-class>org.hnylj.poi.OpenExcelServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>OpenExcelServlet</servlet-name> <url-pattern>/OpenExcelServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>BuildExcelServlet</servlet-name> <url-pattern>/BuildExcelServlet</url-pattern> </servlet-mapping>
7、启动tomcat,运行程序。
一个Java技术交流群,一起交流,共同进步,扣扣群号:513086638
相关推荐
以下将详细介绍如何将Excel文件导入到数据库中,以及如何将数据库中的数据导出到Excel中。 首先,将Excel文件导入数据库通常涉及到以下几个步骤: 1. 数据预处理:在Excel中整理数据,确保格式正确,无错误或缺失...
在导出数据库数据到Excel时,通常会遍历结果集,为每一行创建一个新的行对象,然后将每列数据设置到对应的单元格。 总结来说,完成"java操作数据库导出excel"的任务,你需要掌握以下关键点: 1. 使用JDBC连接数据库...
导出数据库数据到Excel通常采用Python的pandas库或Java的Apache POI库。例如,在Python中,你可以先使用数据库连接(如sqlite3或pyodbc)获取数据,然后用pandas的DataFrame存储数据,最后使用`to_excel`函数写入...
"Android开发实现的导出数据库到Excel表格功能" 知识点一:Android数据库操作 在Android开发中,数据库操作是非常重要的一部分。本文中,我们使用了SQLite数据库来存储家庭账单的数据。SQLite是一种轻量级的关系...
本文将详细介绍如何利用Qt来实现从数据库导出数据到Excel表格的功能。 首先,我们需要理解Qt中的数据库模块。Qt支持多种数据库系统,如SQLite、MySQL、PostgreSQL等,通过QSqlDatabase类进行连接和操作。在项目开始...
总结来说,"JSP SERVLET 导出数据库内容到EXCEL"是一个典型的Java Web应用场景,结合了JSP的视图呈现、Servlet的业务处理和数据库操作,以及第三方库Apache POI的文件生成能力,为企业级应用提供了强大的数据导出...
导出数据库数据到Excel通常有以下步骤: 1. **连接数据库**:使用数据库管理工具或编程语言(如Python的pandas库,Java的JDBC等)建立与数据库的连接。需要提供数据库的URL、用户名、密码以及驱动程序信息。 2. **...
C#程序访问数据库,并按照数据库查询字段导出到excel文件中。访问数据库程序代码采用工厂模式创建,可访问多个数据库,access、sql server2000(2005)、oracle,此程序已在实际工作中稳定运行半年,可当产品出售。...
### VB代码实现从数据库快速导出数据到EXCEL的知识点详解 #### 一、核心概念与技术背景 在企业级应用开发中,数据处理与报表生成是常见的需求之一。使用VB(Visual Basic)进行编程,可以高效地实现从数据库提取...
在Spring Boot应用中,我们经常需要处理数据的导入导出功能,Excel作为广泛使用的电子表格格式,是数据交换的重要...而QueryDsl扩展则方便了数据库数据的导出。理解这些技术,能让你在处理Excel导出时更加游刃有余。
在C# WinForm应用开发中,经常需要将数据库中的数据导出到Excel文件,以便进行数据分析、报表制作或数据共享。本例程提供了一种方法,允许用户将数据表的数据导出到预先设计好的Excel模板中,并且具备预览及保存功能...
在这个主题中,我们将深入探讨如何使用Java技术栈,特别是基于IDEA开发环境,来实现在JSP和Servlet中进行Excel与数据库之间的数据导入和导出。 首先,我们需要了解Java中用于处理Excel文件的库,如Apache POI。...
本文将深入探讨“Excel导出数据到数据库”这一主题,讲解如何高效地将Excel中的数据导入到数据库系统,以实现数据的统一管理和分析。 一、Excel的数据整理与预处理 在导出数据之前,首先需要对Excel中的数据进行...
3. 导出数据库数据到Excel: 导出过程相对简单,只需要反向操作。先创建一个新的Excel工作表,然后逐行写入从数据库查询到的数据。可以使用相同的EPPlus库来创建和填充工作表,然后保存为Excel文件。 为了提高性能...
在IT行业中,将数据库数据导出到Excel文件是一种常见的需求,尤其在数据分析、报表生成或者数据备份时。本文将详细讲解如何使用Java实现从MySQL数据库的表导出到Excel文件的过程,以及涉及到的关键技术和工具。 ...
Access数据库导出数据到Excel是一种常见的数据交换方式,适用于数据预处理、分析或与不使用Access的同事分享数据。这个过程涉及到Access的基本操作和Excel的功能利用,对于IT专业人士来说,掌握这项技能对于提升工作...