цикл через CSV - PullRequest
       18

цикл через CSV

0 голосов
/ 13 июля 2009

просто интересно, могу ли я сделать это в powershell или даже в программе командной строки на c # / vb.net.

У меня есть данные, которые выглядят так:

alt text
(источник: kalleload.net )

У меня есть стол команд. Это выглядит так:

| id | название команды | teamcity |

так, например, C2 имеет значение «Atlanta Braves». Мне нужно разделить это на «Атланту» и «Храбрецы». Данные согласуются. например, «Нью-Йорк Метс» на самом деле является «Нью-Йорк Метс».

Поэтому мне нужно пройти через столбцы C и D и вставить все команды (без дубликатов в БД).

Ответы [ 4 ]

4 голосов
/ 13 июля 2009

Одна строка 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 голосов
/ 13 июля 2009

Да, это макрос Excel. Опять же, я редко использую VBA или .Net, просто пытаюсь помочь вам как можно лучше. Вы можете просто использовать C # COM-объект для базы данных. (Все еще новый, не могу комментировать.)

0 голосов
/ 13 июля 2009

Вы можете сделать это в консольном приложении C # довольно легко. Все, что вам нужно сделать, это перебрать каждую строку в файле, добавив его в массив с помощью разделения на запятую (,).

Затем вы можете использовать свой массив для отображения значений или получения определенного значения в строке.

0 голосов
/ 13 июля 2009

Я редко пишу код на 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

Я уверен, что есть и другие способы, но вот что я бы сделал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...