使用PowerShell更改Excel图表的轴类型

使用PowerShell更改Excel图表的轴类型,excel,powershell,Excel,Powershell,如何使用PowerShell更改Excel图表X轴的轴类型 要使用Excel手动执行此操作,请执行以下操作: 在Excel中打开工作簿 选择X轴图表 选择“轴选项” 在“轴类型”选项下配置“文本轴” 更新:它是XLSX格式。我应该澄清:问题是我正在绘制的数据集使用x轴上的日期,Excel智能地填补了空白(因此,如果数据集中有5月5日和5月7日,Excel也会绘制5月6日)。在Excel应用程序中,切换为文本似乎可以解决此问题。我希望像我的其他数据分析和图表一样实现自动化。您在这里: # La

如何使用PowerShell更改Excel图表X轴的轴类型

要使用Excel手动执行此操作,请执行以下操作:

  • 在Excel中打开工作簿
  • 选择X轴图表
  • 选择“轴选项”
  • 在“轴类型”选项下配置“文本轴”
更新:它是XLSX格式。我应该澄清:问题是我正在绘制的数据集使用x轴上的日期,Excel智能地填补了空白(因此,如果数据集中有5月5日和5月7日,Excel也会绘制5月6日)。在Excel应用程序中,切换为文本似乎可以解决此问题。我希望像我的其他数据分析和图表一样实现自动化。

您在这里:

# Launch Excel:
$app = New-Object -comobject Excel.Application

# Open a Workbook:
$app.Workbooks.Open("C:\Users\admin\Desktop\Workbook.xlsx")

# Activate the chart you need (note: you don't need full path with filename now):
$app.Workbooks("Workbook.xlsx").Sheets("Sheet1").ChartObjects("Chart 1").Activate()

# Change the category type of axis. Axes(1) means category axis. Possible values:
# xlCategoryScale = 2
# xlTimeScale = 3
# xlAutomaticScale = -4105
$app.ActiveChart.Axes(1).CategoryType = 2

# Save & close the workbook
$app.Workbooks("Workbook.xlsx").Close($True)
现在可以返回到步骤2,打开另一个工作簿并重复这些操作。 完成后,关闭Excel应用程序并清理:

$app.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($app)
Remove-Variable app
给你:

# Launch Excel:
$app = New-Object -comobject Excel.Application

# Open a Workbook:
$app.Workbooks.Open("C:\Users\admin\Desktop\Workbook.xlsx")

# Activate the chart you need (note: you don't need full path with filename now):
$app.Workbooks("Workbook.xlsx").Sheets("Sheet1").ChartObjects("Chart 1").Activate()

# Change the category type of axis. Axes(1) means category axis. Possible values:
# xlCategoryScale = 2
# xlTimeScale = 3
# xlAutomaticScale = -4105
$app.ActiveChart.Axes(1).CategoryType = 2

# Save & close the workbook
$app.Workbooks("Workbook.xlsx").Close($True)
现在可以返回到步骤2,打开另一个工作簿并重复这些操作。 完成后,关闭Excel应用程序并清理:

$app.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($app)
Remove-Variable app

什么格式,XLS还是XLSX?@Taosique请查看问题更新。谢谢。什么格式,XLS还是XLSX?@Taosique请看问题更新。谢谢。谢谢你给出的答案和最后一个释放ComObject的部分。我想你会说经验,但我可以问一下你使用了什么文档,例如,找出时间刻度值或轴(1)的含义吗?我使用了以下参考:。为了找到值,我使用了Excel VBA编辑器:踩下断点并添加了watch for
xlCategory
,以查看它是否等于
1
。另外,通过录制宏、在Excel中手动执行操作,然后查看它生成的代码,这也是找到所需VBA代码的一种好方法。感谢您给出答案和释放ComObject的最后一点。我想你会说经验,但我可以问一下你使用了什么文档,例如,找出时间刻度值或轴(1)的含义吗?我使用了以下参考:。为了找到值,我使用了Excel VBA编辑器:踩下断点并添加了watch for
xlCategory
,以查看它是否等于
1
。此外,通过录制宏、在Excel中手动执行操作,然后查看它生成的代码,这也是找到所需VBA代码的好方法。