Java ajoute et lit des formules Excel

Lors du calcul et du traitement de données dans des tableaux Excel, nous utilisons souvent diverses expressions de fonction Excel pour améliorer l'efficacité du travail. Dans cet article, je vais vous montrer comment utiliser Free Spire.XLS pour Java pour ajouter des formules aux cellules Excel et lire les formules dans les cellules.

** Importer le package JAR ** ** Méthode 1: ** Après avoir téléchargé et décompressé Free Spire.XLS pour Java, dans le dossier lib Importez le package Spire.Xls.jar dans votre application Java en tant que dépendance.

** Méthode 2: ** Après avoir installé le package JAR directement à partir du référentiel Maven, configurez le fichier pom.xml comme suit:

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
        </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls.free</artifactId>
        <version>2.2.0</version>
    </dependency>
</dependencies>

** Ajouter une formule **

import com.spire.xls.*;

public class InsertFormulas {

    public static void main(String[] args) {

        //Créer un objet Workbook
        Workbook workbook = new Workbook();

        //Obtenez la première feuille de calcul
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Déclarez deux variables
        int currentRow = 1;
        String currentFormula = null;

        //Définir la largeur de la colonne
        sheet.setColumnWidth(1, 26);
        sheet.setColumnWidth(2, 16);

        //Écrire des données de test dans des cellules
        sheet.getCellRange(currentRow,1).setValue("Testez les données:");
        sheet.getCellRange(currentRow,2).setNumberValue(1);
        sheet.getCellRange(currentRow,3).setNumberValue(2);
        sheet.getCellRange(currentRow,4).setNumberValue(3);
        sheet.getCellRange(currentRow,5).setNumberValue(4);
        sheet.getCellRange(currentRow,6).setNumberValue(5);

        //Écrire dans un texte
        currentRow += 2;
        sheet.getCellRange(currentRow,1).setValue("équation:") ; ;
        sheet.getCellRange(currentRow,2).setValue("résultat:");

        //Formater la cellule
        CellRange range = sheet.getCellRange(currentRow,1,currentRow,2);
        range.getStyle().getFont().isBold(true);
        range.getStyle().setKnownColor(ExcelColors.LightGreen1);
        range.getStyle().setFillPattern(ExcelPatternType.Solid);
        range.getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.Medium);

        //Arithmétique
        currentFormula = "=1/2+3*4";
        sheet.getCellRange(++currentRow,1).setText(currentFormula);
        sheet.getCellRange(currentRow,2).setFormula(currentFormula);

        //Fonction de date
        currentFormula = "=TODAY()";
        sheet.getCellRange(++currentRow,1).setText(currentFormula);
        sheet.getCellRange(currentRow,2).setFormula(currentFormula);
        sheet.getCellRange(currentRow,2).getStyle().setNumberFormat("YYYY/MM/DD");

        //Fonction temps
        currentFormula = "=NOW()";
        sheet.getCellRange(++currentRow,1).setText(currentFormula);
        sheet.getCellRange(currentRow,2).setFormula(currentFormula);
        sheet.getCellRange(currentRow,2).getStyle().setNumberFormat("H:MM AM/PM");

        //Fonction IF
        currentFormula = "=IF(B1=5,\"Yes\",\"No\")";
        sheet.getCellRange(++currentRow,1).setText(currentFormula);
        sheet.getCellRange(currentRow,2).setFormula(currentFormula);

        //Fonction PI
        currentFormula = "=PI()";
        sheet.getCellRange(++currentRow,1).setText(currentFormula);
        sheet.getCellRange(currentRow,2).setFormula(currentFormula);

        //Fonction trigonométrique
        currentFormula = "=SIN(PI()/6)";
        sheet.getCellRange(++currentRow,1).setText(currentFormula);
        sheet.getCellRange(currentRow,2).setFormula(currentFormula);

        //Fonction COUNT
        currentFormula = "=Count(B1:F1)";
        sheet.getCellRange(++currentRow,1).setText(currentFormula);
        sheet.getCellRange(currentRow,2).setFormula(currentFormula);

        //Fonction MAX
        currentFormula = "=MAX(B1:F1)";
        sheet.getCellRange(++currentRow,1).setText(currentFormula);
        sheet.getCellRange(currentRow,2).setFormula(currentFormula);

        //Fonction MOYENNE
        currentFormula = "=AVERAGE(B1:F1)";
        sheet.getCellRange(++currentRow,1).setText(currentFormula);
        sheet.getCellRange(currentRow,2).setFormula(currentFormula);

        //Fonction SUM
        currentFormula = "=SUM(B1:F1)";
        sheet.getCellRange(++currentRow,1).setText(currentFormula);
        sheet.getCellRange(currentRow,2).setFormula(currentFormula);

        //Sauvegarder le document
        workbook.saveToFile("InsertFormulas.xlsx",FileFormat.Version2013);
    }
}

f.jpg

** Lire la formule **

import com.spire.xls.*;

public class ReadFormulas {

    public static void main(String[] args) {

        //Créer un objet Workbook
        Workbook workbook = new Workbook();

        //Charger le document Excel
        workbook.loadFromFile("InsertFormulas.xlsx");

        //Obtenez la première feuille de calcul
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Traverser les cellules de B1 à B13
        for (Object cell : sheet.getCellRange("B1:B13")
                ) {
            CellRange cellRange = (CellRange) cell;

            //Détermine si une cellule contient une formule
            if (cellRange.hasFormula()) {

                //Imprimer des cellules et des formules
                String certainCell = String.format("cellule[%d, %d]Contient la formule:", cellRange.getRow(), cellRange.getColumn());
                System.out.println(certainCell + cellRange.getFormula());
            }
        }
    }
}

rf.jpg

Recommended Posts

Java ajoute et lit des formules Excel
Insertion Java Excel et extraction d'images
Paramètres Java Excel Couleur d'arrière-plan et image d'arrière-plan
Java et JavaScript
XXE et Java
Ajouter, lire et supprimer des commentaires Excel à l'aide de Java
Java ajoute et supprime les filigranes dans les documents Word
Java vrai et faux
[Java] Comparaison des chaînes de caractères et && et ||
Renommer la feuille Java Excel et définir les couleurs des onglets
Java - Sérialisation et désérialisation
timedatectl et Java TimeZone
[Java] Types de variables et types
java (classe et instance)
[Java] Surcharge et remplacement
Etudier Java # 2 (\ marque et opérateur)
Java version 8 et fonctionnalités ultérieures
Java ajoute un tableau au PDF
[Java] Différence entre == et égal
[Java] Classe générique et méthode générique
Programmation Java (variables et données)
Java et Iterator Part 1 External Iterator Edition
Exploitons Excel avec Java! !!
Importer des données Excel avec Java 2
Instructions Java if et switch
Définition et instanciation de classe Java
Java transforme Excel en PDF
Apache Hadoop et Java 9 (partie 1)
[Java] À propos de String et StringBuilder
Importer des données Excel avec Java
Vérification des données Excel d'ajout Java
☾ Instruction Java / Repeat et instruction de contrôle de répétition
Java crée des documents Excel
Méthodes Java et surcharges de méthodes
java Generics T et? Différence
Avantages et inconvénients de Java
java (branchement conditionnel et répétition)
À propos du package Java et de l'importation
Importer des données Excel avec Java 3
[Java] Téléchargez une image et convertissez-la en Base64
Histoire de remplacement C # et Java
Méthodes et classes abstraites Java
Instructions Java while et for
Sortie d'Excel avec des formules avec XlsMapper
Encapsulation Java et getters et setters