java html2word/doc

java html2word/doc

昨天公司安排了一个任务,目的是将html转换成word,
直接用word和flt时间不够,几天以后就要上线。。。
我看了几乎全部csdn以及能查到的相关资料。
使用poi,使用flt,但是时间原因没时间做模板用flt了,
poi的相关文档又太少,一头雾水时
今天我测试发现了一个最最最简单完成html2word的方法
记录并且公开,希望能帮到大家和我

最最最简单的,原理篇

偶然测试发现html直接改后缀就可以变成doc,而且可读,但是docx不可以。
直接使用发现图片不显示,测试偶然发现带有http头的img链接是可以显示在doc上的,<img src="http://img13.360buyimg.com/n7/jfs/t1/102900/26/2632/158701/5dd601a5E9ed34588/596e136d4a144cae.jpg"/>
就像这种图片
向京东道歉使用了他的图片做测试哈哈
因为我现在的功能比较简单,于是也没有太多的测试,上一个demo代码

代码篇

import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Text {

    public static void main(String[] args) throws IOException {
        /**
         * 建立一个字符串,里面存放了一个渲染好数据的网页的所有代码
         */
        String html=new String("<!DOCTYPE html>\n" +
                "<html lang=\"en\">\n" +
                "<head>\n" +
                "    <meta charset=\"UTF-8\">\n" +
                "    <title>学生信息表</title>\n" +
                "</head>\n" +
                "<body>\n" +
                "\n" +
                "<table style=\"width: 60%;text-align: center;\" cellspacing=\"2\" cellpadding=\"3\" border=\"1px\">\n" +
                "    <tr>\n" +
                "        <td rowspan=\"5\" style=\"background-color: darkorange\">学生</td>\n" +
                "        <td colspan=\"6\" style=\"background-color: aqua;color: red\">学生信息表</td>\n" +
                "    </tr>\n" +
                "    <tr style=\"background-color: salmon\">\n" +
                "        <td>序号</td>\n" +
                "        <td>姓名</td>\n" +
                "        <td>性别</td>\n" +
                "        <td>年龄</td>\n" +
                "        <td>电话</td>\n" +
                "        <td>住址</td>\n" +
                "\t\t<td>照片</td>\n" +
                "    </tr>\n" +
                "    <tr style=\"background-color: darkgray\">\n" +
                "        <td>1</td>\n" +
                "        <td>张三</td>\n" +
                "        <td>男</td>\n" +
                "        <td>23</td>\n" +
                "        <td>110</td>\n" +
                "        <td>雁塔</td>\n" +
                "\t\t<td><img src=\"http://img13.360buyimg.com/n7/jfs/t1/102900/26/2632/158701/5dd601a5E9ed34588/596e136d4a144cae.jpg\"/></td>\n" +
                "    </tr>\n" +
                "    <tr style=\"background-color: darkgray\">\n" +
                "        <td>2</td>\n" +
                "        <td>张三</td>\n" +
                "        <td>男</td>\n" +
                "        <td>23</td>\n" +
                "        <td>110</td>\n" +
                "        <td>雁塔</td>\n" +
                "\t\t<td><img src=\"img13.360buyimg.com/n7/jfs/t1/102900/26/2632/158701/5dd601a5E9ed34588/596e136d4a144cae.jpg\"/></td>\n" +
                "    </tr>\n" +
                "    <tr style=\"background-color: darkgray\">\n" +
                "        <td>3</td>\n" +
                "        <td>张三</td>\n" +
                "        <td>男</td>\n" +
                "        <td>23</td>\n" +
                "        <td>110</td>\n" +
                "        <td>雁塔</td>\n" +
                "\t\t<td><img src=\"//img13.360buyimg.com/n7/jfs/t1/102900/26/2632/158701/5dd601a5E9ed34588/596e136d4a144cae.jpg\"/></td>\n" +
                "    </tr>\n" +
                "</table>\n" +
                "</body>\n" +
                "</html>" );
        /**
         * 获得字节流并且直接输出就好,注意上面的src一定是带有http开头的,中间的图片会直接显示错误,最下面的写了更是会出现导出的doc打不开。
         */
        byte[] b=html.getBytes("utf-8");
        ByteArrayInputStream bais=new ByteArrayInputStream(b);
        FileOutputStream file = new FileOutputStream("D:/a.doc");
        file.write(b);
        bais.close();
        file.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值