使用freemarker导出word,wps可以打开,office打不开问题
2017-09-20 16:01
2311 查看
在不导入数据的情况下,如果模板本身是可以打开的,那么这个问题就很有可能是传入的数据里包含 html代码、图片等特殊的数据,导致office打开失败,可以用工具类将数据中的特殊符号等清除。
public static String clearHtmlCode(String htmlCode) {
htmlCode = htmlCode.replaceAll("\t", "").replaceAll("\r\n", "").replaceAll("\n", "");
htmlCode = htmlCode.replaceAll("<SCRIPT(.[^(</SCRIPT>)]*)</SCRIPT>", "");
htmlCode = htmlCode.replaceAll("<script(.[^(</script>)]*)</script>", "");
htmlCode = htmlCode.replaceAll("<(.[^>]*)>", "");
htmlCode = htmlCode.replaceAll(" ", "");
return filter(htmlCode);
}
public static String filter(String value) {
if (value == null || value.length() == 0) {
return value;
}
StringBuffer result = null;
String filtered = null;
for (int i = 0; i < value.length(); i++) {
filtered = null;
switch (value.charAt(i)) {
case 60: // '<'
filtered = "<";
break;
case 62: // '>'
filtered = ">";
break;
case 38: // '&'
filtered = "&";
break;
case 34: // '"'
filtered = """;
break;
case 39: // '\''
filtered = "'";
break;
}
if (result == null) {
if (filtered != null) {
result = new StringBuffer(value.length() + 50);
if (i > 0) {
result.append(value.substring(0, i));
}
result.append(filtered);
}
} else if (filtered == null) {
result.append(value.charAt(i));
} else {
result.append(filtered);
}
}
return result != null ? result.toString() : value;
}
public static String clearHtmlCode(String htmlCode) {
htmlCode = htmlCode.replaceAll("\t", "").replaceAll("\r\n", "").replaceAll("\n", "");
htmlCode = htmlCode.replaceAll("<SCRIPT(.[^(</SCRIPT>)]*)</SCRIPT>", "");
htmlCode = htmlCode.replaceAll("<script(.[^(</script>)]*)</script>", "");
htmlCode = htmlCode.replaceAll("<(.[^>]*)>", "");
htmlCode = htmlCode.replaceAll(" ", "");
return filter(htmlCode);
}
public static String filter(String value) {
if (value == null || value.length() == 0) {
return value;
}
StringBuffer result = null;
String filtered = null;
for (int i = 0; i < value.length(); i++) {
filtered = null;
switch (value.charAt(i)) {
case 60: // '<'
filtered = "<";
break;
case 62: // '>'
filtered = ">";
break;
case 38: // '&'
filtered = "&";
break;
case 34: // '"'
filtered = """;
break;
case 39: // '\''
filtered = "'";
break;
}
if (result == null) {
if (filtered != null) {
result = new StringBuffer(value.length() + 50);
if (i > 0) {
result.append(value.substring(0, i));
}
result.append(filtered);
}
} else if (filtered == null) {
result.append(value.charAt(i));
} else {
result.append(filtered);
}
}
return result != null ? result.toString() : value;
}
相关文章推荐
- 使用freemarker导出EXCEL WPS可以打开EXCEL2016打不开问题解决
- Java 使用Freemarker导出word 文档,解决当一段内容中既有文字又有图片的问题
- 通过freemarker生成一个word,解决生成的word用wps打开有问题的问题,解决出word时中文文件名乱码问题,解决打开出word时打开的word出现问题的问题,出图片,解决动态列表
- Microsoft Office Word 2007 切换窗口后鼠标无法使用问题的解决办法
- 使用 OfficeIntegration.Word 实现lightswitch导出WORD的功能
- 每次打开Word,Excel,均弹出Office安装配置进度问题解决
- C# 导出Word报”无法打开Office open xml文件。因为文件内容有错误“ 解决方法
- word2003打开时出错:您正在处理的信息有可能丢失。Microsoft Office Word可以尝试为您恢复...
- 解决office稿纸加载项,打开word老弹出窗口的问题:
- java使用Freemarker+xml导出word
- 使用 OfficeIntegration.Word 实现lightswitch导出WORD的功能(续)
- freemarker导出word部分电脑出现中文乱码问题的解决
- Microsoft Office Word 2007 切换窗口后鼠标无法使用问题的解决办法
- C# Office开发word导出不完善问题
- FreeMarker导出word文件,\n换行无效的问题解决记录
- Microsoft Office Word 2007 切换窗口后鼠标无法使用问题的解决办法
- Microsoft Office Word 2007 切换窗口后鼠标无法使用问题的解决办法
- 这几天我写了一个类库,可以提供office编程时使用Word, Excel,PowerPoint等的保存后事件DocumentAfterSave
- 使用word也可以快速生成表格的问题
- 2009/12/11 Office 使用RMS 认证出现问题,office 不能开正常打开加密文档,同时不能再加密文档