迭代结果集转换为对象数组

时间:2016-06-07 11:19:40

标签: java collections apache-poi

我已将Resultset转换为Objects。现在我想迭代finalResult。其实我想把这个finalResult数组写到Excel。任何人都可以建议如何做到这一点。

public Object[][] executeQuery(String query) throws SQLException{
    ResultSet rs = getResultSet(query);
    ResultSetMetaData rsMetaData = rs.getMetaData();
    int columnCount = rsMetaData.getColumnCount();
    ArrayList<Object[]> result = new ArrayList<Object[]>();
    Object[] header = new Object[columnCount];
    for (int i=1; i <= columnCount; ++i){
        Object label = rsMetaData.getColumnLabel(i);
        header[i-1] = label;
    }
    while (rs.next()){
        Object[] str = new Object[columnCount];
        for (int i=1; i <= columnCount; ++i){
            Object obj = rs.getObject(i);
            str[i-1] = obj;
        }
        result.add(str);
    }
    int resultLength = result.size();
    Object[][] finalResult = new Object[resultLength][columnCount];
    finalResult[0] = header;
    for(int i=1;i<resultLength;++i){
        Object[] row = result.get(i);
        finalResult[i] = row;
    }
    return finalResult;
}

2 个答案:

答案 0 :(得分:-1)

要编写Excel文件,请查看Apache POI。这是指向(优秀!)忙碌程序员指南的链接:https://poi.apache.org/spreadsheet/quick-guide.html

查看有关创建工作簿,创建工作表和创建单元格的主题。

答案 1 :(得分:-1)

将数据导入Excel的最简单,最快捷的方法是将结果写入逗号分隔值文件或CSV。 Excel可以本机加载此格式。每行文本都包含一系列以逗号分隔的字段。此文件不包含公式或格式,但您的数据将存在。您可以选择标题字段。

header1,header2
value1,value2

此文件是纯文本文件,因此不需要库。