小王在财务部做报表,每天要从几十个Excel表格里提取销售数据、去重、算总和,再复制粘贴到汇总表。以前用VBA写脚本,一出错就弹窗报错,还经常卡死。上个月他试着用Kotlin写了段小工具,跑一次只要2秒,还能一键生成带格式的日报PDF。
为什么办公场景里Kotlin越来越香?
它不像Java那么啰嗦,又比Python在JVM上更稳——尤其当你需要调用Apache POI、JFreeChart这些成熟Java库时,Kotlin语法清爽得像写笔记:空安全、类型推导、扩展函数全都有,写个文件读取逻辑三行搞定。
实战:读Excel+统计销售额
假设你有个sales.xlsx,A列是城市,B列是金额。想按城市汇总总销售额,直接上Kotlin(用Apache POI 5.2.4):
import org.apache.poi.ss.usermodel.WorkbookFactory
import java.io.FileInputStream
import kotlin.streams.asSequence
fun main() {
val file = FileInputStream("sales.xlsx")
val workbook = WorkbookFactory.create(file)
val sheet = workbook.getSheetAt(0)
val salesMap = mutableMapOf<String, Double>()
for (row in sheet.iterator().asSequence().drop(1)) { // 跳过标题行
val city = row.getCell(0)?.stringCellValue ?: "未知"
val amount = row.getCell(1)?.numericCellValue ?: 0.0
salesMap[city] = salesMap.getOrDefault(city, 0.0) + amount
}
salesMap.forEach { (city, sum) -> println("$city: ¥${"%.2f".format(sum)}") }
workbook.close()
}运行完直接输出:
北京: ¥128450.60
上海: ¥97320.15
广州: ¥65210.80
再加点“办公味”:自动发邮件+生成图表
把上面的结果塞进Simple Java Mail发邮件,或者用JFreeChart画个柱状图存成PNG,再用itext7生成PDF日报——整套流程可以打包成一个.bat双击运行。同事老李试了下,原来手动干1小时的活,现在喝杯咖啡回来就收到PDF邮箱提醒了。
Kotlin不是只给安卓程序员准备的。只要你常跟Excel、Word、PDF、数据库、定时任务打交道,又不想被VBA语法绕晕,或嫌Python部署环境麻烦,它就是那个“刚刚好”的办公自动化利器。