跳到主要内容

表格变量类型

表格表示一张二维表,内部是 .NET DataTable。像带标题行的工作表:纵向是列,横向是一行记录。

本功能仍是预览,遇到问题欢迎反馈。

常见两种用法:

  1. 在 Quicker 里管理表数据:预先定义列名、类型、编辑方式。
  2. 从数据库、CSV、Excel 读进来临时用:不必先定义列。

相关模块:表格数据操作数据库查询

管理表格数据

创建或编辑表格变量时,点「表格设置...」打开列设置。

在字段窗口里添加、编辑或删除列:

编辑单列:

「基础信息」管类型和限制;「编辑设置」管添加/编辑行时的界面(类似表单)。

含义
列名内部名,表达式里用这个。建议英文。
标题界面上显示的名字
自动计算公式按其它列生成本列。对应 DataColumn.Expression,直接写 price * 0.0862price + tax,不要写 $=

扩展设置(写在列的扩展参数里):

  • image:50:在查看/编辑数据窗口用缩略图显示该列(文件路径或网址),数字是宽度;双击看大图。
  • link::把单元格当路径或网址打开。
  • link:格式化字符串:用 {0} 代表单元格值,如 link:https://www.baidu.com/s?wd={0}
  • link:sp:子程序名:点击后调子程序,单元格值进 input,当前行进 row(词典)。子程序尽量别再弹窗,以免死锁。

临时存表

不管理数据时可以不定义列,只用来接查询结果。

加载:用表格数据操作读 Excel / CSV / JSON,或用数据库查询把结果写入表格变量。

遍历:用「每个」,列表参数写 $= {表格}.Rows

每次循环把一行放进「项」。变量可以是词典或对象:赋给词典会自动转换;赋给对象时内部是 DataRow。两种都能用 行变量["列名"] 取列。

不要在循环里改当前表。需要改原表时,用 $= ({表格}.Copy()).Rows 先复制再循环。

限制与排障

  • 表格设计成读出来后只改内容,不能把别的值整体赋给表格变量,也不能靠状态存取整表写回去。
  • 当状态存时用 JSON。
  • 循环中改当前表会出错,先 .Copy()

相关链接

更新于