【问题标题】:Powershell script to Convert Excel timestamp entire column to datetimePowershell脚本将Excel时间戳整列转换为日期时间
【发布时间】:2016-11-21 18:50:36
【问题描述】:

我正在编写一个 PowerShell 脚本来收集 F5 LTM 设备统计信息并通过 Excel 打开它。但是我得到了时间戳列,我想将其更改为人类可读的日期时间。我可以通过 Excel 公式 =(A2/86400)+25569+(-5/24) 手动更改它,然后将单元格格式化为最新。之后,我能够将其更改为人类可读的日期时间。

我的脚本如下:

 # Allocate a new Query Object
    $Query = New-Object -TypeName iControl.SystemStatisticsPerformanceStatisticQuery
    $Query.object_name = "throughput"
    $Query.start_time = 1479686400
    $Query.end_time = 1480327200
    $Query.interval = 0
    $Query.maximum_rows = 0

【问题讨论】:

  • 在日期列之后插入新列,在新列左侧有值的所有单元格中输入公式,复制列,粘贴值,格式化,然后删除第一列。将这些步骤记录为宏并将其转换为 PowerShell(有关转换指南,请参阅 here)。
  • 谢谢。我试过了,但是当我添加公式时,它会在 b 列的所有单元格中粘贴相同的值。 =(A2/86400)+25569+(-5/24) 例如,它在B列下的所有单元格中使用A2值。有没有办法通过shell脚本使用excel的拖动功能。 ?
  • Shell 脚本完全是另外一回事。您应该能够记录自动填充单元格。否则循环以将具有递增索引的公式放入每个单元格中。
  • 是的,我尝试使用循环,但是太慢了。填充一个单元需要将近 1 秒,并且有将近 400 个单元。所以我想没有直接的方法可以将时间戳更改为日期时间
  • 填充一个单元格应该花费不到一秒钟的时间。如需进一步分析,请使用更完整的代码示例更新您的问题。

标签: excel powershell datetime


【解决方案1】:

如果您要遍历所有单元格并将公式输入到每个单元格中,那么将公式输入到 400 个单元格中需要相当长的时间。使用 Excel 自动填充机制要快得多。

$ws.Range("B2").Formula = "=(A2/86400)+25569+(-5/24)"
$ws.Range("B2").AutoFill($ws.Range("B2:B400"), 0)

【讨论】:

  • 感谢 Ansgar,它成功了。另外,如果您看到我的脚本,我将开始时间和结束时间作为“时间戳”传递,为此,我必须通过在线计算器手动将日期时间转换为时间戳,然后我必须在脚本执行之前将其粘贴。是否有可能,如果我运行此脚本,它将获取过去 7 天的数据?例如,我必须在每个星期一早上运行这个脚本,以获取从上周星期一到星期日晚上 12 点的数据,或者只是说直到我运行脚本的时间
  • 要将常规时间戳转换为纪元,请参阅this question
猜你喜欢
  • 2016-12-18
  • 2016-10-05
  • 2013-09-27
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 2022-01-08
相关资源
最近更新 更多