Преобразование свойств Excel в числовой формат - PullRequest
0 голосов
/ 31 августа 2018

У меня есть этот скрипт автоматизации, который возьмет файл .htm и сгенерирует пользовательский объект, который будет сгенерирован в электронную таблицу.

К сожалению, один из элементов в моем объекте является очень длинным числом, поэтому, когда он экспортируется в .xlsx, он выглядит так:

1.04511E + 11

Я понимаю, что просто изменить формат на число без десятичных знаков можно в Excel, но я хотел узнать, есть ли способ изменить формат в моем сценарии; тем более что это должен быть автоматизированный процесс.

Вот фрагмент моего сценария:

## Build custom object which allows for modification of the spreadsheet that will be generated
$xls = ForEach ($item in $spreadsheet | Where-Object {$PSItem.P4 -match '\w+'}) {
    [pscustomobject]@{
        ## Define the colums for the CSV file
        'MnsTransTy'      = $item.P1.TrimStart()
        'Del. Date'       = $item.P2
        'Time'            = $item.P3
        'Name 1'          = $item.P4
        'Purch.Doc.'      = $item.P5
        ## Remove white space
        'Cases'           = $item.P6.TrimStart()
        ## Remove white space
        'line'            = $item.P7.TrimStart()
        'Name'            = $item.P8
        ## Remove white space
        'Tot Pallet'      = $Item.P9.TrimStart()
    }
}

Речь идет о P5. Я использую Модуль ImportExcel , который находится здесь: https://github.com/dfinke/ImportExcel.

Любая помощь по этому вопросу будет принята с благодарностью! Заранее спасибо!

1 Ответ

0 голосов
/ 01 сентября 2018

Это, вероятно, происходит потому, что вы получаете значения из ячеек как строковый тип данных. Вы можете попытаться указать явно тип данных (Double в вашем случае). Вот так:

[pscustomobject]@{
        ## Define the colums for the CSV file
        'MnsTransTy'      = $item.P1.TrimStart()
        'Del. Date'       = $item.P2
        'Time'            = $item.P3
        'Name 1'          = $item.P4
        'Purch.Doc.'      = [Double]$item.P5
        ## Remove white space
        'Cases'           = $item.P6.TrimStart()
        ## Remove white space
        'line'            = $item.P7.TrimStart()
        'Name'            = $item.P8
        ## Remove white space
        'Tot Pallet'      = $Item.P9.TrimStart()
    }
...