Java SpringBoot导出xmind思维导图

简介: Java SpringBoot导出xmind思维导图

效果

6a8da38b79ef4141a7911f71afab5f65.png这是最终导出的文件


上代码

Maven依赖

 <dependency>
    <groupId>com.github.eljah</groupId>
     <artifactId>xmindjbehaveplugin</artifactId>
     <version>0.8</version>
 </dependency>

代码

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.xmind.core.*;
import java.io.IOException;
import java.util.ArrayList;
/**
 * xmind导出
 *
 * @author wuzhenyong
 * @date 2023/07/06
 */
public class XmindExport {
    public static void main(String[] args) throws CoreException, IOException {
        // 创建工作空间
        IWorkbookBuilder workbookBuilder = Core.getWorkbookBuilder();
        IWorkbook workbook = workbookBuilder.createWorkbook();
        // 获得sheet
        ISheet primarySheet = workbook.getPrimarySheet();
        // 获得根主题
        ITopic rootTopic = primarySheet.getRootTopic();
        // 设置标题
        rootTopic.setTitleText("测试导出思维导图");
        // 正确的逻辑图 org.xmind.ui.logic.right
        rootTopic.setStructureClass("org.xmind.ui.logic.right");
        // 创建所有节点
        ArrayList<ITopic> chapterTopics = new ArrayList<>();
        // 创建一级主题
        ITopic topic = workbook.createTopic();
        // 给主题设置标题名称
        topic.setTitleText("节点一");
        chapterTopics.add(topic);
        // 创建一级主题第二个
        ITopic topic1 = workbook.createTopic();
        // 给主题设置标题名称
        topic1.setTitleText("节点二");
        // 父主题需要直接加到结合里面,后面会一起和跟节点关联
        chapterTopics.add(topic1);
        // 设置二级主题,关联到第二个一级节点
        ITopic topicSecond = workbook.createTopic();
        topicSecond.setTitleText("节点二的耳机节点");
        chapterTopics.get(chapterTopics.size() - 1).add(topicSecond, ITopic.ATTACHED);
        // 给二级节点设置笔记
        IPlainNotesContent plainContent = (IPlainNotesContent) workbook.createNotesContent(INotes.PLAIN);
        String content = "我是笔记内容";
        plainContent.setTextContent(content);
        INotes notes = topicSecond.getNotes();
        notes.setContent(INotes.PLAIN, plainContent);
        // 把所有一级节点都加到根节点上
        chapterTopics.forEach(it ->
                rootTopic.add(it, ITopic.ATTACHED)
        );
        workbook.save("doc/demo.xmind");
    }
}
相关文章
|
28天前
|
缓存 easyexcel Java
Java EasyExcel 导出报内存溢出如何解决
大家好,我是V哥。使用EasyExcel进行大数据量导出时容易导致内存溢出,特别是在导出百万级别的数据时。以下是V哥整理的解决该问题的一些常见方法,包括分批写入、设置合适的JVM内存、减少数据对象的复杂性、关闭自动列宽设置、使用Stream导出以及选择合适的数据导出工具。此外,还介绍了使用Apache POI的SXSSFWorkbook实现百万级别数据量的导出案例,帮助大家更好地应对大数据导出的挑战。欢迎一起讨论!
147 1
|
17天前
|
Java API Apache
|
1月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
352 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
19天前
|
监控 前端开发 Java
Java SpringBoot –性能分析与调优
Java SpringBoot –性能分析与调优
|
20天前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
25 4
|
19天前
|
存储 easyexcel Java
SpringBoot+EasyExcel轻松实现300万数据快速导出!
本文介绍了在项目开发中使用Apache POI进行数据导入导出的常见问题及解决方案。首先比较了HSSFWorkbook、XSSFWorkbook和SXSSFWorkbook三种传统POI版本的优缺点,然后根据数据量大小推荐了合适的使用场景。接着重点介绍了如何使用EasyExcel处理超百万数据的导入导出,包括分批查询、分批写入Excel、分批插入数据库等技术细节。通过测试,300万数据的导出用时约2分15秒,导入用时约91秒,展示了高效的数据处理能力。最后总结了公司现有做法的不足,并提出了改进方向。
|
22天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
27天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
65 2
|
1月前
|
easyexcel Java UED
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。
|
1月前
|
Java BI API
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
这篇文章介绍了如何在Spring Boot项目中整合iTextPDF库来导出PDF文件,包括写入大文本和HTML代码,并分析了几种常用的Java PDF导出工具。
432 0
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具