kotlin 导出excel
时间: 2024-01-31 11:11:01 浏览: 218
以下是使用Kotlin导出Excel的示例代码:
```kotlin
import org.apache.poi.ss.usermodel.*
import org.apache.poi.xssf.usermodel.XSSFWorkbook
import java.io.FileOutputStream
fun main() {
// 创建工作簿
val workbook = XSSFWorkbook()
// 创建工作表
val sheet = workbook.createSheet("Sheet1")
// 创建标题行
val headerRow = sheet.createRow(0)
val headerCellStyle = workbook.createCellStyle()
headerCellStyle.fillForegroundColor = IndexedColors.GREY_25_PERCENT.index
headerCellStyle.fillPattern = FillPatternType.SOLID_FOREGROUND
val headerFont = workbook.createFont()
headerFont.bold = true
headerCellStyle.setFont(headerFont)
val headers = arrayOf("姓名", "年龄", "性别")
for (i in headers.indices) {
val cell = headerRow.createCell(i)
cell.setCellValue(headers[i])
cell.cellStyle = headerCellStyle
}
// 添加数据行
val data = arrayOf(
arrayOf("张三", 20, "男"),
arrayOf("李四", 25, "女"),
arrayOf("王五", 30, "男")
)
var rowNum = 1
for (rowData in data) {
val row = sheet.createRow(rowNum++)
var cellNum = 0
for (cellData in rowData) {
val cell = row.createCell(cellNum++)
when (cellData) {
is String -> cell.setCellValue(cellData)
is Int -> cell.setCellValue(cellData.toDouble())
}
}
}
// 调整列宽
for (i in headers.indices) {
sheet.autoSizeColumn(i)
}
// 保存Excel文件
val fileOut = FileOutputStream("output.xlsx")
workbook.write(fileOut)
fileOut.close()
println("Excel文件导出成功!")
}
```
阅读全文
相关推荐















