Excle文件获取
所需架包:org.apache.poi:poi-ooxml:5.0.0
核心部分:
//文件数据处理
val uploadPath = File.separator + UPLOAD_DIRECTORY
val filename = uploadPath + data.getString("fileName")
//创建输入流
val fis = FileInputStream(File(filename));
//由输入流得到工作簿
val workbook = XSSFWorkbook(fis);
//得到工作表
val sheet = workbook.getSheet("sheet1");
//得到最大行数,下标
val lastRowNum = sheet.getLastRowNum()
log.debug("最大行数:$lastRowNum")
data[ID] = context.user!!.id
for (i in 0..lastRowNum) {
log.debug("循环:$i")
val row = sheet.getRow(i)
//得到最大列数,为实际列数,需要减一
val lastCellNum = row.getLastCellNum()
var smsContent = data.getString("smsContent")
item["phone_package"] = ""
for (j in 0 until lastCellNum) {
log.debug("执行列:$j")
val cell = row.getCell(j)
//将得到的数据类型改为所需要的String,数据类型不符会报错
cell.cellType = CellType.STRING
val cellValue = cell.stringCellValue ?: ""
smsContent = smsContent.replace("[(${(j + 65).toChar()})]", cellValue)
log.debug("处理了变量:{[(${(j + 65).toChar()})]},替换位:$cellValue")
if ((j + 65).toChar().toString() == data.getString("isPhone")) {
if (phone(cellValue)) item["phone_package"] = transition(cellValue)
}
log.debug("发送的号码:${item["phone_package"]}")
}