java POI 如何实现Excel单元格内容换行

 更新时间:2021年07月29日 10:38:17   作者:congcongxianshen  
这篇文章主要介绍了java POI 如何实现Excel单元格内容换行的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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就行了~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot 整合Security权限控制的初步配置

    SpringBoot 整合Security权限控制的初步配置

    这篇文章主要为大家介绍了SpringBoot 整合Security权限控制的初步配置实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Java 17的一些新特性介绍

    Java 17的一些新特性介绍

    这篇文章主要介绍了Java 17的一些新特性介绍,Java添加了许多Java开发人员渴望的特性和改进,下文就来学习一下这些特性吧,需要的朋友可以参考一下
    2022-04-04
  • Java中HashSet和LinkedHashSet详解

    Java中HashSet和LinkedHashSet详解

    这篇文章主要介绍了Java中HashSet和LinkedHashSet详解,   HashSet是Set接口的子类,其内部采用了HashMap作为数据存储,HashSet其实就是在操作HashMap的key,HashSet是无序存储的,不能保证元素的顺序;HashSet并没有进行同步处理,因此是线程不安全的,需要的朋友可以参考下
    2023-09-09
  • 深入理解Java编程线程池的实现原理

    深入理解Java编程线程池的实现原理

    这篇文章主要介绍了深入理解Java编程线程池的实现原理,涉及ThreadPoolExecutor类,线程池实现原理及示例等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java中wait与sleep的区别讲解(wait有参及无参区别)

    Java中wait与sleep的区别讲解(wait有参及无参区别)

    这篇文章主要介绍了Java中wait与sleep的讲解(wait有参及无参区别),通过代码介绍了wait() 与wait( long timeout ) 区别,wait(0) 与 sleep(0)区别,需要的朋友可以参考下
    2022-04-04
  • SpringBoot后端进行数据校验JSR303的使用详解

    SpringBoot后端进行数据校验JSR303的使用详解

    这篇文章主要介绍了SpringBoot后端进行数据校验JSR303的使用详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Servlet连接数据库实现用户登录的实现示例

    Servlet连接数据库实现用户登录的实现示例

    本文主要介绍了Servlet连接数据库实现用户登录的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Java之Jackson的基本使用案例讲解

    Java之Jackson的基本使用案例讲解

    这篇文章主要介绍了Java之Jackson的基本使用案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 如何理解Java中基类子对象的构建过程从

    如何理解Java中基类子对象的构建过程从"基类向外"进行扩散的?

    今天小编就为大家分享一篇关于如何理解Java中基类子对象的构建过程从"基类向外"进行扩散的?,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Mybatis与Hibernate的区别

    Mybatis与Hibernate的区别

    以前没怎么用过mybatis,只知道与hibernate一样是个orm数据库框架。随着使用熟练度的增加,发现它与hibernate区别是非常大的感兴趣的朋友通过本文一起学习吧
    2016-01-01

最新评论