powershell在excel中缺少前导0

时间:2016-08-02 13:00:34

标签: excel csv powershell

我花了两天时间来解决为什么4位数字正在通过我的5位正则表达式传递。当您在Excel中打开CSV时,它会显示4位数字' 1234'当你在记事本中打开它时,你会看到' 01234'。有没有办法在powershell中执行export-csv,以保持正确的格式?我知道格式与Excel认为它应该是什么样子有关。我希望在powershell中找到一个强制数字格式的解决方案。

如果第一个数字是0,你可以在前面添加特殊字符,使得第一个0在excel中可见吗?

1 个答案:

答案 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")