java POI Excel单元格内容换行
pom.xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
核心代码
@RestController
public class MyController {
@RequestMapping("/ip/v5")
public void getExcel(HttpServletResponse response) throws IOException {
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("this is 单元格第1行");
arrayList.add("this is 单元格第2行");
arrayList.add("this is 单元格第3行");
arrayList.add("this is 单元格第4行");
XSSFWorkbook workBook = new XSSFWorkbook();
XSSFSheet sheet = workBook.createSheet();
workBook.setSheetName(0, "ip-v4表");
XSSFCellStyle cs = workBook.createCellStyle(); // 换行的关键,自定义单元格内容换行规则
cs.setWrapText(true);
String fileName = "china-ip-v4" + ".xls";// 设置要导出的文件的名字
String[] headers = { "掩码" };
XSSFRow titleRow = sheet.createRow(0);
// 在excel表中添加表头
for (int i = 0; i < headers.length; i++) {
titleRow.createCell(i).setCellValue(headers[i]);
}
String content = String.join("\n", arrayList);
int rowNum = 1;
XSSFRow row1 = sheet.createRow(rowNum); // 创建一行
XSSFCell cell = row1.createCell(0); // 创建一个单元格
// 如下也是可以的
//cell.setCellValue("this is 单元格第1行 \n this is单元格第2行 \n this is 单元格第3行 \n this is 单元格第4行");
cell.setCellValue(content);
cell.setCellStyle(cs);
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
response.flushBuffer();
workBook.write(response.getOutputStream());
}
}
结果:
poi单元格写值强制换行
String str="强制\r\n换行"
在字符串中间加上\r\n就行了~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。