版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35001776/article/details/83621430
maven依赖:
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.4.01</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.0.0</version>
</dependency>
代码:
private static void excel() {
try (FileInputStream fis = new FileInputStream("d:\\in.xlsx");
FileOutputStream fos = new FileOutputStream("d:\\out.xlsx")) {
// 输入
XSSFWorkbook in = new XSSFWorkbook(fis);
XSSFSheet sheetIn = in.getSheetAt(0);
//输出
XSSFWorkbook out = new XSSFWorkbook();
XSSFSheet sheetOut = out.createSheet("one");
//获取表格最后一行的行数(从0开始)
int rowNum = sheetIn.getLastRowNum();
for (int i = 0; i <= rowNum; i++) {
//获取指定行的列数
XSSFRow row = sheetIn.getRow(i);
XSSFCell c = row.getCell(0);
//获取指定列的内容,先按照字符串取,报异常在按照number取
String one;
try {
one = c.getStringCellValue();
} catch (Exception e) {
one = c.getRawValue();
}
XSSFCell c1 = row.getCell(1);
String two = c1.getStringCellValue();
//正则格式过滤
Matcher matcher = PATTERN_TWO.matcher(two);
two = matcher.replaceAll("");
two = clearFormat(two);
//输出创建行
XSSFRow rowOut = sheetOut.createRow(i);
XSSFCell co = rowOut.createCell(0);
co.setCellValue(one);
XSSFCell co1 = rowOut.createCell(1);
co1.setCellValue(two);
}
out.write(fos);
in.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}