Java POI - 将行插入列

时间:2017-02-10 09:01:43

标签: java excel oracle apache-poi

我基本上是从我的数据库中获取行并将它们作为行粘贴到我的excel文件中。它有点简单,因为没有任何数据转换。这是我的代码(最重要的部分):

XSSFSheet chart1_sheet = wb.createSheet("Chart1");

String strss_chart[] = {"dataa", "inn", "closed", "application"};

hed_row = chart1_sheet.createRow(0);
for_each_header(hed_row, strss_chart);

sql = "select dataa, inn, closed, application from Chart1";
statement =  conn.prepareStatement(sql);
resultSet = statement.executeQuery();  

row = 1;
while(resultSet.next()) 
{
    Row dataRow = chart1_sheet.createRow(row);
    for_each_row_func(dataRow, resultSet, strss_chart);
    row = row + 1;
}

我的两个职能:

public static void for_each_row_func(Row dataRow, ResultSet resultSet, String [] strs) throws Exception
{
    int i = 0;
    for(String str : strs)
    {
         dataRow.createCell(i).setCellValue(resultSet.getString(str));
         i += 1;
    }
}


public static void for_each_header(Row dataRow, String [] strs) throws Exception
{
    int i = 0;
    for(String str : strs)
    {
         //dataRow.createCell(i).setCellValue(resultSet.getString(str));
         dataRow.createCell(i).setCellValue(str);
         i += 1;
    }
}

我的最终目标是根据这些数据创建图表,但要做到这一点,我需要数据 NOT ,如下所示:

Column1 Column2 Column3
Data1   Data2   Data3
Data4   Data5   Data6

但是像这样:

Column1 Data1 Data4
Column2 Data2 Data5
Column3 Data3 Data6

在Java Poi中有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

我记得在POI中你需要创建第一行,而不是列作为单元格。 所以 - 在你的情况下,你需要创建3行实例

Row row1 = chart1_sheet.createRow(1);
Row row2 = chart1_sheet.createRow(2);
Row row3 = chart1_sheet.createRow(3);

比填充标题

row1.createCell(1).setCellValue(str[0]);
row2.createCell(1).setCellValue(str[1]);
row3.createCell(1).setCellValue(str[2]);

而不是n次迭代填充数据

rownum = 2;
while(resultSet.next()) 
{
    row1.createCell(rownum).setCellValue(resultSet.getString(1));
    row2.createCell(rownum).setCellValue(resultSet.getString(2));
    row3.createCell(rownum).setCellValue(resultSet.getString(3));
    rownum++;
}

您可以将所有行放入集合中 附:抱歉,我的电脑上没有任何Java IDE - 可能在语法上有些错误。试图描述算法