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
- org.apache.poi.openxml4j.exceptions.InvalidOperationException:无法打开指定的文件:
- Apache POI getRow()返回null,.createRow失败
- 使用Apache POI的MS Word样式表
- Apache POI和文件删除类
- 在Excel中查找Apache POI提取值
- 如何使用POI API删除Excel单元格上的新行字符
- 获取错误“您的InputStream既不是OLE2stream,也不是OOXMLstream”通过Apache POI创build文件时
- 有人可以提供代码/逻辑来检索excel(.xlsx)数据,比如“”driver.findElement(By.id(“”))。sendkeys(getExceldata(row,column));“
- 使用Apache POI将公式单元格转换为Excel中的错误单元格