【问题标题】:Change the axis type of an Excel chart using PowerShell使用 PowerShell 更改 Excel 图表的轴类型
【发布时间】:2016-04-21 18:40:32
【问题描述】:

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

要使用 Excel 手动执行此操作:

  • 在 Excel 中打开工作簿
  • 选择 X 轴图表
  • 选择“轴选项”
  • 在“轴类型”选项下配置“文本轴”

更新:它是 XLSX 格式。我应该澄清一下:问题是我正在绘制的数据集在 x 轴上使用日期,而 Excel 智能地填补了空白(所以如果我在数据集中有 5 月 5 日和 5 月 7 日,Excel 也会绘制 5 月 6 日) .切换到文本似乎可以在 Excel 应用程序中解决此问题。我希望像我的其他数据分析和图表一样自动执行此操作。

【问题讨论】:

  • 什么格式,XLS 还是 XLSX?
  • @Taosique 请查看问题更新。谢谢。

标签: excel powershell


【解决方案1】:

你来了:

# 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

【讨论】:

  • 感谢您的回答和释放 ComObject 的最后一点。我怀疑您会说经验,但我可以问一下您使用了什么文档,例如找出 TimeScale 值或 Axes(1) 的含义?
  • 我使用了这些引用:msdn.microsoft.com/en-us/library/…msdn.microsoft.com/en-us/library/…。要查找值,我使用 Excel VBA 编辑器:踩断点并添加监视 xlCategory 以查看它等于 1。通过录制宏、在 Excel 中手动执行操作然后查看它生成的代码,这也是找到所需 VBA 代码的好方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
相关资源
最近更新 更多