• java POI HTML转Word 两种方式


    说明,不论使用哪种方式,都不能引用CSS来渲染样式,而是使用style,或者将样式放在当前页面的<style></style>中

    方法一、

    1、引用的jar包

    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>4.1.0</version>
    </dependency>

    2、核心代码

    String html = "<div>测试内容</div";

    POIFSFileSystem poifs = null;
    FileOutputStream ostream = null;
    ByteArrayInputStream bais = null;
    String uuid = "测试.doc";
    File file = null;

    try {
      //HTML内容必须被<html><body></body></html>包装
      fileParam.setcContent("<html><body>" + html + "</body></html>");
      byte[] b = fileParam.getcContent().getBytes();
      bais = new ByteArrayInputStream(b);
      poifs = new POIFSFileSystem();
      DirectoryEntry directory = poifs.getRoot();
      //WordDocument名称不允许修改
      directory.createDocument("WordDocument", bais);
      ostream = new FileOutputStream(uuid);
      poifs.writeFilesystem(ostream);//当前目录下就生成了一个测试.doc的文档
    } catch (Exception e) {
      logger.error("exception is {}", e);
    } finally {
      IOUtils.closeQuietly(poifs);
      IOUtils.closeQuietly(ostream);
      IOUtils.closeQuietly(bais);
      try {
        FileUtils.forceDelete(file);
      } catch (Exception e2) {
      }
    }

    方法二

     /**
         * word格式html的标签头
         */
        public static final String HTML_TAG_BGN = "<html xmlns="http://www.w3.org/TR/REC-html40" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"><head><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 12" /><meta name="Originator" content="Microsoft Word 12" /> <!--[if gte mso 9]><xml><w:WordDocument><w:View>Print</w:View></w:WordDocument></xml><[endif]-->";
        
    
    public filePath downloadWordReport(String htmlForPrint) {
            try {
                String wordString = htmlForPrint.replaceAll("<head>", "").replaceAll("<html>", HTML_TAG_BGN );
                String fileName = new String("测试文件.doc".getBytes(), "UTF-8");
                //上传文件方法
                return this.upload(new ByteArrayInputStream(wordString.getBytes()), fileName);
    
            } catch (Exception e) {
                return null;
            }
        }
    

      

  • 相关阅读:
    01 Go 1.1 Release Notes
    Go 1 Release Notes
    go语言版本变化
    npm install的时候出现unexpected end of file错误提示时的解决办法
    Intellij IDEA注册激活破解
    vsCode如何从github拉取项目
    IDEA为了使用方便,需要改的几条配置
    IntelliJ IDEA 下的svn配置及使用
    intellij idea 的全局搜索快捷键方法
    Interllij IDEA中启动web项目
  • 原文地址:https://www.cnblogs.com/jiehanshi/p/11121782.html
Copyright © 2020-2023  润新知