数据如何转成html表格、pdf、xmind文件格式下载?
序言
经常在一些报告业务场景,客户常常要求可以实现导出html、pdf、xmind格式的报告文件,生成pdf格式文件,网络上有很多开源的解决方案,但是生成html格式开源免费的解决方案很少,下面我给我大家介绍一下,如何解决这些问题
- 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
每天不断更,精彩不停止,明天见,我是行者
记得留个关注、点赞、评论哟,让我们一起去看星辰大海,品味代码人生