循环通过csv

时间:2009-07-13 01:19:55

标签: powershell

只是想知道我是否可以在powershell中执行此操作,甚至是c#/ vb.net命令行程序。

我的数据如下:

alt text
(来源:kalleload.net

我有一个团队表。它看起来像这样:

| id | teamname | teamcity |

所以例如,C2的值为“Atlanta Braves”。我需要把它分成“亚特兰大”和“勇敢者”。数据是一致的。例如“纽约大都会队”实际上是“NewYork Mets”。

所以我需要通过C和D列并插入所有团队(没有重复的数据库)。

4 个答案:

答案 0 :(得分:4)

一行PowerShell将读取CSV文件并为每个主页和离队团队列表创建一个自定义对象(具有城市名称和团队名称的属性)。管道中的最后一个命令将消除重复项。

$TeamsAndCities = import-csv -path c:\mycsvfile.csv | foreach-object { $_.away, $_.home | select-object @{Name='City';Expression={$_.split(' ')[0]}}, @{Name='Team';Expression={$_.split(' ')[1]}} } | select-object -unique

您也可以从PowerShell进行数据库访问,但这可能适用于一个新问题,其中包含有关您要连接的数据库的更多详细信息。

答案 1 :(得分:0)

我很少在VBA / VB中编码,但...... 像

这样的东西
Dim rngAwayTeam As Range, rngHomeTeam As Range
set rngAwayTeam = Worksheets("YourWorksheet").Range("C2")
set rngHomeTeam = Worksheets("YourWorksheet").Range("D2")
Dim rowOffset As Integer
rowOffset = 1
Do While (rngAwayTeam.Offset(rowOffset,1).Text <> "") 
  'Do something with rngAwayTeam.Offset(rowOffset,1).Text
  'and rngHomeTeam.Offset(rowOffset,1).Text
  rowOffset = rowOffset + 1
Loop

我还有其他方法可以确定,但是,这就是我要做的事情。

答案 2 :(得分:0)

是的,这是一个excel宏。同样,我很少使用VBA或.Net,只是尽力帮助你尽我所能。您可以将C#COM对象用于数据库方面。 (还是新的,不能发表评论。)

答案 3 :(得分:0)

您可以很容易地在C#控制台应用程序中执行此操作。 您所要做的就是遍历文件中的每一行,使用逗号(,)上的split将其添加到数组中。

然后,您可以使用数组显示值或检索行上的特定值。