如何在Linux环境下运行Excel的VBA宏文件

        在Linux下调用EXCEL(XLSM)文件,并执行里面的VBA宏,这个看似是个伪需求;但做过办公自动化的都知道,在10几20年前,VBA宏是办公自动化里面最简单,并最不可或缺的一环,甚至现在有很多科研机构,政府机关,都还在使用着这个最原始的办公自动化和数据自动化分析的方法;

        而现在越来越多的系统,已经转向虚拟化和Linux化平台,甚至一些已经上了超融合,K8s,这时候一些ERP,MES,PLM等系统,对于原来的办公自动化流程的兼容性就显得捉襟见肘,很多单位并不希望丢弃原来的流程以及成果,特别是科研机构,很多是使用VBA来做数据分析的,里面涵盖很大量的数据分析方法,如果希望将这部分的成果延续,并放到Linux下作为模板运行输出结果,传统方案是做不到的,必须得在Windows下环境运行,或者通过虚拟机实现;但着又违背了超融合的环境依赖安全性;
        

        迫于无奈,花了些时间自研了一套基于Linux环境下能跑Office的Docker,并利用python来运行Excel里面的VBA宏,同时将得到的结果输出到原来的XLSM文件内;

        https://github.com/xeden3/docker-excel-macro-run

        这个是项目地址;

安装和使用也非常简单

这个 Docker 容器提供了一种使用 Python win32 在 Wine 和 Office 环境下运行 Excel 宏的解决方案。它支持通过 GitHub 和 Docker Hub 安装。下面是安装和使用的步骤。

GitHub 安装和构建

git clone https://github.com/xeden3/docker-excel-macro-run.git
cd docker-excel-macro-run
docker build -t docker-excel-macro-run:v1 .

Docker Hub 安装

docker pull xeden3/docker-excel-macro-run:v1

运行程序,执行example.xlsm下的宏ThisWorkbook.WriteDataToSheet1

docker run -v ./example.xlsm:/opt/wineprefix/drive_c/test.xlsm --rm docker-excel-macro-run:v1 test.xlsm ThisWorkbook.WriteDataToSheet1

如果成果,则输出json如下

{"errcode": 0, "errmsg": ""}

参数解释:

 

  • docker-excel-macro-run:v1:Docker 镜像名称和标签。
  • test.xlsm:要运行宏的 Excel 文件名。它应该与容器目录中的文件名 (/opt/wineprefix/drive_c/test.xlsm) 相匹配。
  • ThisWorkbook.WriteDataToSheet1:要执行的宏命令。

相关推荐

  1. 如何Linux环境运行ExcelVBA宏文

    2024-05-10 12:36:04       35 阅读
  2. 用c#开发linux环境运行程序

    2024-05-10 12:36:04       30 阅读
  3. 如何 windows 运行 linux 程序

    2024-05-10 12:36:04       37 阅读
  4. LLM-CPU环境如何运行ChatGLM-6B

    2024-05-10 12:36:04       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-10 12:36:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-10 12:36:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-10 12:36:04       87 阅读
  4. Python语言-面向对象

    2024-05-10 12:36:04       96 阅读

热门阅读

  1. C++(函数高级)

    2024-05-10 12:36:04       29 阅读
  2. go设计模式之建造者设计模式

    2024-05-10 12:36:04       31 阅读
  3. css类名冲突-css in js

    2024-05-10 12:36:04       26 阅读
  4. C++容器——set

    2024-05-10 12:36:04       27 阅读
  5. ubuntu22 安装ROS2

    2024-05-10 12:36:04       31 阅读
  6. 机器学习笔记-02

    2024-05-10 12:36:04       29 阅读
  7. Centos7.9搭建yum仓库

    2024-05-10 12:36:04       37 阅读