如何在Linux环境下运行Excel的VBA宏文件 |
您所在的位置:网站首页 › 宏比vba功能更强大吗 › 如何在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:要执行的宏命令。现在项目已经用在了我们的MES产品里面,并得到了比之前虚拟机运行windows更好的效果,对于高可用和分布式负载都有更好的支持,但也不得不说wine的效率的确会比原生windows的差,因此运行效率会因为启动docker和wine环境有所损耗,但10s和12s的差别,应该不是需要考虑的问题。 如果在使用过程中遇到什么问题,欢迎留言或者在github项目地址上做 Issues 。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |