Importer des données Excel avec Java

introduction

Cette fois, c'est Apache POI. Je l'ai utilisé pour importer des groupes de données créés par Excel dans le traitement Java.

Qu'est-ce que Apache POI?

Nom officiel Apache POI Bibliothèque Java capable de lire et d'écrire des fichiers au format Microsoft Office tels que Word et Excel

J'ai téléchargé le fichier jar suivant à partir d'ici. https://poi.apache.org/download.html

poi-4.1.1.jar poi-ooxml-4.1.1.jar poi-ooxml-schemas-4.1.1.jar commons-collections4-4.4.jar commons-compress-1.19.jar xmlbeans-3.1.0.jar

Processus fait

J'ai fait un processus pour importer la première feuille du fichier Excel cible, colonne A, dans Java.

SamplePOI.java


public class SamplePOI {
    
    /*
     *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);
                cell = row.getCell(0);
                String cellValue = getCellStringValue(cell);
                columnA_List.add(cellValue);
            }
            
            //Sortie vers la console
            System.out.print("[");
            for (String outStr : columnA_List) {
                System.out.print(outStr);
            }
            System.out.print("]");
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /*
     *Détermine l'état de la cellule et le renvoie sous forme de type String.
     */
    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;
    }
}

Essayez de courir

Lorsque je charge le fichier Excel contenant le hiragana suivant et que je l'exécute, "Akasatana Hamayarawa" est sorti. image.png

samplePOI.result


[a Ka sa ta na ha ma ya ra wa]

Résumé

Je n'ai fait qu'un traitement simple, mais j'ai senti que c'était la même chose que VBA. Il était un peu difficile de comprendre que le type de cellule devait être pris en compte lors de l'acquisition du contenu de la cellule.

Lorsque j'essaie d'importer une fonction dans Excel, il semble que la fonction elle-même soit acquise en tant que valeur au lieu du résultat du calcul? Donc si vous voulez le résultat, cela semble un peu difficile.

Recommended Posts

Importer des données Excel avec Java
Importer des données Excel avec Java 2
Importer des données Excel avec Java 3
Vérification des données Excel d'ajout Java
Afficher les données Firestore dans RecyclerView [Java]
Créer des données binaires de longueur variable en Java
Partition en Java
Optimiser les déclarations d'importation Java dans IntelliJ IDEA
Janken à Java
Supprimer les lignes / colonnes vides dans Java Excel
Taux circonférentiel à Java
FizzBuzz en Java
Ajouter, lire et supprimer des commentaires Excel à l'aide de Java
Mémo organisé dans la tête (Java - type de données)
Importer des fichiers de la même hiérarchie en Java
Lire JSON en Java
Implémentation de l'interpréteur par Java
Faites un blackjack avec Java
Application Janken en Java
Programmation par contraintes en Java
Mettez java8 dans centos7
NVL-ish guy en Java
Joindre des tableaux en Java
"Hello World" en Java
Interface appelable en Java
[Java] Type de données ①-Type de base
Fonctions Azure en Java
Simple htmlspecialchars en Java
Implémentation Boyer-Moore en Java
Hello World en Java
Mémorandum WebApi avec Java
Détermination de type en Java
Exécuter des commandes en Java (ping)
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
Art ASCII à Java
Comparer des listes en Java
POST JSON en Java
Exprimer l'échec en Java
[Java] Principaux types de données
Créer JSON en Java
Manipulation de la date dans Java 8
Nouveautés de Java 8
Utiliser PreparedStatement en Java
Nouveautés de Java 9,10,11
Exécution parallèle en Java
Types de données de base Java
Vectoriser et imager les données d'images numériques manuscrites MNIST avec Java
Essayez d'utiliser RocksDB avec Java
Lire des fichiers binaires en Java 1
Mémo d'apprentissage Java (type de données)
Obtenir des informations EXIF en Java
[Neta] Sleep Sort en Java
Comment utiliser les données JSON dans la communication WebSocket (Java, JavaScript)
L'histoire de Java dans ce monde
Java fusion et annulation de la cellule Excel