表格变量类型
表格表示一张二维表,内部是 .NET DataTable。像带标题行的工作表:纵向是列,横向是一行记录。
本功能仍是预览,遇到问题欢迎反馈。
常见两种用法:
- 在 Quicker 里管理表数据:预先定义列名、类型、编辑方式。
- 从数据库、CSV、Excel 读进来临时用:不必先定义列。
管理表格数据
创建或编辑表格变量时,点「表格设置...」打开列设置。
在字段窗口里添加、编辑或删除列:
编辑单列:
「基础信息」管类型和限制;「编辑设置」管添加/编辑行时的界面(类似表单)。
| 项 | 含义 |
|---|---|
| 列名 | 内部名,表达式里用这个。建议英文。 |
| 标题 | 界面上显示的名字 |
| 自动计算公式 | 按其它列生成本列。对应 DataColumn.Expression,直接写 price * 0.0862 或 price + 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()。
相关链接
更新于