【问题标题】:Create/Modify Excel spreadsheet without using a Com Object in PowerShell?在 PowerShell 中不使用 Com 对象创建/修改 Excel 电子表格?
【发布时间】:2013-03-15 04:49:15
【问题描述】:

有没有办法在不使用 Com 对象的情况下使用 PowerShell 生成 excel 电子表格?我有一些非常丑陋的脚本,它们可以打开 Excel Com 对象、添加数据、运行一些宏并保存文件以创建我需要的报告。如果我可以定义电子表格格式,然后使用 PowerShell 将 csv 转换为该格式,我认为它会更快,并且整体上更好的脚本。我怎么能那样做?有可能吗?

【问题讨论】:

  • 没有任何 COM 对象还是没有 Excel 对象?这是 OleDb 的一种方式:blogs.technet.com/b/heyscriptingguy/archive/2008/09/15/…
  • @RichardMorgan 我不想在运行脚本的系统上安装 Excel。是否有可以用纯文本(类似于 XML)编写/定义的格式来创建自定义报告?
  • @RichardMorgan 我还想在必要时为单元格添加颜色/格式。​​
  • 如果您想在工作簿中应用格式并执行 VBA,我认为您唯一的选择是通过 COM 调用 Excel。可以通过 OleDb 或 ODBC 将数据简单转储到 CSV,但除此之外,您将进入 Excel 领域。
  • @alroc 我实际上不想保留 VBA,而是在其他地方定义格式。

标签: excel powershell report powershell-2.0 spreadsheet


【解决方案1】:

工作簿是 .xls.xlsx 文件吗?后者基本上是 Zip 存档中的一堆 XML 文件,因此您可以从存档中提取 XML 文件并从那里继续。如果您需要在visualbasicscript.com 上手工制作.xlsx 文件this posting 可能会有所帮助。

【讨论】:

  • 谢谢,我想这就是我想要的。我将研究使用 Office XML 格式开发报告。
  • 对于非常简单的电子表格,不妨看看“Excel xml 电子表格 2003”文件格式,它是纯 xml,无需解压/压缩。 en.wikipedia.org/wiki/Microsoft_Office_XML_formats
【解决方案2】:

如果您对访问电子表格/工作簿中的原始数据、将其转储为 CSV 和/或在 Excel 之外进行一些其他处理感到满意,请参阅 this answer 了解如何开始通过 ODBC 访问数据和 System.Data .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-16
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 2021-04-11
    • 2010-10-10
    相关资源
    最近更新 更多