表格数据操作
对表格变量做读写或更新。表格变量本身见 表格变量类型。
当前模块定义
概述
先选 表格变量 和 操作类型,再按类型填写附加参数。输出随类型变化。
参数说明
表格变量:要操作的表格变量。
操作类型:对表格做哪一种。点开下拉看当前全部选项。下面按类型说明。
失败后停止:遇到异常是否中止后续步骤。默认开启。
获取信息
输出:
添加行
向表格添加一行。
行数据:新行各列的词典,键是列名。不必给自动生成的列(如自增列)填值。
输出 第一行/结果行:新添加的行,可输出为词典。
更新行
更新符合条件的行的某些列。1.42.38+。
行数据:要更新的列和值的词典,可同时改多列。
筛选表达式:决定更新哪些行。
输出 影响行数:实际更新的行数。
查看或编辑数据
弹出窗口查看或修改表格。
只读模式:是否禁止修改。默认关闭。
窗口标题:默认「表格数据」。旧稿未写。
帮助文本:旧稿未写。
窗口尺寸/位置:可选。格式 宽度,高度,可用像素或屏幕宽高百分比。旧稿未写。
是否置顶显示:旧稿未写。
选择模式:单元格类似 Excel;也可按行单选/多选,部分模式必选。单元格模式不支持返回选择的行。旧稿未写。
排序:可选。查看时的排序。旧稿未写。
只读模式
要复制内容:拖选单元格后 Ctrl+C,或用右键菜单。
编辑模式
需要事先在表格变量里定义每列的编辑方式。
- 「添加行」打开表单加新行。
- 双击单元格或点「编辑」改该行。
- 「删除」删一行。
- 「还原」恢复到打开窗口时的数据。
输出:
- 选择的行列表:当前选中的行。旧稿未写。
- 是否确认:是否点了确认。旧稿未写。
查询或筛选行(Select)
用 DataTable.Select() 取出符合条件的行。
筛选表达式:查询条件,语法见 DataView RowFilter Syntax。例如:
Id = 10Id > 20Id in (1,2,3)Name = '张三'Name <> '李四'Name in ('张三','李四','王五')Date = #2022-12-27#Name LIKE '*str*'(通配符*只能在最前或最后,不能在中间)- 布尔:
ANDORNOT,如NOT City = 'Tokyo' AND NOT City = 'Paris' - 可用
CONVERT改类型后再比。动态加载的表里数字列有时是文本,要按数字比可以写:CONVERT(序号, System.Int32) > 3
排序:可选。如 Birth DESC、Id。
输出:
- 行数:表格内的数据行数。
- 行列表:符合条件的行(
DataRow[]),可用 循环:每个 遍历。 - 第一行/结果行:第一条符合条件的行。
清除所有行
清掉表格里的全部数据。
删除符合条件的行
按筛选条件删行。
输出 影响行数。
删除列
要删除的列:用逗号 , 或分号 ; 分隔列名。* 表示删全部列;!列1,列2 表示保留这些列、删掉其余的。
从CSV文本加载数据
从逗号分隔文本加载到表格。可先用 读取文件 读入文本(简体中文系统里 CSV 常用 GB2312),再交给 文本数据。
文本数据:CSV 文本。第一行应是列名。
清除已有的行:加载前是否清空现有行。默认开启。
CSV分隔符:字段分隔符,\t 表示 Tab。旧稿未写。
从JSON文本加载数据
从 JSON 加载。其它参数与 CSV 相同(无 CSV 分隔符)。
按 JSON 形状分两种:
-
数组:对象的 key 当列名。例如
[{"name":"张三","age":20,"City":"BeiJing"},{"name":"李四","age":21,"City":"ShangHai"}]: -
对象(1.35.38+):自动生成 Key、Value 两列。例如
{"name":"张三","age":20,"City":"BeiJing"}:
从Excel工作表加载数据
工作表里应是规范的二维表。例如标题在第 4 行时,标题行号填 4,列名取该行(Name / Birth / Position):
| 行号 | Name | Birth | Position |
|---|---|---|---|
| 4(标题行) | Name | Birth | Position |
| 5 | 李四 | 1995 | 学生 |
| 6 | 王五 | 2000 | 学生 |
| 7 | 张三 | 1990 | 教师 |
Excel文件路径:完整路径。文件当前不能被占用(例如正用 Excel 打开)。
Excel工作表名:留空则读第一个工作表。
标题行号:列名所在行,从 1 计。前面有表头时会大于 1。
导出文本数据
把表格导出为 CSV 或 JSON 文本。
筛选表达式 / 排序 / 导出的列:可选。导出的列用逗号或分号分隔,留空则全部列。旧稿未写「导出的列」。
使用列标题而非列名作为导出数据的标题:旧稿未写。
CSV分隔符:导出 CSV 时的分隔符。
输出 CSV格式文本、Json格式文本、影响行数。
导出Excel文件
把表格写到一个新的 Excel 文件。
Excel文件路径:保存路径。
Excel工作表名:留空则为 Sheet1。
同样可填筛选、排序、导出的列、是否用列标题。
输出
- 是否成功:是否没有遇到异常。
- 行数:表格内的数据行数。
- 其余输出随操作类型变化,见上一节。
限制与排障
Excel 报错 Wrong Local header signature: 0xE011CFD0 时,多半是后缀和实际格式不一致:.xlsx 与 .xls 不能混用。导入 Excel 时文件不能被 Excel 打开占用。筛选表达式里的字符串要用单引号,日期用 #2022-12-27#。
相关链接
更新说明
- 20240227 增加查询筛选时转换数据类型的说明。
- 20240514 增加更新行、删除行、清空表格、删除列操作类型的说明。
更新于