Excel 文档中的嵌入图像显示为#UNKOWN!当从 Chocolatey 安装中在 GitHub Action 中打开时

问题描述 投票:0回答:1

问题

我正在尝试使用 Windows 上运行的 GitHub Actions 自动截取与 Chocolatey 一起安装的 Excel 文件区域的屏幕截图。一切都按预期工作,除了 Excel 无法在 GitHub Action 内运行的 Windows 实例上正确显示嵌入图像。相反,它在图像所在的单元格中显示 #UNKNOWN!

示例

我期待的是这样的:

屏幕截图的一部分,图像正确显示在单元格中

A portion of the screenshot with the image correctly displayed in the cell

我得到的是这样的:

屏幕截图的一部分,图像错误地显示为#UNKOWN!在细胞里

A portion of the screenshot with the image incorrectly displayed as #UNKOWN! in the cell

代码

以下是 GitHub Action Workflow 中的作业示例:

注意:

Add-Excel-Trusted-Location.ps1
export-png.py
是我编写的脚本,它们已经过测试,并且似乎可以在本地以及在 GitHub Actions 内运行的 Windows 实例上运行。

ENV 变量示例:

env:
  EXCEL_FILE_PATH: 'MySpreadsheet.xlsx'
  OUTPUT_PNG_PATH: 'MySpreadsheetScreenshot.png'
  INPUT_EQUIPMENT_SHEET_NAME: 'Sheet1'
  INPUT_EQUIPMENT_CELL_RANGE: '$$A$$3:$$I$$35'

GitHub 操作作业示例

  name: Export image from Excel spreadsheet
  runs-on: windows-latest
  steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Install Office
      run: choco install office365business --params "'/productid:ExcelRetail /updates:FALSE'"

    - name: Add Excel Trusted Location
      run: pwsh .github/workflows/lib/Add-Excel-Trusted-Location.ps1 -Path "${{ env.EXCEL_FILE_PATH }}"

    - name: Setup Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12.3'

    - name: Install Python dependencies
      run: pip install pywin32 ImageGrab pillow

    - name: Export PNG from Excel
      run: python .github/workflows/lib/export-png.py "${{ env.EXCEL_FILE_PATH }}" "${{ env.OUTPUT_PNG_PATH }}" "${{ env.INPUT_EQUIPMENT_SHEET_NAME }}" "${{ env.INPUT_EQUIPMENT_CELL_RANGE}}"

我尝试在运行 Excel 的 Windows 11 电脑上本地运行此程序(内部版本 17830.20210 即点即用)。这一切都按预期运行,但我的机器已经安装了 Excel。

我还尝试将文件路径添加到 Excel 的受信任位置注册表项 (HKCU:\Software\Microsoft\Office .0\Excel\Security\Trusted Locations),但仍然显示 #UNKOWN!在目标细胞中。

excel github-actions office365 screenshot
1个回答
0
投票

我建立了一个 Windows Server 2022 VM(类似于 GitHub Action 中

runs-on: windows-latest
中使用的虚拟机)并手动完成 GitHub Action 工作流程。问题最终出在 Chocolatey 安装的 Excel 版本上。这是我正在使用的命令:

choco install office365business --params "'/productid:ExcelRetail /updates: FALSE'"

记下产品 ID,ExcelRetail。这是安装“Microsoft Excel 2016”。此版本的 Excel 不支持在单元格中放置图像,因此我不断在单元格中看到

#UNKONWN!
,就像我之前在 GitHub Action 运行的输出文件中观察到的那样。

为了解决此问题,我将产品 ID 更改为 O365HomePremRetail:

choco install office365business --params "'/productid:O365HomePremRetail /exclude: Access Groove Lync OneDrive OneNote Outlook Publisher Word Powerpoint /updates: FALSE /eula:TRUE'"

此命令仍然只安装 Excel,但由于我必须添加所有排除项才能获取 Excel 而不是整个 Office 套件,因此阅读起来比较困难。生成的安装是更现代的 Excel 版本:“Microsoft Excel for Microsoft 365”。此版本支持将图像放置在单元格内。

这个更新版本产生了 Excel 文件的屏幕截图(和 PDF),正如我最初的意图:

enter image description here

您可以在此处查看 GitHub 存储库:https://github.com/ThePerfectStrangers/TechnicalDocumentation

您可以在此处查看功能齐全的 GitHub Action 工作流程:https://github.com/ThePerfectStrangers/TechnicalDocumentation/blob/5d966a5f9b8640c72a08e761a026b6fe9edefbcd/.github/workflows/full-band-input-list-workflow.yml

© www.soinside.com 2019 - 2024. All rights reserved.