Преобразование свойств Excel в числовой формат

У меня есть этот скрипт автоматизации, который возьмет файл.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 ответ

Вероятно, это происходит потому, что вы получаете значения из ячеек в виде строковых данных. Вы можете попытаться указать явно тип данных (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()
    }
Другие вопросы по тегам