Compter le nombre de lignes dans une colonne de la feuille Excel(code Java fourni)

En référence à ma question précédente Comment calculer le nombre de lignes dans une colonne de document Excel à l'aide de Java j'ai été en mesure de calculer le nombre total de colonnes dans la feuille donnée. Maintenant, la moitié du travail est encore à faire que je veux calculer le nombre de lignes dans une colonne particulière. Solution Possible pourrait être à l'aide de tableau 2d et de stockage des index de colonne et les lignes de totaux ou de l'utilisation de la carte, etc. Comment je peux faire? Le code Java est fourni ici. Je suis de droite count(nombre de colonnes) pour mon fichier de démonstration. Veuillez modifier/proposer les modifications nécessaires.

(edit): j'ai utilisé le programme de la carte pour calculer magasin index de colonne comme clé et le nombre de lignes de la valeur, mais il n'était pas au travail, peut être de la logique appliquée en avait tort. Eh bien, si je veux accomplir cela en utilisant de Hachage Carte, comment je peux stocker nombre de lignes dans une colonne particulière(lors de l'itération) comme un valeur

De Code Java:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import org.apache.poi.ss.formula.functions.Column;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelRead {
static int colrange=1000;
public static void main(String[] args) {
HashMap hm=new HashMap();
int count=0;
try {
FileInputStream file = new FileInputStream(new File("C:/Users/vinayakp/Desktop/Demo2.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while(rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while(cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch(cell.getCellType()) {
case Cell.CELL_TYPE_BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\t\t");
break;
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t\t");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + "\t\t");
break;
}
}
System.out.println("");
}
for(Row r:sheet)
{
short minColIx=r.getFirstCellNum();
short maxColIx=r.getLastCellNum();
for(short colIx=minColIx;colIx<maxColIx;colIx++) {
Cell c= r.getCell(colIx);
if(c!=null) {
if(c.getCellType()== Cell.CELL_TYPE_STRING||c.getCellType() == Cell.CELL_TYPE_NUMERIC||c.getCellType() == Cell.CELL_TYPE_BOOLEAN) {
count++; ---//can i use hashcode in here to get the key and value pair? key=column index value=total number of rows in that column
} 
}
else break;
}
}
System.out.println("\nTotal Number of columns are:\t"+count);
System.out.println(hm);
file.close();    
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException ae) {
ae.printStackTrace();
}
}
}

OriginalL'auteur Vinayak Pahalwan | 2012-12-14