Dans la continuité de la dernière fois, cette fois est également le contenu d'Apache POI.
À propos de la pièce qui a été décrite dans une autre méthode à propos de la pièce pour obtenir la valeur de la cellule précédente. Il semble que la valeur de la cellule ne soit pas simplement telle qu'elle est. Extrait de la méthode précédente telle quelle.
SamplePOI.java
private static String getCellStringValue(Cell cell) {
String retStr;
CellType cellType = cell.getCellType();
switch (cellType) {
case STRING:
retStr = cell.getStringCellValue();
break;
case NUMERIC:
retStr = String.valueOf(cell.getNumericCellValue());
break;
case BOOLEAN:
retStr = String.valueOf(cell.getBooleanCellValue());
break;
case FORMULA:
retStr = String.valueOf(cell.getCellFormula());
break;
case ERROR:
retStr = String.valueOf(cell.getErrorCellValue());
break;
default:
retStr = "";
break;
}
return retStr;
}
}
Ici, le type de cellule à acquérir (type de variable dans Java? State?) Est déterminé en premier. Il semble que la méthode utilisée pour l'acquisition change en fonction du type.
Vous pouvez obtenir le type de cellule avec la méthode getCellType. Plus précisément, il y a les sept suivants. ・ ** CellType._NONE ** Cellule inconnue. Je ne suis pas sûr, mais c'est une cellule qui apparaît rarement.
・ ** CellType.BLANK ** Cellule vide.
・ ** Type de cellule.BOOLEAN ** Booléen. Pour les cellules qui demandent VRAI, FAUX ou authenticité (comme "= A1 = A2").
・ ** CellType.ERROR ** Erreur. Peut-être qu'une erreur de calcul est une cellule qui contient une erreur dans la formule.
・ ** CellType.FORMULA ** Formule. Une cellule calculée comme "= A1 + B1" et affichée comme valeur calculée à l'écran. Puisque la formule elle-même peut être obtenue en utilisant la méthode getCellFormula, "= A1 + B1" peut être obtenu tel quel en le convertissant en String.
・ ** CellType.NUMERIC ** Valeur numérique. Une cellule qui contient des nombres ou des dates.
・ ** CellType.STRING ** Chaîne de caractères. Une cellule dont le contenu est du texte. Si vous avez utilisé des nombres comme chaînes sur Excel, les nombres viendront également ici. (Devrait)
SamplePOI2.java
public class SamplePOI2 {
/*
*Ce processus
*/
public static void main(String[] args) {
//Entrez ici le chemin complet du fichier Excel que vous souhaitez importer
String ExcelPath = "";
//Objets pour Excel
Workbook wb;
Sheet sh;
Row row;
Cell cell;
//Liste contenant les données acquises
List<String> columnA_List = new ArrayList<>();
try (InputStream is = new FileInputStream(ExcelPath)) {
//Importez le fichier Excel cible dans Java
wb = WorkbookFactory.create(is);
//Spécifiez la première feuille du fichier cible
sh = wb.getSheetAt(0);
//Obtenez la ligne maximale de la feuille
int rowMaxA = sh.getLastRowNum();
//Tournez la boucle pour la ligne maximale et obtenez la cellule de la colonne A en tant que type String
for (int i = 0; i <= rowMaxA; i++) {
row = sh.getRow(i);
if (row == null) {
continue;
}
cell = row.getCell(0);
String cellValue = getCellTypes(cell);
columnA_List.add(cellValue);
}
//Sortie vers la console
for (String outStr : columnA_List) {
System.out.println(outStr);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/*
*Détermine l'état de la cellule et le renvoie sous forme de type String.
*/
private static String checkCellType(Cell cell) {
String retStr="";
CellType cellType = cell.getCellType();
switch (cellType) {
case _NONE:
retStr ="_NONE";
break;
case BLANK:
retStr ="BLANK";
break;
case BOOLEAN:
retStr ="BOOLEAN";
break;
case ERROR:
retStr ="ERROR";
break;
case FORMULA:
retStr ="FORMULA";
break;
case NUMERIC:
retStr ="NUMERIC";
break;
case STRING:
retStr ="STRING";
break;
}
return retStr;
}
Le résultat du chargement de cet Excel est
cellType.result
BLANK
BOOLEAN
ERROR
FORMULA
NUMERIC
STRING
est devenu.
Une fois que vous connaissez le type de cellule, obtenez la valeur de chaque type de cellule. STRING getStringCellValue() Ou cell.getRichStringCellValue().getString() Obtenu à. Je ne comprends pas vraiment la différence.
NUMERIC Si vous voulez le rendre de type int getNumericCellValue() Si vous souhaitez obtenir la date, etc. dans le type de date getDateCellValue()
FORMULA getCellFormula() L'expression peut être obtenue en tant que type String
ERROR getErrorCellValue() Obtenez un code d'erreur. (octet)
BOOLEAN C'est un type booléen et peut être utilisé tel quel. getBooleanCellValue()
C'est comme ça.
Recommended Posts