zoukankan      html  css  js  c++  java
  • FreeMarker导出word无法打开

    问题描述

    使用freemarker导出word,打开时提示“很抱歉,无法打开xxxx.docx,因为内容有问题”。

    原因

    生成的docx文件中存在一个条形图,且条形图的数据量超过6个,但是word中生成条形图的颜色只有6种,因此在设置颜色图例时只能是1-6循环,不在该范围的数字会导致内容有问题。

    解决方案

    将docx文件修改后缀名为zip文件,解压后,找到../word/charts/chart1.xml文件,打开该文件,查找<c:ser></c:ser>标签,条形图中的每一行代表一个<c:ser>标签,在该标签内查找如下内容:

    <a:solidFill>
    	<a:schemeClr val="accent1"/>
    </a:solidFill>
    

    accent1后边的数字1即为要修改的内容,按照<c:ser>标签的顺序,从1-6循环即可。
    模板如下所示:

    <#if voList?? && voList?size gt 0>
    <#list vo as item>
    <!-- 省略部分内容 -->
    <a:solidFill>
    	<#if item_index lt 6>
    		<a:schemeClr val="accent${item_index+1}"/>
    	<#else>
    		<a:schemeClr val="accent${item_index%6+1}"/>
    	</#if>
    </a:solidFill>
    <!-- 省略部分内容 -->
    </#list>
    </#if>
    ```
  • 相关阅读:
    __weak与__block修饰符区别
    Socket 记录
    Python yaml文件中文读取写入
    Xshell 连接 本地虚拟机
    MySQL查询学生表
    Python Excel读写操作
    pytest mark标记运行
    pytest 参数化
    pytest xfail参数详解
    pytest 失败截图
  • 原文地址:https://www.cnblogs.com/ybyn/p/15152337.html
Copyright © 2011-2022 走看看