我花了两天时间来解决为什么4位数字正在通过我的5位正则表达式传递。当您在Excel中打开CSV时,它会显示4位数字' 1234'当你在记事本中打开它时,你会看到' 01234'。有没有办法在powershell中执行export-csv,以保持正确的格式?我知道格式与Excel认为它应该是什么样子有关。我希望在powershell中找到一个强制数字格式的解决方案。
如果第一个数字是0,你可以在前面添加特殊字符,使得第一个0在excel中可见吗?
答案 0 :(得分:0)
(如果此问题尚未解决或可以帮助其他人解决此问题)
Excel的WorkBook.OpenText在这里很有帮助。您可以指定Column Data Type。
$xlSession = New-Object -ComObject excel.application
$file = Get-Item "C:\MyDir\MyFile.csv
$xlsession.WorkBooks.OpenText(`
$file.FullName, # Filename
2, # Origin
1, # StartRow
1, # DataType
1, # TextQualifier
$false, # ConsecutiveDelimiter
$false, # Tab
$false, # Semicolon
$true, # Comma
$false, # Space
$false, # Other
$false, # OtherChar
# FieldInfo; the important part.
# I am telling Excel that columns 1, 2 and 3 are type 2 (Text)
# More info: https://msdn.microsoft.com/en-us/library/office/ff193030.aspx
@(@(1,2),@(2,2),@(3,2))
)
$workBook = $xlsession.ActiveWorkbook
$workBook.SaveAs("C:\MyDir\Somefile.xlsx")