From 30a53b41f09d2eefd33513a409d472c2166ba1ea Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期三, 10 一月 2024 17:35:03 +0800
Subject: [PATCH] 1. 新增自动评估相关数据源的检查接口

---
 src/main/kotlin/cn/flightfeather/supervision/common/utils/ExcelUtil.kt |   55 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 11 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/common/utils/ExcelUtil.kt b/src/main/kotlin/cn/flightfeather/supervision/common/utils/ExcelUtil.kt
index 8bb0aeb..f69a607 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/common/utils/ExcelUtil.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/common/utils/ExcelUtil.kt
@@ -2,11 +2,11 @@
 
 import org.apache.poi.hssf.usermodel.HSSFWorkbook
 import org.apache.poi.ss.util.CellRangeAddress
-import java.io.File
 import java.io.OutputStream
 import java.time.LocalDate
 import java.util.*
 import kotlin.math.max
+
 
 /**
  * @author riku
@@ -18,7 +18,8 @@
         var text: String,
         var rowSpan: Int = 1,
         var colSpan: Int = 1,
-        var fontColor: Short? = null
+        var fontColor: Short? = null,
+        var isPercent:Boolean = false
     )
 
     /**
@@ -88,15 +89,26 @@
                 when (c) {
                     is MyCell -> {
                         rows.createCell(col).apply {
-                            c.fontColor?.let {fC ->
-                                val font = workbook.createFont()
+                            if (c.isPercent) {
                                 val cellStyle = workbook.createCellStyle()
-
-                                font.color = fC
-                                cellStyle.setFont(font)
+                                val format = workbook.createDataFormat()
+                                cellStyle.dataFormat = format.getFormat("0.0%")
                                 setCellStyle(cellStyle)
+                                val v = c.text.toDoubleOrNull()
+                                if (v != null) {
+                                    setCellValue(v)
+                                }
+                            } else {
+                                c.fontColor?.let {fC ->
+                                    val font = workbook.createFont()
+                                    val cellStyle = workbook.createCellStyle()
+
+                                    font.color = fC
+                                    cellStyle.setFont(font)
+                                    setCellStyle(cellStyle)
+                                }
+                                setCellValue(c.text)
                             }
-                            setCellValue(c.text)
                         }
                         println("write1-1: ${c.text};($rowIndex, ${col})")
                     }
@@ -150,7 +162,28 @@
 
                         when (c) {
                             is MyCell -> {
-                                rows.createCell(map.key).setCellValue(c.text)
+                                rows.createCell(col).apply {
+                                    if (c.isPercent) {
+                                        val cellStyle = workbook.createCellStyle()
+                                        val format = workbook.createDataFormat()
+                                        cellStyle.dataFormat = format.getFormat("0.0%")
+                                        setCellStyle(cellStyle)
+                                        val v = c.text.toDoubleOrNull()
+                                        if (v != null) {
+                                            setCellValue(v)
+                                        }
+                                    } else {
+                                        c.fontColor?.let {fC ->
+                                            val font = workbook.createFont()
+                                            val cellStyle = workbook.createCellStyle()
+
+                                            font.color = fC
+                                            cellStyle.setFont(font)
+                                            setCellStyle(cellStyle)
+                                        }
+                                        setCellValue(c.text)
+                                    }
+                                }
                                 println("write2-1: ${c.text};($_rowIndex, ${map.key})")
                             }
                             is String -> {
@@ -181,11 +214,11 @@
     /**
      * 鑷姩澶勭悊琛屽悎骞舵暟鎹�
      */
-    fun write2(out: OutputStream, heads: List<Array<Any>>, contents: MutableList<Array<Any>>) {
+    fun write2(out: OutputStream, heads: List<Array<Any>>, contents: MutableList<Array<Any>>, sheetName: String = "sheet1") {
 
         val workbook = HSSFWorkbook()
 
-        write(heads, contents, workbook)
+        write(heads, contents, workbook, sheetName)
 
         workbook.write(out)
         workbook.close()

--
Gitblit v1.9.3