Excel 相同名称或ID的 内容 合并起来 同列不同内容剃加

先将表格按相同名称或ID进行排序

这样重复的就在相邻的上下行

在后面新建一列

输入  =IF(M2=M3,E2&","&E3,E3)   

M就是相同的内容 E则是我们要合并的内容

相同的名称 这样会有几行 合并和没合并的

再用  =IF(ISNUMBER(FIND(M2,M3)),0,1)

进行区分 相同的进行标记 然后再删去相同的内容

有多行重复的可以用下面的

=IF(COUNTIF($A$1:A1,A2)=0,B2,LOOKUP(1,0/($A$1:A1=A2),$C$1:C1)&"、"&B2)

e2=LOOKUP(1,0/(A:A=D2),C:C)

不同内容后面剃加

=SUMPRODUCT(1/COUNTIF(B$1:B1,B$1:B1))

表格里遇到多个相同字会分隔的 提取第一个字会后面的内容 1000表示提取的长度

=MID(O2,FIND(";",O2)+1,1000)

表格里抓取某字符前内容

=LEFT(O2,FIND(";",O2)-1)

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先需要在项目中引入poi和poi-ooxml的依赖,然后可以通过以下代码来实现导出excel并动态合并相同内容列的单元格: ```java // 创建工作簿 XSSFWorkbook workbook = new XSSFWorkbook(); // 创建工作表 XSSFSheet sheet = workbook.createSheet("Sheet1"); // 创建标题 XSSFRow titleRow = sheet.createRow(0); titleRow.createCell(0).setCellValue("姓名"); titleRow.createCell(1).setCellValue("年龄"); titleRow.createCell(2).setCellValue("性别"); titleRow.createCell(3).setCellValue("地址"); // 创建数据 List<User> userList = getUserList(); int rowIndex = 1; for (int i = 0; i < userList.size(); i++) { User user = userList.get(i); XSSFRow dataRow = sheet.createRow(rowIndex++); dataRow.createCell(0).setCellValue(user.getName()); dataRow.createCell(1).setCellValue(user.getAge()); dataRow.createCell(2).setCellValue(user.getGender()); dataRow.createCell(3).setCellValue(user.getAddress()); // 动态合并相同内容列的单元格 if (i > 0) { User prevUser = userList.get(i - 1); if (user.getName().equals(prevUser.getName())) { sheet.addMergedRegion(new CellRangeAddress( rowIndex - 2, rowIndex - 1, 0, 0)); } if (user.getAge() == prevUser.getAge()) { sheet.addMergedRegion(new CellRangeAddress( rowIndex - 2, rowIndex - 1, 1, 1)); } if (user.getGender().equals(prevUser.getGender())) { sheet.addMergedRegion(new CellRangeAddress( rowIndex - 2, rowIndex - 1, 2, 2)); } if (user.getAddress().equals(prevUser.getAddress())) { sheet.addMergedRegion(new CellRangeAddress( rowIndex - 2, rowIndex - 1, 3, 3)); } } } // 输出Excel文件 FileOutputStream outputStream = new FileOutputStream("users.xlsx"); workbook.write(outputStream); outputStream.close(); ``` 其中,getUserList() 方法可以返回需要导出的数据列表,User 类是一个自定义的实体类,包含了姓名、年龄、性别和地址等属性。在创建数据时,可以将每个属性的值写入相应的单元格中,然后通过判断相邻两的数据是否相同来动态合并相同内容列的单元格。最后,将工作簿输出到文件中即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值