我有一个Excel输入文件,需要进行下一个流程处理。当前设置是将Excel导入Azure函数以检索数据以进行处理。
本质上,主要要求之一是使其通用。在分组数据方面通常是通用的。例如,人“ A”想要按一列分组输入文件,但是人“ B”可能想要按另一列分组,人“ C”可能想要按多列分组。有什么建议吗?
要求:根据动态输入对行进行分组(这告诉分组的依据)。当前,它的动态输入方面可以通过任何方式完成(对此部分没有要求,可以是任何格式,也可以是其他任何形式)。
Input File:
| ActivityId | RunbookName | Result | ProjectID | Architect | TimeZone
|------------|---------------------|-------------------|-----------|-----------|----------
| 5271D9E9 | Foo | State 2, Status 1 | 111 | Bob | EST
| 5271D9E9 | Foo | State 2, Status 1 | 111 | Ann | EST
| 5271D9E9 | Bar | State 2, Status 3 | 222 | Mike | PST
| 394B044 | Fooey | State 2, Status 1 | 222 | Mike | PST
| 394B044 | Dooey | State 2, Status 1 | 333 | Bob | EST
| D94321B | Dooey | State 2, Status 1 | 333 | Ann | EST
| 9E4371A | Foo | State 2, Status 1 | 333 | Bob | EST
示例:给定上面的输入,人员“ A”想要RunbookName的单独文件,因此人员“ A”的输出为:
File 1:
| ActivityId | RunbookName | Result | ProjectID | Architect | TimeZone
|------------|---------------------|-------------------|-----------|-----------|----------
| 5271D9E9 | Foo | State 2, Status 1 | 111 | Bob | EST
| 5271D9E9 | Foo | State 2, Status 1 | 111 | Ann | EST
| 9E4371A | Foo | State 2, Status 1 | 333 | Bob | EST
File 2:
| ActivityId | RunbookName | Result | ProjectID | Architect | TimeZone
|------------|---------------------|-------------------|-----------|-----------|----------
| 5271D9E9 | Bar | State 2, Status 3 | 222 | Mike | PST
File 3:
| ActivityId | RunbookName | Result | ProjectID | Architect | TimeZone
|------------|---------------------|-------------------|-----------|-----------|----------
| 394B044 | Dooey | State 2, Status 1 | 333 | Bob | EST
| D94321B | Dooey | State 2, Status 1 | 333 | Ann | EST
File 4:
| ActivityId | RunbookName | Result | ProjectID | Architect | TimeZone
|------------|---------------------|-------------------|-----------|-----------|----------
| 394B044 | Fooey | State 2, Status 1 | 222 | Mike | PST
示例:给定上面的原始输入,人员“ C”可能需要RunbookName AND Architect的单独输出文件,因此输出为:
File 1:
| ActivityId | RunbookName | Result | ProjectID | Architect | TimeZone
|------------|---------------------|-------------------|-----------|-----------|----------
| 5271D9E9 | Foo | State 2, Status 1 | 111 | Bob | EST
| 394B044 | Dooey | State 2, Status 1 | 333 | Bob | EST
File 2:
| ActivityId | RunbookName | Result | ProjectID | Architect | TimeZone
|------------|---------------------|-------------------|-----------|-----------|----------
| 5271D9E9 | Bar | State 2, Status 3 | 222 | Mike | PST
| 394B044 | Fooey | State 2, Status 1 | 222 | Mike | PST
File 3:
| ActivityId | RunbookName | Result | ProjectID | Architect | TimeZone
|------------|---------------------|-------------------|-----------|-----------|----------
| 5271D9E9 | Foo | State 2, Status 1 | 111 | Ann | EST
| D94321B | Dooey | State 2, Status 1 | 333 | Ann | EST
目前,我对这段代码有疑问:
//Get all rows that satisfies queryFilter condition
EnumerableRowCollection results = dataTable.AsEnumerable().Where(x => x.Field<string>("RunbookName") == "RunbookName");
我想实现类似的功能,假设我们知道用户提供的动态输入文件提供的RunbookName数据类型:
//Get all rows that satisfies queryFilter condition
EnumerableRowCollection results = dataTable.AsEnumerable().Where(x => x.Field<dynamic.DataType>(dynamic.ColumnName) == dynamic.ColumnName);
甚至更好地尝试执行以下操作:
//Get all rows that satisfies queryFilter condition
EnumerableRowCollection results = dataTable.AsEnumerable().Where(x => x.Field(dynamic.ColumnName) == dynamic.ColumnName);
感谢您看这个问题。