如何在Jetpack Compose Desktop中用Kotlin读写Excel文件
在Jetpack Compose Desktop中用Kotlin读写Excel文件
1. 依赖配置说明
Jetpack Compose Desktop项目默认使用Gradle构建,因此没有pom.xml(这是Maven的配置文件)。你需要将Apache POI的依赖添加到Gradle构建脚本中,分两种配置格式:
Kotlin DSL(build.gradle.kts)
在脚本的dependencies代码块中添加:
dependencies { // 处理.xls格式文件 implementation("org.apache.poi:poi:5.2.5") // 处理.xlsx格式文件 implementation("org.apache.poi:poi-ooxml:5.2.5") // 保留Compose Desktop基础依赖 implementation(compose.desktop.currentOs) }
Groovy DSL(build.gradle)
如果你的项目使用Groovy格式的Gradle脚本,在dependencies块中添加:
dependencies { // 处理.xls格式文件 implementation 'org.apache.poi:poi:5.2.5' // 处理.xlsx格式文件 implementation 'org.apache.poi:poi-ooxml:5.2.5' // 保留Compose Desktop基础依赖 implementation(compose.desktop.currentOs) }
提示:可以将
5.2.5替换为Apache POI的最新稳定版本,确保两个依赖的版本号一致。
2. 读写Excel的基础示例
读取.xlsx文件
import org.apache.poi.xssf.usermodel.XSSFWorkbook import java.io.FileInputStream fun readXlsxFile(filePath: String) { FileInputStream(filePath).use { fis -> val workbook = XSSFWorkbook(fis) val sheet = workbook.getSheetAt(0) // 获取第一个工作表 for (row in sheet) { row.forEach { cell -> print("${cell.toString()} ") } println() } workbook.close() } }
写入.xlsx文件
import org.apache.poi.xssf.usermodel.XSSFWorkbook import java.io.FileOutputStream fun writeXlsxFile(filePath: String) { val workbook = XSSFWorkbook() val sheet = workbook.createSheet("Sheet1") // 创建表头行 val headerRow = sheet.createRow(0) headerRow.createCell(0).setCellValue("姓名") headerRow.createCell(1).setCellValue("年龄") // 创建数据行 val dataRow = sheet.createRow(1) dataRow.createCell(0).setCellValue("张三") dataRow.createCell(1).setCellValue(25) FileOutputStream(filePath).use { fos -> workbook.write(fos) } workbook.close() }
若要处理.xls格式文件,只需将代码中的
XSSFWorkbook替换为HSSFWorkbook即可。
3. 注意事项
- 确保文件路径正确,Compose Desktop中可通过
System.getProperty("user.dir")获取项目根目录,或直接使用绝对路径。 - 读写文件时推荐使用
use代码块,可自动释放流资源,避免内存泄漏。
内容的提问来源于stack exchange,提问作者Bumba
相关产品推荐
相关产品推荐

