当前位置: 首页 > 知识库问答 >
问题:

java - 如何用Java把查询出的内容导出到Excel表格?

漆雕欣德
2023-12-06

如何用Java把查询出的内容导出到Excel表格

比如说我查询到了数据库的一些数据,想要把这些数据有组织的导出到一个excel文件里面,应该怎么实现?

共有2个答案

熊嘉茂
2023-12-06

先导入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("输出成功!");    }}
龙俊德
2023-12-06

你可以使用 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