ZK框架学习(二)——ZK Spreadsheet

ZK SpreadSheet简介

ZK SpreadSheet,简称ZSS。它是唯一可嵌入的Java Web应用程序的Ajax组件。它是ZK框架的一个组件,专门用于处理excel文件,加载、生成、编辑、下载等。
https://www.zkoss.org/product/zkspreadsheet

代码剖析

体验

下载Demo工程https://github.com/zzyymaggie/ZK_HelloWorld,按照readme运行和查看结果。

代码结构

解释一下该项目的代码结构。这里可以参考 ZK框架学习(一)的代码剖析。zss只是zk的一个组件,运行框架是一样的。这里只解释差异的部分。
1. pom.xml 增加zss的依赖

        <dependency>
            <groupId>org.zkoss.zss</groupId>
            <artifactId>zss</artifactId>
            <version>${zss.version}</version>
        </dependency>
        <!-- [Optional] Using ZK Spreadsheet EE -->
        <dependency>
            <groupId>org.zkoss.zss</groupId>
            <artifactId>zssex</artifactId>
            <version>${zss.version}</version>
        </dependency>

2.excel加载
2.1 编写zul

<?page title="My First ZK Spreadsheet application" contentType="text/html;charset=UTF-8"?>
<zk>
    <window title="My First ZK Spreadsheet Application" 
    apply="org.sophia.spreadsheet.MyComposer"
        border="normal" height="100%" width="100%">
        <spreadsheet id="ss" height="100%" width="100%"
        maxVisibleRows="150" maxVisibleColumns="40" showContextMenu="false"
         showToolbar="false" showSheetbar="true" showFormulabar="false"/>
    </window>
</zk>
excel文件可以由Compsoer加载,也可以直接在spreadsheet标签中,配置src属性加载。
2.2 编写Composer
public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp);  //wire variables and event listeners
        //access components after calling super.doAfterCompose()
        //import and load the template excel file "/WEB-INF/books/startzss.xlsx"
        Importer importer = Importers.getImporter();
        Book book = importer.imports(getFile(), "sample");
        ss.setBook(book);
    }


    private File getFile() {
        //get a file 
        return new File(WebApps.getCurrent().getRealPath("/WEB-INF/books/startzss.xlsx"));
    }

运行原理

ZK Spreadsheet 组件包括三个关键的部分:

  • 客户端UI
    它是一个网格小部件,你可以就地编辑单元格的内容。
  • 服务端组件
    就像你的Controller那样工作。
  • 包含公式计算引擎的book数据模型
    数据模型存储真正的电子表格数据,公式计算引擎负责解析和计算公式。
发布了37 篇原创文章 · 获赞 9 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/zzyymaggie/article/details/51801877
zk