文本样式:(使用正则表达式替换为每一行最多有一个冒号)
1.
机构名称:AAAAA
许可证号:BBBBB
住所:CCCCC
邮编:DDDDD
法定代表人:EEEEE
电话:11111111
业务范围:FFFFF
执业司法鉴定人:GGGGG
2.
机构名称:AAAAAA
许可证号:BBBBBB
住所:CCCCCC
邮编:DDDDDD
法定代表人:EEEEEE
电话:111111111
业务范围:FFFFFF
执业司法鉴定人:GGGGGG
代码:
package com.xinyongyuan.toexcel;
import java.io.File;
import java.util.List;
import org.apache.poi.openxml4j.util.ZipSecureFile;
import cn.hutool.core.io.FileUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
/**
* 提取txt文档中以冒号分隔符区分的信息到excel(前提是使用正则表达式把每一行修改为只有一个冒号)
*
*/
public class App {
public static void main(String[] args) {
File f = new File("C:\\a.txt");
List<String> lines = FileUtil.readLines(f, "UTF-8");
// 通过工具类创建writer
ExcelWriter writer = ExcelUtil.getWriter("C:\\writeTest.xlsx");
ZipSecureFile.setMinInflateRatio(-1.0d);
int x = 0;
int y = 0;
for (String line : lines) {
if (line.contains(":")) {
if (line.contains("执业司法鉴定人")) {
writer.writeCellValue(x, y, line.substring(line.indexOf(":") + 1, line.length()));
// 行号加一
y++;
// 列号归零
x = 0;
} else {
writer.writeCellValue(x, y, line.substring(line.indexOf(":") + 1, line.length()));
// 列号归零
x++;
}
}
}
// 关闭writer,释放内存
writer.close();
}
}
POM.XML
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.0.7</version>
</dependency>
</dependencies>