数据如何转成html表格、pdf、xmind文件格式下载?

createh55个月前 (02-01)技术教程42

序言

经常在一些报告业务场景,客户常常要求可以实现导出html、pdf、xmind格式的报告文件,生成pdf格式文件,网络上有很多开源的解决方案,但是生成html格式开源免费的解决方案很少,下面我给我大家介绍一下,如何解决这些问题

pdf

  • iText,生成PDF文档,还支持将XML、Html文件转化为PDF文件;
  • Apache PDFBox,生成、合并PDF文档;
  • docx4j,生成docx、pptx、xlsx文档,支持转换为PDF格式。

这些框架都支持,这里不再详细介绍,具体用户可以在github上,进行查阅

html

可以用一些收费的框架,可以做到,比如Aspose,但是在这里介绍一个思路,去解决这个问题,大家肯定对导出excel表格很熟悉把,填充数据与表格,然后还可以设置标头样式与单元格样式,那么我们可以按照这个思路,进行开发一个简易版本的导出html文件。

  • 代码逻辑
@Test
    void listToHtmlTableTest() throws IOException {
        List<String> headers = List.of("Name", "Age", "City");
        List<List<String>> data = List.of(
                List.of("gz", "25", "beijing"),
                List.of("jelly", "30", "he ze")
        );
        //头样式
        String headStyle = "border: 1px solid #000000;";
        //表格样式
        String bodyStyle="border: 1px solid #000000;";
        //转成html标签
        String htmlTable = HtmlTable.convertDataToHtml(headers, data,headStyle,bodyStyle);
        //输出html文件
        String fileName = "output.html";
        try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(fileName))) {
            bufferedWriter.write(htmlTable);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

 public static String convertDataToHtml(List<String> headers, List<List<String>> data,String headStyle,String bodyStyle) {
        StringBuilder html = new StringBuilder();
        html.append("<table>");
        // table headers
        html.append("<thead><tr>");
        for (String header : headers) {
            html.append("<th style=\"").append(headStyle).append("\">").append(header).append("</th>");
        }
        html.append("</tr></thead>");

        // table body
        html.append("<tbody>");
        for (List<String> row : data) {
            html.append("<tr>");
            for (String cell : row) {
                html.append("<td style=\"").append(bodyStyle).append("\">").append(cell).append("</td>");
            }
            html.append("</tr>");
        }
        html.append("</tbody>");
        html.append("</table>");
        return html.toString();
    }代码运行效果
  • 代码运行效果
  • 优化点

可配置样式

导出封装

支持图片

支持模板导出

xmind

开源sdk:https://github.com/xmindltd/xmind-sdk-js

需要前端实现,因为官方没有提供java版本sdk

每天不断更,精彩不停止,明天见,我是行者

记得留个关注、点赞、评论哟,让我们一起去看星辰大海,品味代码人生

相关文章

Hutool Java工具类库导出Excel,超级简单

作者:程序猿的内心独白原文链接:http://suo.im/5Zxx2L前言在开发应用系统的时候,导出文件是必不可放的功能。以前用过POI、easyexcel等工具的导入导出功能,但总感觉太麻烦了,代...

java将百万级别数据导出到Excel中,用时仅需要98941毫秒

程序员创业记跟大家分享一款Excel组件,之所以分享这款,是因为它在处理excel时很方便,我将百万数据导出到excel,耗时仅不用两分钟。poi概述Apache POI是Apache软件基金会的开放...

程序员:超级简单导出Excel 工具,Hutool Java工具类库

前言在开发应用系统的时候,导出文件是必不可放的功能。以前用过POI、easyexcel等工具的导入导出功能,但总感觉太麻烦了,代码特别多,感觉并不是很好用。今天给大家介绍一款新工具,java工具类库H...

【Java技巧】高效数据传输:Java通过绑定快速将数据导出至Excel

前言把数据导出至 Excel 是很常见的需求,而数据的持久化,往往又放在数据库中。因此把数据库中的数据导出到 Excel中,成了非常普遍的一个需求。以关系型数据库为例,数据表是一个二维矩阵,但是为了易...

hutool导入导出excel,效率飞起来,拒绝cell填充

Hutool,A set of tools that keep Java sweet近几年来,很多人吹捧hutool工具类库,github上star数目更是达到了惊人的18.2K,那为什么会受到大家的...

多人同时导出 Excel 干崩服务器!参考阿里大佬给出的解决方案

前言业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比...