从excel中读取值,并用另一个文件替换它们使用Powershell

从excel中读取值,并用另一个文件替换它们使用Powershell

问题描述:

我需要找到一种方法,以便我可以读取excel文件中的值,然后相应地替换另一个文件中的所有对应值。基本上,我发现我们运行的一个自动化任务存在一些差异,我需要在将文件发送到自动化任务之前转换文件中的某些值。我有一个excel文件,列出“错误”的值和他们相应的“正确”值,我需要Power shell如何帮助我做到这一点。从excel中读取值,并用另一个文件替换它们使用Powershell

$docID = $args[0] $docid #Read Z ticker file 
$Zfile = 'I:\IS\Rishabh\Z tickers Active.xls' # Find the .rps file imported automatically from schwab trust 
$RPSFile= 'L:\Trading\Schwab Trust\Import\CS<%dmmdd-01yy>.RPS' 
While (Get-Content $ZFile) 
{ 
    $_-cmatch 'A$','B$'| Set-Variable X-ticker # End Loop 
} 
(Get-Content $RPSfile) | ForEach-Object { $_-replace '%, ' ,'X-ticker' #End Loop } 
Set-Content $RPSFile 
+0

在什么语言下运行自动化任务?使用该程序读取excel文件可能会更快,而不涉及中介。 – jonsca 2011-06-16 22:52:06

+0

Rishabh,这听起来像你需要在这里的非常大量的代码。使用VBA可能不容易吗? – codepoke 2011-06-17 00:56:44

+0

那么自动化任务是通过一个名为Relius的客户端应用程序来运行的(所以我不知道该语言)。基本上会发生什么呢,每天早上我们会从我们的一个贸易伙伴那里导入一个文件(.rps格式),这个文件将运行到Relius并为我们提供结果。但最近,导入的文件包含一些通过Relius无法读取的数据,最终结果是奇怪的。导入的文件不是以excel格式,而是以.rps格式。我需要一种方法来读取excel文件(即我的同事发给我的),并在.rps文件中相应地替换“错误”的值,然后将其放入Relius中 – Rishabh 2011-06-17 13:33:28

您不需要使用Powershell。 Excel本身内置了用于执行所需内容的机制。例如,您可以在Excel中使用LOOKUP函数。

+0

那么这个自动化任务是通过一个名为Relius的客户端应用程序运行的(所以我不知道这个语言)。基本上会发生什么呢,每天早上我们会从我们的一个贸易伙伴那里导入一个文件(.rps格式),这个文件将运行到Relius并为我们提供结果。但最近,导入的文件包含一些通过Relius无法读取的数据,最终结果是奇怪的。导入的文件不是以excel格式,而是以.rps格式。我需要一种方法来读取excel文件(我的同事发给我),并在.rps文件运行到Relius之前,相应地替换“错误”的值。 – Rishabh 2011-06-17 13:28:37

+0

好的,这是我的代码到目前为止。$ docID = $ args [0] $ docid #Read Z ticker file $ Zfile ='I:\ IS \ Rishabh \ Z tickers Active.xls' #Find。从Schwab信托自动导入的rps文件 $ RPSFile ='L:\ Trading \ Schwab Trust \ Import \ CS .RPS' While(Get-Content $ ZFile) { $ _- cmatch'A $','B $'| Set-Variable X-ticker #End Loop } (Get-Content $ RPSfile)| ForEach-Object {_-替换'%','X-ticker' #结束回路 } 设置内容$ RPSFile – Rishabh 2011-06-21 13:11:48

+0

用代码示例而不是注释更新您的问题。评论没有很好地对代码进行格式化,没有人会像那样读取代码。 – 2011-09-04 22:30:37