Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将本机查询结果导出到Excel JPA_Java_Mysql_Excel_Jpa - Fatal编程技术网

Java 将本机查询结果导出到Excel JPA

Java 将本机查询结果导出到Excel JPA,java,mysql,excel,jpa,Java,Mysql,Excel,Jpa,在我的web应用程序中,我需要将MySQL本机查询结果导出到Excel文件。我事先不知道查询中将包含多少列,也无法为其创建任何预定义的类 我搜索了很多,但找不到任何将MySQL本机查询结果导出到Excel文件的内容 有人能告诉我如何才能做到这一点吗?你们可以使用图书馆。您的代码如下所示: public class ExcelFile { private final List<Object[]> data; private final String filePath;

在我的web应用程序中,我需要将MySQL本机查询结果导出到Excel文件。我事先不知道查询中将包含多少列,也无法为其创建任何预定义的类

我搜索了很多,但找不到任何将MySQL本机查询结果导出到Excel文件的内容

有人能告诉我如何才能做到这一点吗?

你们可以使用图书馆。您的代码如下所示:

public class ExcelFile {

    private final List<Object[]> data;
    private final String filePath;

    public ExcelFile(final List<Object[]> data, final String filePath) {
        this.data = data;
        this.filePath = filePath;
    }

    public void export() {
        try (XSSFWorkbook workbook = new XSSFWorkbook()) {
            XSSFSheet sheet = workbook.createSheet();
            fillSheet(sheet);
            workbook.write(new FileOutputStream(filePath));
        } catch (IOException ignore) {
            ignore.printStackTrace();
        }
    }

    private void fillSheet(final XSSFSheet sheet) {
        for (int i = 0; i < data.size(); i++) {
            XSSFRow excelRow = sheet.createRow(i);
            Object[] dbRow = data.get(i);
            fillRow(excelRow, dbRow);
        }
    }

    private void fillRow(final XSSFRow row, final Object[] dbRow) {
        for (int j = 0; j < dbRow.length; j++) {
            XSSFCell cell = row.createCell(j);
            cell.setCellValue(String.valueOf(dbRow[j]));
        }
    }
}
公共类文件{
私人最终名单数据;
私有最终字符串文件路径;
公共Excel文件(最终列表数据、最终字符串文件路径){
这个数据=数据;
this.filePath=filePath;
}
公共空间导出(){
尝试(XSSF工作簿=新XSSF工作簿()){
XSSFSheet sheet=workbook.createSheet();
填表(张);
write(新文件输出流(文件路径));
}捕获(IOException忽略){
ignore.printStackTrace();
}
}
私人空白填写表(最终XSSF表){
对于(int i=0;i
Maven依赖项:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

org.apache.poi

谢谢,这很有帮助。我还在查询中添加了一些小的分析,并将标题也写入了文件中。