diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/engine/EngineFileType.java b/screw-core/src/main/java/cn/smallbun/screw/core/engine/EngineFileType.java index 0514070..47a638f 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/engine/EngineFileType.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/engine/EngineFileType.java @@ -41,7 +41,11 @@ public enum EngineFileType implements Serializable { /** * MD */ - MD(".md", "documentation_md", "Markdown文件"); + MD(".md", "documentation_md", "Markdown文件"), + /** + * EXCEL + */ + XSL(".xls","documentation_xsl","Excel文件"); /** * 文件后缀 diff --git a/screw-core/src/main/java/cn/smallbun/screw/core/process/AbstractProcess.java b/screw-core/src/main/java/cn/smallbun/screw/core/process/AbstractProcess.java index cf78fe8..4b1a8a4 100644 --- a/screw-core/src/main/java/cn/smallbun/screw/core/process/AbstractProcess.java +++ b/screw-core/src/main/java/cn/smallbun/screw/core/process/AbstractProcess.java @@ -221,6 +221,18 @@ public void optimizeData(DataModel dataModel) { columns.forEach(BeanUtils::beanAttributeValueEscapeXml); }); } + if (config.getEngineConfig().getFileType().equals(EngineFileType.XSL)) { + //escape xml + beanAttributeValueReplaceBlank(dataModel); + //columns + tables.forEach(i -> { + //table escape xml + beanAttributeValueReplaceBlank(i); + List columns = i.getColumns(); + //columns escape xml + columns.forEach(BeanUtils::beanAttributeValueReplaceBlank); + }); + } //if file type is markdown if (config.getEngineConfig().getFileType().equals(EngineFileType.MD)) { //escape xml diff --git a/screw-core/src/main/resources/template/freemarker/documentation_xsl.ftl b/screw-core/src/main/resources/template/freemarker/documentation_xsl.ftl new file mode 100644 index 0000000..deefb39 --- /dev/null +++ b/screw-core/src/main/resources/template/freemarker/documentation_xsl.ftl @@ -0,0 +1,101 @@ + + + + + Microsoft Office User + Microsoft Office User + 2020-11-15T08:36:40Z + 2020-11-15T08:46:38Z + 16.00 + + + + + + 16120 + 28240 + 280 + 460 + 1 + False + False + + + + + <#list tables><#items as t> + + + + xu序号 + 名称 + shu数据类型 + chang长度 + shu'z小数值 + yun允许空值 + zhu主键 + mo'ren默认值 + shuo说明 + + <#list t.columns> + <#items as c> + + ${c?index+1} + ${c.columnName!''} + ${c.typeName!''} + ${c.columnSize!''} + ${c.decimalDigits!'0'} + ${c.nullable!''} + ${c.primaryKey!''} + ${c.columnDef!''} + ${c.remarks!''} + + + +
+ + +
+