ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

CoolProp Excel 插件(Excel Wrapper)完整指南:安装、配置与在表格中直接调用热物性计算

CoolProp Excel 插件(Excel Wrapper)完整指南:安装、配置与在表格中直接调用热物性计算 科学计算【免费下载链接】CoolPropThermophysical properties for the masses项目地址https://gitcode.com/gh_mirrors/co/CoolProp点击查看免费下载导读CoolProp 的核心是 C 热物性库而Excel WrapperExcel 插件允许用户直接在 Microsoft Excel 工作表中以公式的形式调用 CoolProp 的热物性计算能力无需编写任何宏代码。本文基于仓库中的官方文档 Web/coolprop/wrappers/Excel/index.rst 展开覆盖 Windows 与 macOS 下的自动化/手动安装、DLL 位架构匹配、REFPROP 联调、以及自行编译 32/64 位 DLL 的完整流程。读完本文你将能够在 Excel 单元格中直接输入PropsSI(...)完成纯流体、混合工质与湿空气的热力学计算并掌握常见错误如 53 号错误、Name?显示异常的排查方法。一、Excel 插件是什么封装函数一览Excel 插件以XLA/XLAM 加载项 共享库DLL/dylib的形式工作XLA/XLAM 中的 VBA 代码通过Declare声明加载共享库导出的 C 接口再把这些接口包装成可以在单元格中直接使用的 Excel 函数。仓库中可直接查看这些加载项的源码wrappers/Excel/CoolProp.xlam现代 Office 2007 使用wrappers/Excel/CoolProp.xlaOffice 2007 之前版本使用wrappers/Excel/XLAM_module.bas新版插件的 VBA 模块源码wrappers/Excel/XLA_module.bas旧版插件的 VBA 模块源码wrappers/Excel/TestExcel.xlsx官方测试工作簿装完插件后可直接打开验证1.1 核心函数与底层 C 接口的对应关系从 XLAM_module.bas 的 VBA 声明可以看出每个 Excel 函数都对应共享库导出的一个 C 函数而这些 C 函数定义在 src/CoolPropLib.cppExcel 单元格函数对应 C 导出接口src/CoolPropLib.cpp功能PropsSI(Output, Name1, Value1, Name2, Value2, fluid)PropsSI通用 SI 单位制热物性查询两组状态输入 流体名PhaseSI(Name1, Value1, Name2, Value2, fluid)PhaseSIsrc/CoolPropLib.cpp返回状态点对应的相态字符串Props1SI(fluid, Output)Props1SIsrc/CoolPropLib.cpp仅依赖流体本身的一阶参数如摩尔质量、临界温度HAPropsSI(Output, Input1Name, Value1, Input2Name, Value2, Input3name, Value3)HAPropsSIsrc/CoolPropLib.cpp湿空气Humid Air热物性三组状态输入底层调用HumidAir::HAPropsSIProps(...)PropsSsrc/CoolPropLib.cpp已废弃旧版单字符参数名接口仅保留兼容get_global_param_string(param)get_global_param_stringsrc/CoolPropLib.cpp全局字符串参数如version、errstring1.2 位架构感知的加载逻辑源码细节XLAM_module.bas 中有一段关键的条件编译逻辑解释了为什么 Windows 上需要区分两个 DLL 文件名Mac 分支加载libCoolProp.dylib注意注释说明 Excel 2011 for Mac 不需要导出名的下划线前缀Win64 分支加载CoolProp_x64.dll且Declare前带PtrSafe关键字64 位 Office 必需32 位 Windows 分支加载CoolProp_stdcall.dll且Alias使用带装饰的符号名如_PropsSI32、_PhaseSI36——这是 32 位 stdcall 调用约定的名字修饰name decoration格式。也就是说插件在运行时只能按编译时的分支选择其中一个 DLL因此安装时必须保证DLL 位数与 Office 位数一致。1.3 错误处理机制1E30 阈值与错误字符串从 XLAM_module.bas 可以看到插件的错误设计C 接口在出错时会返回一个绝对值大于1E30的哨兵值VBA 中判断Abs(PropsSI_temp) 1E30一旦命中该阈值插件会调用get_global_param_string(errstring)取回底层错误消息并作为单元格结果返回因此错误不是数字而是可读文本若 VBA 抛出 13 号类型不匹配等异常则直接退出函数。1.4 混合工质辅助函数MixtureStringXLAM_module.bas 还提供了一个不直接调用 DLL 的辅助函数MixtureString(名称区域, 比例区域)它会将两个区域拉链拼接成 CoolProp 混合工质语法例如Water[0.5]Ethane[0.5]便于用户在单元格中构造混合工质字符串后再传给PropsSI。二、Windows 安装指南2.1 自动化安装推荐自 2016 年 10 月起Windows 版 Excel 插件已随Windows 安装包一起分发相关说明见 Web/coolprop/wrappers/Installers/index.rst。安装包会把以下内容一并装好32 位stdcall 与 cdecl 两种调用约定与 64 位共享库 DLL安装到用户的AppData/CoolProp目录并通过环境变量%PATH%加入库搜索路径两个插件本体CoolProp.xlaOffice 2007 之前与CoolProp.xlamOffice 2007 及以后安装到用户 Add-Ins 目录并默认激活一个示例工作簿安装后会放到用户桌面用于演示插件功能可随意移动或删除卸载程序不会清理它。安装完成后如遇到函数不计算的情况可参考 Installers/index.rst 中的技巧当计算单元格显示Name?时说明公式未被识别为新公式可以通过脏化dirty单元格强制重算——按CtrlA全选工作表 →CtrlH打开查找替换 → 在查找内容和替换为中都输入→ 全部替换让 Excel 把公式当作新公式重新求值。安全警告处理安装插件后若弹出安全警告可以把插件所在文件夹加入受信任位置进入文件 - 选项 - 信任中心 - 信任中心设置... - 受信任位置添加你的xlam文件所在目录通常是C:\Users\用户名\AppData\Roaming\Microsoft\AddIns\。2.2 手动安装10 步流程若希望脱离安装包手动部署官方文档给出了完整的 10 步流程从发布渠道获取共享库shared_library/Windows/32bit__stdcall与64bit把 DLL 放入自选文件夹并重命名为CoolProp_stdcall.dll与CoolProp_x64.dll确保该文件夹在系统PATH中。技术上只需与系统架构匹配的那一个CoolProp_stdcall.dll 32 位CoolProp_x64.dll 64 位不确定位数时两个都拷上也无妨Excel 宏会自动挑选正确的那个从发布渠道下载xla/xlam文件放到一个便于访问的位置把测试文件TestExcel.xlsx复制到My Documents下的工作目录打开 Excel进入菜单文件 - 选项 - 加载项在底部管理下拉框选择Excel 加载项点击转到...在加载项管理器面板中点击浏览浏览到你下载的CoolProp.xlam并选中确保 CoolProp 加载项处于勾选状态关闭加载项管理器打开TestExcel.xlsx重新计算任意单元格验证CoolProp 公式应全部正常工作整个工作表重算可按住Ctrl-Alt-Shift-F9。2.3 受限环境替代 DLL 位置部分企业环境出于安全考虑会锁定普通用户的二进制搜索路径。此时需要把 DLL 放到替代位置可能是共享网络位置按以下步骤操作把 CoolProp DLL 放到替代位置把 xlam 放到可写位置并打开会弹出 Excel 错误File not found - CoolProp_stdcall.dll点击确定只会清除第一个错误按住Enter键直到所有错误清除确保主菜单显示开发工具功能区若没有进入文件 - 选项 - 自定义功能区勾选开发工具主选项卡打开 Visual Basic 编辑器用编辑 - 替换把所有CoolProp_stdcall.dll替换为替代位置的完整路径退出 VBA 编辑器前务必点击保存软盘图标或文件 - 保存保存 CoolProp.xlam 文件。2.4 路径链接异常与 Windows 安全解除阻止如果工作表中的 XLAM 链接路径显示为完整路径但实际不正确可进入数据 - 编辑链接选中 CoolProp.xlam点击更改源...并选择 xlam 的正确位置即可更新所有链接。该问题的一个常见根源是 Windows 安全功能。可通过手动授予 xlam 文件普通访问权限来规避右键 xlam 文件打开属性若出现安全提示该文件来自其他计算机...勾选或点击Windows 10 以外的系统可能表现为按钮解除锁定Unblock复选框点击底部应用确认安全提示消失后点击确定退出属性。三、macOSOSX安装指南警告macOS 上现在同时存在 32 位与 64 位版本的 Microsoft Excel。你必须保证 CoolProp以及 REFPROP共享库的位数与 Excel 位数一致。若使用 M1/M2 等 arm64 架构的 Mac可能需要自行编译 CoolProp 库见下文自行编译章节。3.1 Part 1确定你的 Excel 位数最简单的方法是打开终端执行file命令Ians-Mac-mini:~ ian$ file /Applications/Microsoft\ Excel.app/Contents/MacOS/Microsoft\ Excel /Applications/Microsoft Excel.app/Contents/MacOS/Microsoft Excel: Mach-O 64-bit executable x86_64也可以进入 Excel 的关于 Excel查看版本号若版本号大于15.24则运行的是 64 位 Excel。3.2 Part 2下载并放置 xlam 与 dylib从发布渠道获取 xlam若链接失效可找最新的含MicrosoftExcel目录的版本开发版可从 nightly 构建获取。将 xlam 放到/Users/${USER}/Library/Group Containers/UBF8T346G9.Office其中${USER}替换为你的用户名。根据 Excel 位数选择对应的共享库不确定位数时32 位与 64 位的.dylib可以同时放在一起32 位 Excel下载shared_library/Darwin/32bit/的预编译二进制把libCoolProp.dylib也放入上述文件夹但必须重命名为libCoolProp_32bit.dylib以避免与标准 64 位共享库重名冲突64 位 Excel下载shared_library/Darwin/64bit/的预编译二进制把libCoolProp.dylib直接放入上述文件夹。3.3 Part 3加载插件打开 Excel进入工具 - 加载项...浏览到上面含UBF8T346G9.Office的文件夹选中 CoolProp.xlam。3.4 Part 3b修正 dylib 引用路径进入工具 - 宏 - Visual Basic 编辑器打开 CoolProp.xlam 中的 Module 1把所有libCoolProp.dylib引用替换为/Users/${USER}/Library/Group Containers/UBF8T346G9.Office/libCoolProp.dylib同样要把${USER}换成你的用户名保存并关闭 Visual Basic 编辑器。3.5 Part 4验证安装在一个单元格中输入PropsSI(T,P,101325,Q,0,Water)如果一切正常应得到约373.1242958 K1 个标准大气压下水的饱和温度。3.6 调试若返回错误号 53很可能是 64 位.dylib与 32 位 Excel 不匹配。用file命令检查$ file libCoolProp_32bit.dylib libCoolProp.dylib: Mach-O dynamically linked shared library i386其中的i386是关键标识说明该共享库是 32 位的。若使用的是 M1/M2 Mac可能需要自行编译 arm64 架构的 CoolProp 库见下文。四、macOS 上调用 REFPROPExcel 插件同样支持通过 CoolProp 调用 REFPROP但需要做几处调整见 Web/coolprop/wrappers/Excel/index.rst 中 REFPROP support on OSX 一节将位数匹配的 REFPROP dylib以及 REFPROP 的fluids和mixtures文件夹都放入/Users/${USER}/Library/Group Containers/UBF8T346G9.Office下的refprop子文件夹中并确保共享库命名为librefprop.dylib设置环境变量COOLPROP_REFPROP_PATH指向/Users/${USER}/Library/Group Containers/UBF8T346G9.Office/refprop。xlam 加载时会查询该环境变量来确定 REFPROP 的路径。经验表明由于沙箱限制该路径必须是UBF8T346G9.Office的子文件夹通过 LaunchAgent plist 在系统启动时设置该环境变量。把以下内容保存为~/Library/LaunchAgents/my.startup.plist把示例中的ihb换成你的用户名?xml version1.0 encodingUTF-8? !DOCTYPE plist PUBLIC -//Apple//DTD PLIST 1.0//EN https://www.apple.com/DTDs/PropertyList-1.0.dtd plist version1.0 dict keyLabel/key stringmy.startup/string keyProgramArguments/key array stringsh/string string-c/string stringlaunchctl setenv COOLPROP_REFPROP_PATH /Users/ihb/Library/Group Containers/UBF8T346G9.Office/refprop/string /array keyRunAtLoad/key true/ /dict /plist该 plist 会在电脑启动时立即执行把COOLPROP_REFPROP_PATH写入环境变量Microsoft Excel 随后读取该变量并加载 refprop 库。注意修改后需要注销并重新登录plist 才会生效。五、自行编译插件所需的二进制User-compiled Binaries如果预编译二进制不满足需求例如 arm64 Mac可以从源码自行编译。编译 Excel 插件需要先满足通用的 wrapper 前置条件完整清单见 Web/coolprop/wrappers/index.rstgit、python用于生成头文件、CMake、C 编译器、7-zip。以下命令适用于64 位 Windows 系统可同时编译 32 位与 64 位版本的 DLL# 检出 CoolProp 源码 git clone https://github.com/CoolProp/CoolProp # 进入刚创建的目录 cd CoolProp # 为 32 位 DLL 创建构建目录 mkdir build/32bit__stdcall cd build/32bit__stdcall # 用 CMake 生成 MSVC 工程 cmake ../.. -G Visual Studio 10 -DCOOLPROP_SHARED_LIBRARYON -DCOOLPROP_STDCALL_LIBRARYON # 生成共享库 cmake --build . --config Release cd ../.. # 为 64 位 DLL 创建构建目录 mkdir build/64bit cd build/64bit # 用 CMake 生成 MSVC 工程 cmake ../.. -G Visual Studio 10 Win64 -DCOOLPROP_SHARED_LIBRARYON # 生成共享库 cmake --build . --config Release cd ../.. # 复制生成的 DLL copy build\32bit__stdcall\CoolProp.dll c:\CoolProp copy build\64bit\CoolProp.dll c:\CoolProp两个关键的 CMake 选项含义如下COOLPROP_SHARED_LIBRARY构建共享库DLL/so对应 CMakeLists.txt 中的option(COOLPROP_SHARED_LIBRARY ...)COOLPROP_STDCALL_LIBRARY启用 32 位 stdcall 调用约定的库。从 cmake/CoolPropLibrary.cmake 的定义及 cmake/CoolPropLibrary.cmake 的检查逻辑看它与 cdecl 库选项互斥COOLPROP_CDECL_LIBRARY and COOLPROP_STDCALL_LIBRARY are mutually exclusive。这正是CoolProp_stdcall.dll32 位 stdcall与CoolProp_x64.dll64 位统一调用约定两个文件名差异的来源。六、常见问题速查现象原因与对策单元格显示Name?公式未被识别为新公式。全选工作表后用查找替换把替换成详见 Installers/index.rst强制 Excel 重新求值弹出安全警告把 xlam 所在文件夹加入信任中心受信任位置File not found - CoolProp_stdcall.dll受限环境 DLL 搜索路径被锁定。按替代 DLL 位置流程修改 VBA 中的 DLL 路径链接路径显示为完整路径但不正确数据 - 编辑链接 - 更改源...更新链接对 xlam 执行 Windows 安全解除锁定OSX 下错误号 53位数不匹配用file检查 dylib确认是i38632 位还是 x86_6464 位与 Excel 位数对齐M1/M2 Mac 无法加载arm64 架构需要自行编译 CoolProp 库REFPROP 无法加载检查librefprop.dylib命名、fluids/mixtures目录位置以及COOLPROP_REFPROP_PATH环境变量是否已通过 plist 设置并重启会话七、结语Excel 插件把 CoolProp 的高精度热物性计算能力以零代码的方式带进了日常工程表格Windows 上优先走安装包自动化部署受限环境可手动部署并自定义 DLL 路径macOS 上则要特别注意 Excel 与 dylib 的位数匹配需要 REFPROP 时通过COOLPROP_REFPROP_PATH环境变量完成对接。无论是纯流体、混合工质还是湿空气一行PropsSI(...)或HAPropsSI(...)即可在单元格中获得 SI 单位制下的精确结果——上述配置细节与排错路径在官方文档 Web/coolprop/wrappers/Excel/index.rst 中均有完整记载仓库内的 wrappers/Excel/XLAM_module.bas 与 src/CoolPropLib.cpp 则是理解其内部机制的第一手源码。赞分享科学计算【免费下载链接】CoolPropThermophysical properties for the masses项目地址https://gitcode.com/gh_mirrors/co/CoolProp点击查看免费下载相关推荐CoolProp热力学物性计算库的完整使用指南CoolProp热力学物性计算库的完整使用指南 技术价值解析为什么选择CoolProp 在工程热力学计算中精确获取流体物性参数是系统设计与仿真的基础。传统解科学计算CoolProp 表格插值后端全指南TTSE 与 BICUBIC 加速物性计算CoolProp 表格插值后端全指南TTSE 与 BICUBIC 加速物性计算 导读 在工程计算中以压力和焓为自变量p h反复评估完整状态方程EOS科学计算在 Gatsby 中使用 Excel 表格数据using-excel 示例与 gatsby-transformer-excel 插件深度解析在 Gatsby 中使用 Excel 表格数据using excel 示例与 gatsby transformer excel 插件深度解析 本指南围绕仓库中前端静态站点Web框架上一篇如何高效实现AI代理多语言翻译5个实用技巧与实战指南下一篇为什么Vespene停止开发Ansible作者Michael DeHaan的CI/CD项目兴衰启示创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表