2009-07-13 185 views
0

只是想知道我是否可以在PowerShell中執行此操作,甚至是c#/ vb.net命令行程序。循環播放csv

我有一個看起來像這樣的數據:

alt text http://www.kalleload.net/uploads/qubtqmuikowt.jpg

我有一個團隊表。它看起來像這樣:

| id | teamname | teamcity |

例如,C2的值爲「亞特蘭大勇士」。我需要把它分成「亞特蘭大」和「勇敢者」。數據是一致的。例如「紐約大都會隊」實際上是「紐約大都會隊」。

所以我需要通過列C和D並插入所有的團隊(沒有重複數據庫)。

+0

根據您的評論如下:它是數據庫還是CSV文件?你打算如何存儲輸出? – 2009-07-13 01:38:12

回答

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的數據庫訪問爲好,但可能是適合與你正在連接到數據庫的一些更詳細的新問題。

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 

還有其他的方法,我敢肯定,但是,這裏是我會做什麼。

+0

這是一個宏的宏?使用C#會更好嗎?所以我可以使用數據類輕鬆更新我的數據庫? – masfenix 2009-07-13 01:34:33

0

是的,這是一個超級宏。再次,我很少使用VBA或.Net,只是盡力幫助你盡我所能。你可以在事物的數據庫端使用C#COM對象。 (還是新的,無法評論。)

0

你可以很容易地在C#控制檯應用程序中完成它。 您所要做的就是遍歷文件中的每一行,並使用逗號(,)分割將其添加到數組中。

然後,您可以使用您的數組顯示值或檢索行中的特定值。