【工作杂记】groupBy排序-操作word

news/2024/9/24 12:20:55/

1.stream 流 groupBy 排序

stream流groupBy默认使用的HashMap,无序的,想要实现有序,需要手动指定接收的map类型

例子:

java">Map<Date, List<OrderVo>> dataMap = voList.stream().sorted(Comparator.comparing(OrderVo::getVestingTime)).collect(Collectors.groupingBy(OrderVo::getVestingTime,LinkedHashMap::word">new,Collectors.toList()));

word_13">2.往word里面写数据

依赖:poi

01.新建一个文档

java">Document document = word">new Document(PageSize.A4);

word_21">02.给一个地址,系统会在这个地址下新建word文档

java">downUrl = "根路径"+ title + ".doc";RtfWriter2.getInstance(document, word">new FileOutputStream(downUrl));

word_26">03.打开word进行填充数据

java">document.word">open(); 

04.往document里面写入数据

java">段落    
Paragraph paragraph = word">new Paragraph("段落内容")
// 段落内容2
paragraph.add("段落内容2");
// 上边距
paragraph.setSpacingBefore(5);
// 下边距
paragraph.setSpacingAfter(5);
// 位置,居中,靠左,靠右
paragraph.setAlignment(Element.ALIGN_CENTER);
// 设置字体
paragraph.setFont();
// 写好的段落加入到文档中
document.add(paragraph);// 字体
Font font1 = FontFactory.getFont("STSong-Light", "Cp1252", 5);
// 字体大小
font1.setSize(10);
// 样式为加粗
font1.setStyle("bold");// 图片
Image image = Image.getInstance(pictureUrl);
// 设置图片宽高
image.scaleAbsolute(120, 100);
document.add(image);// 表格
word">int maxSize = 7; // 一共7列
Table table = word">new Table(maxSize);
word">int widths = 100 / maxSize;
// 设置每列宽度比例
word">int widths1[] = setWordWith(maxSize, widths);
table.setWidths(widths1);
// 占页面宽度比例
table.setWidth(100);
// 居中
table.setAlignment(Element.ALIGN_CENTER);
// 垂直居中
table.setAlignment(Element.ALIGN_MIDDLE);
// 自动填满
table.setAutoFillEmptyCells(true);
// 边框宽度
table.setBorderWidth(1);
table.setPadding(8);//单元格
Cell cell = word">new Cell(p);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setBackgroundColor(Color.WHITE);
// 合并列,单独成一行 这一个格子单独占满一行
cell.setColspan(maxSize);
table.addCell(cell);

05.关闭文档

java">document.close();

代码运行后,文档就会保存在配置的downUrl 下

06.返回给前端

java">File file = word">new File(downUrl);is = word">new BufferedInputStream(word">new FileInputStream(file));os = word">new BufferedOutputStream(response.getOutputStream());response.setCharacterEncoding("utf-8");response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(file.getName(), "UTF-8"));response.setContentLength((word">int) file.length());word">byte[] buffer = word">new word">byte[1024];word">int len = 0;word">while ((len = is.read(buffer)) != -1) {os.write(buffer, 0, len);}os.flush();

http://www.ppmy.cn/news/1434761.html

相关文章

介绍Phi-3:微软重新定义小型语言模型(SLM)的可能性

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

使用spring-ai快速对接ChatGpt

什么是spring-ai 该Spring AI项目旨在简化包含人工智能功能的应用程序的开发&#xff0c;避免不必要的复杂性。 该项目从著名的 Python 项目&#xff08;例如 LangChain 和 LlamaIndex&#xff09;中汲取灵感&#xff0c;但 Spring AI 并不是这些项目的直接移植。该项目的成立…

Linux 深入理解Linux文件系统与日志分析

在Linux系统中&#xff0c;文件名和文件数据是分开存储的 文件数据包含 元信息(即不包含文件名的文件属性) 和 实际数据 文件元信息存储在 inode(索引节点)里&#xff0c; 文件实际数据存储在 block(块)里; 文件名存储在目录块里 查看文件的元信息 stat 文件名 [ro…

pytorch中unsqueeze用法说明

在指定的位置插入一个维度&#xff0c;有两个参数&#xff0c;input是输入的tensor&#xff0c;dim是要插到的维度 需要注意的是dim的范围是[-input.dim()-1, input.dim()1)&#xff0c;是一个左闭右开的区间&#xff0c;当dim为负值时&#xff0c;会自动转换为dim diminput.…

怎样用PHP语言实现远程控制三路开关

怎样用PHP语言实现远程控制三路开关呢&#xff1f; 本文描述了使用PHP语言调用HTTP接口&#xff0c;实现控制三路开关&#xff0c;三路开关可控制三路照明、排风扇等电器。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称厂商1智能WiFi墙…

Go源码--Strings库

1. 简介 strings库 存储了 一些针对 字符串的具体操作 其 代码短小精悍 可以学习到很多编程的思路 尤其是 涉及到字符串使用性能的方面&#xff0c;其源码库有好多的优秀案例可以学习。向强者对齐不一定成为强者&#xff0c;但向弱者对齐一定变为弱者。 介绍思路是先介绍 stri…

怎么通过PHP语言实现远程控制门锁

怎么通过PHP语言实现远程控制门锁呢&#xff1f; 本文描述了使用PHP语言调用HTTP接口&#xff0c;实现控制门锁&#xff0c;通过智能出门开关&#xff0c;配合普通的电插锁、电磁锁&#xff0c;来实现门禁控制。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应…

多模态模型和大型语言模型(LLM):概念解析与实例探究

在人工智能的世界中&#xff0c;我们经常遇到各种模型来解决不同类型的问题。最近&#xff0c;特别引人注意的是多模态模型和大型语言模型&#xff08;LLM&#xff09;。尽管这两种模型都是AI技术的当前前沿&#xff0c;但它们在功能和设计上有显著差异。本文旨在阐释这两种模型…