Ich habe Daten in einem Excel-Blatt mit 10 + Spalten. Ich möchte bestimmte Spaltendaten in ein neues Blatt kopieren oder auf der Konsole anzeigen. Ich habe einen Spaltennamen in eine Variable aufgenommen und überprüft, dass mit jeder Zelle in der Kopfzeile, wenn sie übereinstimmt, die Daten dieser Spalte in das neue Blatt kopiert oder auf dem Cursor angezeigt werden. Ich habe versucht mit folgendem Code, aber nicht erwartete Ausgabe. Bitte hilf mir.Wie kopiere ich spezifische Spaltendaten, wenn Header mit JAVA übereinstimmt
Code:
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Read {
public static void main(String[] args) throws Exception{
Read read = new Read();
String x ="Address";
int columnIndex = 0;
read.extractExcelContentByColumnIndex(columnIndex,x);
}
ArrayList<String> extractExcelContentByColumnIndex(int columnIndex, String colName)
{
ArrayList<String> columndata = null;
String x ="Address";
try {
File f = new File("abc.xlsx");
FileInputStream ios = new FileInputStream(f);
XSSFWorkbook workbook = new XSSFWorkbook(ios);
XSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
columndata = new ArrayList<String>();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
System.out.println(row.getRowNum());
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
/*String temp=cell.getStringCellValue();
System.out.println(temp);*/
if(row.getRowNum() > 0){ //To filter column headings
if(cell.getColumnIndex() == columnIndex){// To match column index
switch (cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
columndata.add(cell.getNumericCellValue()+"");
break;
case Cell.CELL_TYPE_STRING:
columndata.add(cell.getStringCellValue());
break;
}
}
}
}
}
ios.close();
System.out.println(columndata);
} catch (Exception e) {
e.printStackTrace();
}
return columndata;
}
}