riku
2021-11-15 1fa0e57df26dcbf9f7c936806b5f4f0744e1d543
src/main/kotlin/com/flightfeather/uav/common/utils/ExcelUtil.kt
@@ -2,6 +2,7 @@
import org.apache.poi.hssf.usermodel.HSSFWorkbook
import org.apache.poi.ss.util.CellRangeAddress
import org.apache.poi.xssf.streaming.SXSSFWorkbook
import java.time.LocalDate
import java.util.*
import kotlin.math.max
@@ -24,7 +25,7 @@
    /**
     * 自动处理行合并数据
     */
    fun write2(heads: List<String>, contents: List<Array<Any>>, workbook: HSSFWorkbook, sheetName:String) {
    fun write2(heads: List<String>, contents: List<Array<Any>>, workbook: SXSSFWorkbook, sheetName:String) {
        val sheet = workbook.createSheet(sheetName)
@@ -152,12 +153,12 @@
    /**
     * 自动处理行合并数据
     */
    fun write(heads: List<Array<String>>, contents: List<Array<Any>>, workbook: HSSFWorkbook, sheetName: String = "sheet1") {
    fun write(heads: List<Array<String>>, contents: List<Array<Any>>, workbook: SXSSFWorkbook, sheetName: String = "sheet1", row: Int = 0): Int {
        val sheet = workbook.createSheet(sheetName)
        println("sheet: $sheetName")
        val sheet = workbook.getSheet(sheetName)?: workbook.createSheet(sheetName)
//        println("sheet: $sheetName")
        var rowIndex = 0
        var rowIndex = row
        heads.forEach {
            val rows = sheet.createRow(rowIndex)
@@ -202,7 +203,7 @@
                            cell[0]
                        }
                    } else {
                        //当数据不是数组时,需要按最大行数合并单元格
                        //当数据不是数组时,根据设置合并
                        if (cell is MyCell) {
                            rowspan = cell.rowSpan
                            colSpan = cell.colSpan
@@ -216,7 +217,7 @@
                when (c) {
                    is MyCell -> {
                        rows.createCell(col).apply {
                            c.fontColor?.let {fC ->
                            c.fontColor?.let { fC ->
                                val font = workbook.createFont()
                                val cellStyle = workbook.createCellStyle()
@@ -299,6 +300,7 @@
//        workbook.close()
//        out.flush()
//        out.close()
        return rowIndex
    }
    private fun getMaxRows(rowArray: Array<Any>): Int {