表格视图扩展

表格视图扩展,可以用来直接在ai中显示表格,并可以设置表格样式

前言

本来有个教程,教大家如何显示表格,但是有网友反映还是不够简洁,现在我把这个方法进一步打包成了扩展,真正做到开箱即用。

先上图看看效果如何: 20250303_125549.png

相关代码块

初始化

指定表格要显示在哪个布局之中(可以是垂直布局或者水平布局均可)

不需要垂直滚动布局或者水平滚动布局,因为本扩展可以处理滚动。

设置数据

data需要是一个列表的列表

每次设置数据,会覆盖前面的数据。

设置单个样式

样式设置完全是css的标准,具体请搜索如何写css的样式。

这个可以使用多次,每次设置一个选择器的一个属性。

selector 选择器

attribute 属性名

value 属性值

常用的selector:

需要 selector 说明
1. table 整个表格
2. th 表头
3. tr 所有行
4. td 所有单元格
5. tr:nth-child(1) 第n行 (所有偶数行可以写为tr:nth-child(2n),奇数行就是tr:nth-child(2n+1))
6. td:nth-child(1) 第n列 (奇数偶数列原理同上)
7. #r1c1 第n行第n列的单元格 (注意别漏掉#,因为我已经将每个单元格的id设置为了r1c1格式)

常用的attribute:

序号 属性 说明
1 background-color 背景色
2 color 文本颜色
3 padding 内边距
4 margin 外边距
5 width 宽度
6 height 高度
7 font-size 字号
8 border-width 边框宽度
9 border-color 边框颜色

设置样式表

如果你有很多样式要写,用上面的SetStyle就需要多个,比较麻烦,可以使用这个块,直接把样式表写在文本中。

这个块只能使用一次,后面调用会把前面的覆盖。所以把需要写的样式一次性都写在这里面。

显示表格

在修改数据和设置样式后,必须调用这个showTable,否则样式或数据不更新。

表格显示完成,会引发OnShowTable事件。

设置类

设置javascript

只是插入一段js,并不执行,需要调用ShowTable才会执行。

清除表格

20250303_130222.png

原来设置的所有数据和样式都被清空(仅保留默认的样式)。

清除样式

所有样式被清除

滚动表格

将表格左上角(若可以)滑动到某行某列(让该单元格可见)。

smooth: 是否平滑滚动

滚动完成,会引发OnScroll事件。

运行javascript

js会被立即运行,无需重新调用showTable。

运行完毕,若有返回值,会引发AfterRunJs事件。

使用javascript修改样式

样式会立即执行,无需重新调用showTable。是上面RunJs的重新包装块。

内置常用的样式

返回网页源码 20250303_130253.png

是否包含表头 20250303_130325.png

是否包含表尾 20250303_130343.png

以下块都可以通过SetStyle块来实现,只是为了方便写成内置块。

设置单元格内边距 20250303_130401.png

设置表头(第一行)背景色

目前只支持例如red、green这样,或者#abcdef这种16进制,不支持AppInventer中的颜色。(下同) 20250303_130454.png

设置边框颜色 20250303_130517.png

设置边框宽度 20250303_130544.png

设置所有文本字号

表格显示完成事件

20250303_130636.png

js执行完成事件

20250303_130648.png

表格被点击事件

表格被点击时,返回点击位置的行、列、内容 20250303_130702.png

表格滚动事件

表格滚动时(手动或通过代码)引发 20250303_130725.png

示例

例子1:基本用法

20250303_130748.png 20250303_130804.png

例子2:高亮当前选中单元格,并取消高亮上次单元格

20250303_130817.png

例子3:固定表格第一行。这样在上下滚动时,表头固定在屏幕上方。

同理,固定左侧第一列:

例子4:合并单元格

下载链接

cn.kevinkun.TableViewer.v8.aix

cn.kevinkun.TableViewer.v9.aix

更多讨论,请[查看这里]([FREE] TableViewer - fully style customized to show table data - Extensions - MIT App Inventor Community)