# spread-js-table **Repository Path**: sunxuedong/spread-js-table ## Basic Information - **Project Name**: spread-js-table - **Description**: A spreadJS - based table component - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2020-11-16 - **Last Updated**: 2024-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpreadJsTable > 一个基于葡萄城SpreadJS的表格组件 SpreadJsTable依赖使用的SpreadJS版本是13.0.0 对于非SpreadJS 13.0.0的版本,目前没有做兼容。 ## 安装 ### npm 安装 ```shell npm install spread-js-table -S ``` ### script 引入 ```shell ``` ## 快速开始 ### 使用 npm
查看代码

main.js


    import Vue from 'vue'
    import GC from '@grapecity/spread-sheets'
    import '@grapecity/spread-sheets-vue';
    import '@grapecity/spread-sheets-charts';
    import '@grapecity/spread-sheets/styles/gc.spread.sheets.css';
    import '@grapecity/spread-sheets-resources-zh';
    import ExcelIO from '@grapecity/spread-excelio';
    import SpreadJSTable from 'spread-js-table';
    GC.Spread.Common.CultureManager.culture('zh-cn');
    Vue.use(SpreadJSTable, {
      GC,
      ExcelIO
    });
  

demo.vue


    <template>
      <spread-js-table :columns="columns" :data="data">
      </spread-js-table>
    </template>
  

    
  
### 使用 script 引入
查看代码

  <!DOCTYPE html>
    <html>
        
        	test2
        	<link rel="stylesheet" href="http://sunxuedong.gitee.io/library/grapecity/spread-js/13.0.0/spread-sheets/gc.spread.sheets.css">
        	
        		html, body, #app {
        			height: 100%;
        		}
        	
        
        <body>
        	<div id="app">
        		<spread-js-table :data="data" :columns="columns"></spread-js-table>
        	</div>
        	
        	
        	
        	
        	
        	
        	
        	
        	
        </body>
    </html>
  
## SpreadJsTable 表格 ### 基础表格 基础的表格展示用法。 ![基础表格](http://sunxuedong.gitee.io/static-resources/img/spread-js-table/基础表格.png)
查看代码

    <template></template>
        <spread-js-table :columns="columns" :data="data"></spread-js-table>
        </spread-js-table>
    </template>
  

    
  
### 带斑马纹表格 使用带斑马纹的表格,可以更容易区分出不同行的数据。 ![带斑马纹表格](http://sunxuedong.gitee.io/static-resources/img/spread-js-table/带斑马纹表格.png)
查看代码

    <template></template>
        <spread-js-table :columns="columns" :data="data"
            oddRowBackColor="red" evenRowBackColor="green"></spread-js-table>
        </spread-js-table>
    </template>
  

    
  
### 带状态表格 可将表格内容 highlight 显示,方便区分「成功、信息、警告、危险」等内容。 ![带状态表格](http://sunxuedong.gitee.io/static-resources/img/spread-js-table/带状态表格.png)
查看代码

    <template></template>
        <spread-js-table :columns="columns" :data="data"
             @render-row="renderRow"></spread-js-table>
        </spread-js-table>
    </template>
  

    
  
### 固定列 横向内容过多时,可选择固定列,frozenColumnNum决定固定的列数,frozenTrailingColumnNum决定固定尾列的列数。 ![固定列](http://sunxuedong.gitee.io/static-resources/img/spread-js-table/固定列.png)
查看代码

    <template></template>
        <spread-js-table :columns="columns" :data="data" @render-cell="renderCell"
            @button-click="buttonClick" :frozenColumnNum="1" :frozenTrailingColumnNum="1"></spread-js-table>
        </spread-js-table>
    </template>
  

    
  
### 多级表头 数据结构比较复杂的时候,可使用多级表头来展现数据的层次关系。 ![多级表头](http://sunxuedong.gitee.io/static-resources/img/spread-js-table/多级表头.png)
查看代码

    <template></template>
        <spread-js-table :columns="columns" :data="data"></spread-js-table>
        </spread-js-table>
    </template>
  

    
  
### 单选 选择单行数据时使用 Checkbox。 ![单选](http://sunxuedong.gitee.io/static-resources/img/spread-js-table/单选.png)
查看代码

    <template></template>
        <spread-js-table :columns="columns" :data="data"></spread-js-table>
        </spread-js-table>
    </template>
  

    
  
### 全选 选择多行数据时使用 Checkbox。 ![全选](http://sunxuedong.gitee.io/static-resources/img/spread-js-table/全选.png)
查看代码

    <template></template>
        <spread-js-table :columns="columns" :data="data"></spread-js-table>
        </spread-js-table>
    </template>
  

    
  
### 排序 & 筛选(spreadJS 本身具有的功能) ### 表尾合计行 若表格展示的是各类数字,可以在表尾显示各列的合计,可以通过isNeedGather的bool值来决定是否汇总。 ![表尾合计行](http://sunxuedong.gitee.io/static-resources/img/spread-js-table/表尾合计行.png)
查看代码

    <template></template>
        <spread-js-table :columns="columns" :data="data"></spread-js-table>
        </spread-js-table>
    </template>
  

    
  
## SpreadJsTable Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | :---- | :---- | :---- | :---- | :---- | | data | 显示的数据 | array | — | — | | columns | 列头 | array | — | — | | isShowFilteredNumber | 是否显示使用spreadJS过滤后,过滤的数量 | array | — | — | | oddRowBackColor | 奇数行的背景色 | string | — | #dcdcdc | | evenRowBackColor | 偶数行的背景色 | string | — | #ffffff | | frozenColumnNum | 固定表格列的数量,从左边开始 | number | — | 0 | | frozenTrailingColumnNum | 固定表格列的数量,从左边开始 | number | — | 0 | ## SpreadJsTable Events | 事件名 | 说明 | 参数 | | :---- | :---- | :---- | | selection-change | 当选择项发生变化时会触发该事件 | selection | | cell-mouse-enter | 当单元格 hover 进入时会触发该事件 | array | row, column, hitinfo | | cell-mouse-leave | 当单元格 hover 退出时会触发该事件 | row, column, hitinfo | | header-cell-mouse-center | 当列头单元格 hover 进入时会触发该事件 | column, hitinfo | | header-cell-mouse-leave | 列头 | 当列头单元格 hover 退出时会触发该事件 | column, hitinfo | | cell-db-click | 当某一单元格被双击时会触发该事件 | row, column | | row-db-click | 当某一行被双击时会触发该事件 | row, column | | button-click | 当点击单元格button时会触发该事件 | {row, column, text} | | render-row | 当处理表格的每行数据时会触发该事件(可以通过对style对象的属性赋值,达到更改行样式的目的) | {rowIdx, rowData, style} | | render-cell | 当渲染单元格时会触发该事件(可以通过对style对象的属性赋值,达到更改单元格样式的目的) | {rowIdx, colIdx, column, style} | | render-header | 当渲染列头时会触发该事件(可以通过对style对象的属性赋值,达到更改列头单元格样式的目的) | {style, column, colIdx, rowIdx} | ## SpreadJsTable Methods | 方法名 | 说明 | 参数 | | :---- | :---- | :---- | | refresh | 刷新sheet | — | | clearTableCheckStatus | 清空表格的选中状态 | — | | exporting | 导出 | {name:'', data: []} // name:导出文件的名称 data: 导出的数据,默认当前页数据 | ## SpreadTable-column Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | :---- | :---- | :---- | :---- | :---- | | type | 对应列的类型 | string | radio/checkbox | — | | name | column 的 key | string | — | — | | displayName | 显示的标题 | string | — | — | | cellType | 单元格的类型 | object | — | — | | isProtect | 该列是否开启表单保护 | boolean | — | true | | isFilterable | 该列是否有过滤功能 | boolean | — | true | | isNeedGather | 该列是否有汇总功能 | boolean | — | false | | isVisible | 该列是否可见 | boolean | — | true | | children | 多表头的key | boolean | — | — | | wordWrap | 是否允许换行,值为true时,可通过‘\r\n’给文字换行 | boolean | — | false |