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);
}
}
** 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());
}
}
}
}
Recommended Posts