html动态生成的页面 该如何导入成word呢?

3 篇文章 0 订阅
2 篇文章 0 订阅
这篇博客分享了一个在项目中将动态生成的HTML页面转换为Word文档的方法。通过在后端接收整个HTML内容,然后使用POI库创建WordDocument,解决了因页面动态性而无法直接使用URL转换的问题。在代码示例中,博主展示了如何处理中文编码避免乱码,并提供了一个简单的文件导出流程。注意,为了避免前端下载地址写死,可以考虑其他下载方式。
摘要由CSDN通过智能技术生成

在进行项目中,有一个任务需求是根据从模板提取的html代码生成页面,然后将页面导入成word,由于是根据模板生成的 所以无法就是说利用后台代码 用poi“画出来”,我参考了 很多大神给的思路,这里给一个我自己的小想法吧,首先因为动态生成,所以传递给后台的值不能是url(url传的是静态页面),所以给后台传送整个页面的html 再后台进行处理,这里我给一下我自己代码部分

try {
             if(htmls != null){
                   byte b[] = htmls.getBytes("utf-8");  //这里是必须要设置编码的,不然导出中文就会乱码。
                  
                   ByteArrayInputStream bais = new ByteArrayInputStream(b);//将字节数组包装到流中
                   
                   POIFSFileSystem poifs = new POIFSFileSystem();  
                   DirectoryEntry directory = poifs.getRoot();  
                   DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);
                   
                    //输出文件
                    String fileName="export";
                    request.setCharacterEncoding("utf-8");  
                    response.setContentType("application/msword");//导出word格式
                    response.addHeader("Content-Disposition", "attachment;filename=" +
                             new String( (fileName + ".doc").getBytes(),  
                                     "iso-8859-1"));
                    
                    OutputStream ostream = response.getOutputStream();
                    poifs.writeFilesystem(ostream);  
                    bais.close();  
                    ostream.close();
                    
                
                }
        } catch (Exception e) {
            result = false;
        }
        return result;

 

参考了不少大神关于导入的 博客,这里可能找不到了 抱歉!提示一下,这样写有可能会前台下载地址写死,这里可以参考其他方式 比如利用浏览器默认下载地址,这里我就不详细介绍了 也很简单

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值