Java Excel Apache POI在执行setCellValue()时仅打印最后一个元素
我正在从excel中读取一些数据,并将其以列的形式写入同一文件中的另一张表中,我希望该列打印在行中。执行迭代时,createRow.setCellValue仅打印最后一个元素 包com.editDistance; 导入java.io.File; 导入java.io.FileInputStream; 导入java.io.FileNotFoundException; 导入java.io.FileOutputStream; 导入java.io.IOException; 导入java.util.Iterator; 导入org.apache.poi.ss.usermodel.Cell; 导入org.apache.poi.ss.usermodel.Sheet; 导入org.apache.poi.ss.usermodel.工作簿; 导入org.apache.poi.ss.util.CellRangeAddress; 导入org.apache.poi.xssf.usermodel.xssf工作簿; 公共类ReadColumnsEditDistance{ 公共静态无效主字符串[]args引发IOException{ //TODO自动生成的方法存根 File src=new FileC:\\Users\\xyz\\Desktop\\folder\\File.xlsx; FileInputStream file=newfileinputstreamsrc; 工作簿=新的XSSFWorkbookfile; Sheet sheet1=工作簿.getSheetAt0; int rows=sheet1.getPhysicalNumberOfRows; 工作簿.createSheet; Sheet sheet2=工作簿.getSheetAt1; 对于int Readingrowindex=1;ReadingrowindexJava Excel Apache POI在执行setCellValue()时仅打印最后一个元素,java,excel,eclipse,Java,Excel,Eclipse,我正在从excel中读取一些数据,并将其以列的形式写入同一文件中的另一张表中,我希望该列打印在行中。执行迭代时,createRow.setCellValue仅打印最后一个元素 包com.editDistance; 导入java.io.File; 导入java.io.FileInputStream; 导入java.io.FileNotFoundException; 导入java.io.FileOutputStream; 导入java.io.IOException; 导入java.util.Ite
if(sheet2.getRow() == null){
sheet2.createRow(0).createCell(Readingrowindex).setCellValue(ah);
}else{
sheet2.getRow(0).createCell(Readingrowindex).setCellValue(ah);
}
是否要创建第一列和第一行中具有相同单元格的工作表,如命名表?如果是,您需要修改代码,因为您总是重写第一行,这就是为什么您只得到最后一项。这样做:
File src = new File("C:\\Users\\xyz\\Desktop\\folder\\file.xlsx");
FileInputStream file = new FileInputStream(src);
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet1 = workbook.getSheetAt(0);
int rows = sheet1.getPhysicalNumberOfRows();
workbook.createSheet();
Sheet sheet2 = workbook.getSheetAt(1);
Row sheet2FirstRow = sheet2.createRow(0);
for (int Readingrowindex = 1; Readingrowindex < rows; Readingrowindex++) {
String ah = sheet1.getRow(Readingrowindex).getCell(1).getStringCellValue();
sheet2.createRow(Readingrowindex).createCell(0).setCellValue(ah);
Cell cell = sheet2FirstRow.createCell(Readingrowindex);
cell.setCellValue((String) ah);
}
FileOutputStream fout = new FileOutputStream(src);
workbook.write(fout);
我在编写代码时遇到了类似的问题,因为它只打印最后一行 以下是我的代码的解决方案: 仅打印最后一个单元格失败的解决方案,即Hello3
sheet.createRow(8).createCell(0).setCellValue("Hello1");
sheet.createRow(8).createCell(1).setCellValue("Hello2");
sheet.createRow(8).createCell(2).setCellValue("Hello3");
工作方案打印所有数据:
XSSFRow row;
row = sheet.createRow(8);
row.createCell(0).setCellValue("India 123");
row.createCell(1).setCellValue("India 234");
row.createCell(2).setCellValue("India 3453");
row = sheet.createRow(9);
row.createCell(0).setCellValue("Test 123");
row.createCell(1).setCellValue("Test 234");
row.createCell(2).setCellValue("Test 3453");
它应该在循环本身中如何避免它GetRow不能为空