跳到主要内容

表格数据操作

对表格变量做读写或更新。表格变量本身见 表格变量类型

当前模块定义

sys:tableoperation计算与比较Action
标准模块
输入 21 · 输出 10 · 枚举 2

输入参数

  • 表格变量tableTable必填

    要操作的表格变量

    填写 UseVarOnly
  • 操作类型typeEnum必填
    填写 固定输入默认 info
    13 个选项获取信息、添加行、更新行
    获取信息默认info
    添加行addRow
    更新行update
    查看或编辑数据manage
    查询或筛选行(Selectselect
    清除所有行clear
    删除符合条件的行deleteRows
    删除列deleteColumns
    从CSV文本加载数据importCsv
    从Json文本加载数据importJson
    从Excel工作表加载数据importExcel
    导出文本数据export_text
    导出Excel文件exportExcel
  • 行数据rowDataDict可选

    包含行数据的词典;更新行时,仅包含要更新的列的内容。

    填写 输入或变量条件 仅:addRow, update
  • 文本数据dataTextText可选

    CSV/Json格式的文本内容

    填写 输入或变量条件 仅:importCsv, importJson
  • 筛选表达式filterExpressionText可选
    填写 输入或变量条件 仅:select, exportExcel, export_text, deleteRows, update
  • 要删除的列deleteColumnsText可选

    可选。逗号','或分号';'隔开的列名,"*"表示删除所有列,"!列1,列2..."表示保留指定的列,删除其余的。

    填写 输入或变量条件 仅:deleteColumns
  • 排序sortText可选
    填写 输入或变量条件 仅:select, exportExcel, export_text, manage
  • 导出的列exportColumnsText可选

    可选。逗号','或分号';'隔开的列名。留空时导出所有列。

    填写 输入或变量条件 仅:exportExcel, export_text
  • Excel文件路径excelFilePathText可选
    填写 输入或变量条件 仅:importExcel, exportExcel
  • Excel工作表名sheetNameText可选

    如果未指定,则取第一个工作表。工作表首行为标题行。

    填写 输入或变量条件 仅:importExcel, exportExcel
  • 标题行号startRowNumInteger必填

    标题行的行号(从1开始)。当前面有表头之类的内容时,行号会变大。

    填写 输入或变量条件 仅:importExcel默认 1
  • 选择模式gridSelectionModeEnum可选

    注:单元格模式不支持返回选择的行。

    填写 固定输入条件 仅:manage默认 Cells
    5 个选项单元格(类似Excel、行:0行或1行、行:1行(必选
    单元格(类似Excel默认Cells
    行:0行或1行OneRow
    行:1行(必选OneRowRequired
    行:0、1或多行Rows
    行:一行或多行(必选RowsRequired
  • 清除已有的行clearOldRowsBoolean可选

    加载数据之前是否清除现有的行数据

    填写 固定输入条件 仅:importCsv, importJson默认 true
  • 只读模式isReadOnlyBoolean可选

    是否以只读模式打开

    填写 固定输入条件 仅:manage默认 false
  • 窗口标题windowTitleText可选
    填写 固定输入条件 仅:manage默认 表格数据
  • 帮助文本helpTextText可选
    填写 固定输入条件 仅:manage
  • 使用列标题而非列名作为导出数据的标题useColumnTitleBoolean可选
    填写 固定输入条件 仅:exportExcel, export_text默认 false
  • CSV分隔符csvDelimiterText可选

    导出或导入CSV数据时使用的字段分隔符。使用'\t'表示Tab。

    填写 固定输入条件 仅:export_text, importCsv默认 ,
  • 窗口尺寸/位置winSizeText可选

    设置选择窗口的最大尺寸,格式为:宽度,高度。支持像素数值或屏幕宽高百分比,详情请参考模块文档。

    填写 固定输入条件 仅:manage
  • 是否置顶显示topMostBoolean可选

    是否置顶显示窗口

    填写 输入或变量条件 仅:manage默认 false
  • 失败后停止stopIfFailBoolean可选

    失败后是否停止动作

    填写 固定输入默认 true

输出参数

  • 是否成功isSuccessBoolean

    操作是否成功

  • 行数rowCountInteger

    表格内的数据行数

  • 影响行数affectedRowCountInteger

    更新或删除、筛选的行数

    条件 仅:exportExcel, export_text, deleteRows, update
  • 行列表rowsObject

    符合条件的行的数组

    条件 仅:select, info
  • 列的列表columnsObject

    表格的列的信息列表(DataTable.Columns)

    条件 仅:info
  • 第一行/结果行firstRowObject

    第一个符合条件的行或新添加的行,可输出为词典对象

    条件 仅:select, addRow
  • 选择的行列表selectedRowsObject

    选择的所有行的列表

    条件 仅:manage
  • CSV格式文本csvExportDataText
    条件 仅:export_text
  • Json格式文本jsonExportDataText
    条件 仅:export_text
  • 是否确认isConfirmedBoolean

    是否点击了确认按钮

    条件 仅:manage

概述

先选 表格变量操作类型,再按类型填写附加参数。输出随类型变化。

表格数据操作

表格变量的相关处理操作
表格变量
table
要操作的表格变量
操作类型
是否成功
-- 选择变量 --
操作是否成功
行数
rowCount
表格内的数据行数
行列表
-- 选择变量 --
符合条件的行的数组
列的列表
-- 选择变量 --
表格的列的信息列表(DataTable.Columns)

参数说明

表格变量:要操作的表格变量。

操作类型:对表格做哪一种。点开下拉看当前全部选项。下面按类型说明。

失败后停止:遇到异常是否中止后续步骤。默认开启。

获取信息

输出:

  • 行列表:表格的 Rows。需输出到对象类型变量。
  • 列的列表:表格的 Columns。需输出到对象类型变量。
  • 行数:表格里的数据行数。

添加行

向表格添加一行。

表格数据操作

表格变量的相关处理操作
表格变量
table
要操作的表格变量
操作类型
行数据
名称:测试条目 说明:这是一条测试数据 图标:fa:Light_Icon 注释:注释信息
包含行数据的词典;更新行时,仅包含要更新的列的内容。
是否成功
isSuccess
操作是否成功
行数
rowCount
表格内的数据行数

行数据:新行各列的词典,键是列名。不必给自动生成的列(如自增列)填值。

输出 第一行/结果行:新添加的行,可输出为词典。

更新行

更新符合条件的行的某些列。1.42.38+。

表格数据操作

表格变量的相关处理操作
表格变量
table
要操作的表格变量
操作类型
行数据
Birth:20
包含行数据的词典;更新行时,仅包含要更新的列的内容。
筛选表达式
Name='王五'
是否成功
isSuccess
操作是否成功
行数
rowCount
表格内的数据行数

行数据:要更新的列和值的词典,可同时改多列。

筛选表达式:决定更新哪些行。

输出 影响行数:实际更新的行数。

查看或编辑数据

弹出窗口查看或修改表格。

只读模式:是否禁止修改。默认关闭。

窗口标题:默认「表格数据」。旧稿未写。

帮助文本:旧稿未写。

窗口尺寸/位置:可选。格式 宽度,高度,可用像素或屏幕宽高百分比。旧稿未写。

是否置顶显示:旧稿未写。

选择模式:单元格类似 Excel;也可按行单选/多选,部分模式必选。单元格模式不支持返回选择的行。旧稿未写。

排序:可选。查看时的排序。旧稿未写。

只读模式

表格数据
Id名称说明图标注释
0测试条目这是一条测试数据fa:Light_Icon注释信息
1测试条目1这是一条测试数据fa:Light_Icon注释信息

要复制内容:拖选单元格后 Ctrl+C,或用右键菜单。

编辑模式

表格数据
添加行(A)
Id名称说明图标注释操作
0测试条目这是一条测试数据fa:Light_Icon注释信息编辑删除
1测试条目1这是一条测试数据fa:Light_Icon注释信息编辑删除

需要事先在表格变量里定义每列的编辑方式。

  • 「添加行」打开表单加新行。
  • 双击单元格或点「编辑」改该行。
  • 「删除」删一行。
  • 「还原」恢复到打开窗口时的数据。

输出:

  • 选择的行列表:当前选中的行。旧稿未写。
  • 是否确认:是否点了确认。旧稿未写。

查询或筛选行(Select)

DataTable.Select() 取出符合条件的行。

筛选表达式:查询条件,语法见 DataView RowFilter Syntax。例如:

  • Id = 10 Id > 20 Id in (1,2,3)
  • Name = '张三' Name <> '李四' Name in ('张三','李四','王五')
  • Date = #2022-12-27#
  • Name LIKE '*str*'(通配符 * 只能在最前或最后,不能在中间)
  • 布尔:AND OR NOT,如 NOT City = 'Tokyo' AND NOT City = 'Paris'
  • 可用 CONVERT 改类型后再比。动态加载的表里数字列有时是文本,要按数字比可以写:CONVERT(序号, System.Int32) > 3

排序:可选。如 Birth DESCId

输出:

  • 行数:表格内的数据行数。
  • 行列表:符合条件的行(DataRow[]),可用 循环:每个 遍历。
  • 第一行/结果行:第一条符合条件的行。

清除所有行

清掉表格里的全部数据。

删除符合条件的行

按筛选条件删行。

表格数据操作

表格变量的相关处理操作
表格变量
table
要操作的表格变量
操作类型
筛选表达式
Name='王五'

输出 影响行数

删除列

表格数据操作

表格变量的相关处理操作
表格变量
table
要操作的表格变量
操作类型
要删除的列
Age,Name
可选。逗号','或分号';'隔开的列名,"*"表示删除所有列,"!列1,列2..."表示保留指定的列,删除其余的。

要删除的列:用逗号 , 或分号 ; 分隔列名。* 表示删全部列;!列1,列2 表示保留这些列、删掉其余的。

从CSV文本加载数据

从逗号分隔文本加载到表格。可先用 读取文件 读入文本(简体中文系统里 CSV 常用 GB2312),再交给 文本数据

表格数据操作

表格变量的相关处理操作
表格变量
table
要操作的表格变量
操作类型
文本数据
text
CSV/Json格式的文本内容
是否成功
-- 选择变量 --
操作是否成功
行数
rowCount
表格内的数据行数

文本数据:CSV 文本。第一行应是列名。

清除已有的行:加载前是否清空现有行。默认开启。

CSV分隔符:字段分隔符,\t 表示 Tab。旧稿未写。

从JSON文本加载数据

从 JSON 加载。其它参数与 CSV 相同(无 CSV 分隔符)。

按 JSON 形状分两种:

  • 数组:对象的 key 当列名。例如 [{"name":"张三","age":20,"City":"BeiJing"},{"name":"李四","age":21,"City":"ShangHai"}]

    nameageCity
    张三20BeiJing
    李四21ShangHai
  • 对象(1.35.38+):自动生成 Key、Value 两列。例如 {"name":"张三","age":20,"City":"BeiJing"}

    KeyValue
    name张三
    age20
    CityBeiJing

从Excel工作表加载数据

表格数据操作

表格变量的相关处理操作
表格变量
table
要操作的表格变量
操作类型
Excel文件路径
 
Excel工作表名
 
如果未指定,则取第一个工作表。工作表首行为标题行。
标题行号
1
标题行的行号(从1开始)。当前面有表头之类的内容时,行号会变大。
是否成功
-- 选择变量 --
操作是否成功
行数
rowCount
表格内的数据行数

工作表里应是规范的二维表。例如标题在第 4 行时,标题行号4,列名取该行(Name / Birth / Position):

行号NameBirthPosition
4(标题行)NameBirthPosition
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 增加更新行、删除行、清空表格、删除列操作类型的说明。

更新于