如何用Java把查询出的内容导出到Excel表格
比如说我查询到了数据库的一些数据,想要把这些数据有组织的导出到一个excel文件里面,应该怎么实现?
先导入POI相关的第三方jar包
<!-- 使用apache poi需要的依赖 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.19</version></dependency><!-- 使用druid连接池建立java程序与mysql数据库的连接需要的依赖 --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version></dependency><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.9</version></dependency>
向Excel写入文件
package excelTest;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream;import java.io.IOException;/** * 使用poi将数据写入excel文件中 */public class WriteExcelTest { public static void main(String[] args) { XSSFWorkbook xssfWorkbook = null; FileOutputStream out = null; try { //创建工作簿 xssfWorkbook = new XSSFWorkbook(); //创建表 XSSFSheet xssfSheet = xssfWorkbook.createSheet("first_sheet"); //创建行,这里创建四行 XSSFRow row1 = xssfSheet.createRow(0); XSSFRow row2 = xssfSheet.createRow(1); XSSFRow row3 = xssfSheet.createRow(2); XSSFRow row4 = xssfSheet.createRow(3); //为第一行创建单元格并赋值 row1.createCell(0).setCellValue("姓名"); row1.createCell(1).setCellValue("年龄"); row1.createCell(2).setCellValue("性别"); //为第二行创建单元格并赋值 row2.createCell(0).setCellValue("张三"); row2.createCell(1).setCellValue("18"); row2.createCell(2).setCellValue("男"); //为第三行创建单元格并赋值 row3.createCell(0).setCellValue("李四"); row3.createCell(1).setCellValue("17"); row3.createCell(2).setCellValue("男"); //为第四行创建单元格并赋值 row4.createCell(0).setCellValue("黄蓉"); row4.createCell(1).setCellValue("20"); row4.createCell(2).setCellValue("女"); //创建一个输出流 out = new FileOutputStream("D:/output.xlsx"); //将创建的工作簿内容写入磁盘 xssfWorkbook.write(out); } catch (IOException e) { e.printStackTrace(); } finally { try { //关闭资源,需做非空判断 if (out != null) { out.close(); } if (xssfWorkbook != null) { xssfWorkbook.close(); } } catch (IOException e) { e.printStackTrace(); } } System.out.println("输出成功!"); }}
你可以使用 Apache POI 库来创建和修改 Excel 文件。以下是一个简单的例子,它将查询到的数据写入到 Excel 文件中:
import java.io.FileOutputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ExportToExcel { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "password"; String query = "SELECT * FROM mytable"; try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(query)) { Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Data"); int rowNum = 0; while (rs != null && rs.next()) { Row row = sheet.createRow(rowNum++); int colNum = 0; for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { Cell cell = row.createCell(colNum++); cell.setCellValue(rs.getString(i)); } } try (FileOutputStream outputStream = new FileOutputStream("data.xlsx")) { workbook.write(outputStream); } } catch (Exception e) { e.printStackTrace(); } }}
在这个例子中,我们首先创建一个 Workbook
对象和一个 Sheet
对象。然后,我们遍历查询结果,为每一行创建一个 Row
对象,并为每个单元格创建一个 Cell
对象。最后,我们将工作簿写入到一个名为 "data.xlsx" 的文件中。在执行这个代码之前,你需要确保你的项目中包含了 Apache POI 的库。你可以通过 Maven 或者 Gradle 来添加这个依赖。
问题内容: 我的要求是存储查询的整个结果 到Excel文件。 问题答案: 实现此目的的典型方法是导出为CSV,然后将CSV加载到Excel。 您可以使用任何MySQL命令行工具通过在语句中包含以下子句来执行此操作: 有关详细选项,请参见此链接。 另外,您可以使用mysqldump,使用– tab选项将转储存储为单独的值格式,请参见此链接。
Java 导出 Excel 如何添加批注 想在一个excel文件中通过java代码添加批注(注意不是注释),有没有推荐的方案。需求是导出时批注不能丢失,要能与Excel兼容。
问题内容: 我已经找到了将HTML表导出到Excel的方法,但是在将JavaScript表导出从网站导出到excel时遇到了问题。请帮助我找到一种方法,将此表导出到Excel。 页面,从那里我需要信息: www.jalgpall.ee/players.php?year=2012&team=84&player=28469&b=ML 此页面javascript表函数的示例: 问题答案: 我自己找到了答
Java 导出Excel时如何添加注释? 我想在一个excel文件中添加注释,并且可以导出打开。有推荐的方案吗?
问题内容: 我想通过单击表单中的按钮将查询结果导出到excel文件。 为此,我使用了这段代码,并且效果很好: 但是我的查询使用了两个参数 sdate 和 edate ,我不想访问询问我这些值,但是我希望用户在带有适当文本框的表单中输入它们。 所以我在DoCMD.OutputTo之前的代码中添加了此位 但不幸的是,它不起作用。在导出之前如何将参数放入查询中? 问题答案: 如果您想保持原始参数查询的完
本文向大家介绍java实现Excel的导入、导出,包括了java实现Excel的导入、导出的使用技巧和注意事项,需要的朋友参考一下 一、Excel的导入 导入可采用两种方式,一种是JXL,另一种是POI,但前者不能读取高版本的Excel(07以上),后者更具兼容性。由于对两种方式都进行了尝试,就都贴出来分享(若有错误,请给予指正) 方式一、JXL导入 所需jar包 JXL.jar 方式二、POI