5.15. 象转之术の在线Office - 图1象转之术为轮回眼所拥有的忍术之一。发动后可使其他人得到与特定人物相同的相貌并可使用特定人物会的一切术(包括血继限界),但只有本体所有能力的三成,行动受本体控制,永远失去自我意识,查克拉用完后,受控体死亡,死后恢复原貌。

    Version:V1.6 Beta2 新增技能

    本技能用于解决Office这个众所周知的老大难问题.通常小伙伴们手工编码的时候,实现office报表都是,看起来很简单,实际实现起来复杂!如果数据和展现复杂更是令人崩溃.

    常见痛点:

    • 使用POI手工开发时,都是手工凑单元格,凑格式,很难和原始需求文档保持一致.
    • 如果字段成百上千,工作量不说,操作起来很崩溃.
    • 使用IReport或者其它设计器,需要学习成本,没弄过的小伙伴第一次也是崩溃的.

    那么一切从简的Eova会如何解决这一领域的问题,让我们继续一起愉快的玩耍.对复杂Say No!

    亮点:

    • 代码量极少,快速实现复杂自定义报表
    • 在线预览,在线打印,在线下载 三剑合并
    • 多快好省,自行体会..缺点:

    • 可能不支持低版本Office,对WPS更友好(全程基于WPS进行测试)

    • 数据太多会卡死,具体支持多少,自行测试.

    如果你的需求复合上述条件,那么恭喜你,你即将高潮!

    Excel Demo: 高新园评分表需求背景:自行脑补,可支持如下图的效果,即可支持更复杂的表格.5.15. 象转之术の在线Office - 图2

    第一步:准备Excel模版1.使用WPS将高新园评分表.xls另存为高新园评分表.html 下载WPS

    Excel文件中只能存在一个Sheet页,如果有多个则会生成一个目录,请拆分成单个后进行

    5.15. 象转之术の在线Office - 图3

    2.然后将希望动态输出的内容替换成变量(和套JSP页面一个套路) [下载Dreamweaver] (http://www.xiazaiba.com/html/127.html)

    请勿直接在WPS或Office软件中进行,插入的模版语法,保存时会被格式化掉可以使用Dreamweaver(以网页预览方式编辑更方便)注意编码哦,默认转出来的模版都是GB2312,如果要搞成UTF-8 Dreamweaver支持转码(在打开html文件上右键->属性->编码)要点:将字符串换成变量,然后不能动其它字符串,也要保证编码准确.

    模版编辑好的效果如下所示(目前还是Beetl模版语法)5.15. 象转之术の在线Office - 图4

    第二步:新增菜单5.15. 象转之术の在线Office - 图5如上图所示在Eova中配置菜单即可.模版路径是Excel转html模版文件存放的位置.

    第三步:编写Office拦截器详细代码在eova-oss工程中查看

    1. /**
    2. * Office Excel Demo
    3. * @author Jieven
    4. *
    5. */
    6. public class Xls1Intercept extends OfficeIntercept {
    7. @Override
    8. public void init(Controller ctrl, HashMap<String, Object> data) throws Exception {
    9. // 获取业务数据
    10. // 数据整理
    11. // 把数据put到data 即可,和常规页面开发丢到Attribute作用域一样
    12. data.put("x", x);
    13. // Excel html 模版 取值使用 ${x.name} ${x.xxx}
    14. }
    15. }

    第三步:菜单配置业务拦截器5.15. 象转之术の在线Office - 图6

    如果模版已经确定如果查询数据SQL已经确定实现一个自定义报表应该5分钟可以搞定!

    Word Demo: 高新园检查表需求背景:自行脑补,可支持如下图的效果,即可支持更复杂的表格.5.15. 象转之术の在线Office - 图7

    套路同Excel配置,新增菜单时Office 文件类型选 Excel即可

    PS:PDF后续版本提供!

    如果弄PDF仅仅只是为了不让别人编辑,可以直接使用Word然后设置禁止编辑.WPS和Office均可设置限制编辑5.15. 象转之术の在线Office - 图8

    调整默认打开视图为页面模式

    1.修改标签:

    1. <html 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"xmlns="http://www.w3.org/TR/REC-html40">

    2.在之间加入以下文本:

    1. <!--[if gte mso 9]><xml><w:WordDocument><w:View>Print</w:View><w:TrackMoves>false</w:TrackMoves><w:TrackFormatting/><w:ValidateAgainstSchemas/><w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid><w:IgnoreMixedContent>false</w:IgnoreMixedContent><w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText><w:DoNotPromoteQF/><w:LidThemeOther>EN-US</w:LidThemeOther><w:LidThemeAsian>ZH-CN</w:LidThemeAsian><w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript><w:Compatibility><w:BreakWrappedTables/><w:SnapToGridInCell/><w:WrapTextWithPunct/><w:UseAsianBreakRules/><w:DontGrowAutofit/><w:SplitPgBreakAndParaMark/><w:DontVertAlignCellWithSp/><w:DontBreakConstrainedForcedTables/><w:DontVertAlignInTxbx/><w:Word11KerningPairs/><w:CachedColBalance/><w:UseFELayout/></w:Compatibility><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><m:mathPr><m:mathFont m:val="Cambria Math"/><m:brkBin m:val="before"/><m:brkBinSub m:val="--"/><m:smallFrac m:val="off"/><m:dispDef/><m:lMargin m:val="0"/> <m:rMargin m:val="0"/><m:defJc m:val="centerGroup"/><m:wrapIndent m:val="1440"/><m:intLim m:val="subSup"/><m:naryLim m:val="undOvr"/></m:mathPr></w:WordDocument></xml><![endif]-->