Le document officiel Apache POI Excel actuel (https://poi.apache.org/components/spreadsheet/index.html) explique un mélange d'anciennes et de nouvelles méthodes, et de nombreuses parties étaient difficiles à comprendre, voici donc une description fréquemment utilisée. Je l'ai résumé. Langue kotlin
build.gradle
dependencies {
/*Version stable à partir d'août 2020 4.1.2*/
'ApachePOI'
compile("org.apache.poi:poi:4.1.2")
'Pour créer un fichier xlsx, utilisez le poi ci-dessous-ooxml requis'
compile("org.apache.poi:poi-ooxml:4.1.2")
}
sample.kt
//Créer une entité de classeur XSSF
val workBook = XSSFWorkbook()
//Créer une feuille Excel
val sheet = workBook.createSheet()
sample.kt
//Spécifiez la cellule pour saisir la valeur
//Spécifiez une colonne avec createRow
val row = sheet.createRow(0)
//Spécifiez une ligne avec createCell
val cell = row.createCell(0)
//Remplissez la valeur
cell.setCellValue("tester")
sample.kt
val fileOutputStream = FileOutputStream("test.xlsx")
workBook.write(fileOutputStream)
fileOutputStream.close()
sample.kt
//Créer une instance de style
val style = workBook.createCellStyle()
//Définir la cellule sur jaune
style.fillForegroundColor = (XSSFColor(byteArrayOf(255.toByte(), 255.toByte(), 204.toByte()), null)
//Spécifier le remplissage
style.fillPattern = FillPatternType.SOLID_FOREGROUND
//Styliser la cellule
cell.setCellStyle(style)
sample.kt
//Créer une instance de police
val font = workBook.createFont()
//Définir la taille de la police
font.setFontHeightInPoints(16.toShort())
//Définir le type de caractère
font.fontName = "MS P gothique"
val style = workBook.createCellStyle()
//Ajouter des informations de police au style
style.setFont(font)
Liste des conditions pouvant être définies https://github.com/apache/poi/blob/trunk/src/java/org/apache/poi/ss/usermodel/ComparisonOperator.java
sample.kt
val sheet = workBook.createSheet()
//Générer une instance pour la mise en forme conditionnelle
val sheetCF: SheetConditionalFormatting = sheet.sheetConditionalFormatting
//Définir les conditions: dans ce cas, la valeur est 90%Le suivant
val rule1 = sheetCF.createConditionalFormattingRule(ComparisonOperator.LT, "90%")
//Définissez la police à utiliser dans les conditions ci-dessus(Divers éléments autres que la police peuvent être définis)
val font = rule1.createFontFormatting()
//Définir la police sur rouge
font.fontColor = XSSFColor(byteArrayOf(255.toByte(), 0.toByte(), 0.toByte()), null)
//Définissez la plage de cellules pour laquelle les conditions ci-dessus sont valides(Dans les cas suivants, de la cellule A1 à la cellule A5)
val range = "A1:A5"
//Plusieurs plages peuvent être définies dans le tableau
val regions = arrayOf(
CellRangeAddress.valueOf(range)
)
//Activer la condition
sheetCF.addConditionalFormatting(regions, rule1)
sample.kt
val sheet = workBook.createSheet()
val row = sheet.createRow(0)
val cell = row.createCell(0)
//Cellule A1/Créez une formule qui donne le pourcentage de cellules C1
val formula = "A1/C1"
//Définir la formule dans la cellule
cell.cellFormula = formula
//Activer la formule
sheet.setForceFormulaRecalculation(true)
Recommended Posts