Java 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; } 

而我的两个function:

 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; } } 

我的最终目标是从这些数据创build图表,但要做到这一点,我需要的数据不是这样的:

 Column1 Column2 Column3 Data1 Data2 Data3 Data4 Data5 Data6 

但是像这样:

 Column1 Data1 Data4 Column2 Data2 Data5 Column3 Data3 Data6 

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

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

 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++; } 

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