springboot用Thymeleaf模板改写word xml文件如何修改内部w:val的值?

有一个word导出功能,像普通文本这块用th:text="${xxx}"的方式没问题,但表格中“结果”下面的列是动态的,“结果”需要按照下面列的数量合并单元格
image.png
在word xml中 这段代码<w:gridSpan w:val="3"/>,如何动态修改w:val="3"的值。

<w:tcPr>
    <w:tcW w:w="4610" w:type="dxa"/>
    <w:gridSpan w:val="3"/>
    <w:vAlign w:val="center"/>
</w:tcPr>
阅读 667
1 个回答

使用 Spring Boot 和 Thymeleaf 动态修改 XML 属性值

引入依赖:

pom.xml 文件中添加 Thymeleaf 依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

创建 Thymeleaf 模板:

src/main/resources/templates 目录下创建一个 XML 模板文件,例如 template.xml

<?xml version="1.0" encoding="UTF-8"?>
<w:tcPr xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
    <w:tcW w:w="4610" w:type="dxa"/>
    <w:gridSpan w:val="${gridSpanValue}"/>
    <w:vAlign w:val="center"/>
</w:tcPr>

创建控制器:

在控制器中处理请求并传递动态值:

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class XmlController {

    @GetMapping("/generateXml")
    public String generateXml(@RequestParam("gridSpanValue") int gridSpanValue, Model model) {
        model.addAttribute("gridSpanValue", gridSpanValue);
        return "template";
    }
}

配置 Thymeleaf:

application.properties 文件中配置 Thymeleaf:

spring.thymeleaf.mode=XML
spring.thymeleaf.cache=false

运行应用程序:

启动 Spring Boot 应用程序,并通过访问 http://localhost:8080/generateXml?gridSpanValue=3 来查看生成的 XML。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏