ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH云课堂-专业的职场技能充电站 Excel转在线管理系统,怎么做看这里 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 高效办公必会的Office实战技巧 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 1691|回复: 21

[原创] SuperDotNetAPI库:重磅解决VBA多个痛点--多音字转拼音、GZIP、数学公式计算、离线OCR

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-3-30 21:42 | 显示全部楼层 |阅读模式
本帖最后由 liucqa 于 2019-5-9 21:31 编辑

这两年,我在VBA应用方面一直有几大痛点:
1、多音字转拼音;
2、64位下的GZIP解压缩;
3、数学公式计算;
4、离线中文OCR识别(见二楼)。

为了解决这几个个长期困扰我的问题,以及未来经常会遇到的其它问题(例如AES加解密、验证码图片处理、文本编解码、大数的数学运算、多线程等等),我考虑在VBA中调用C#的dll来彻底解决。

正常情况下,vba调用C#的dll要通过com方式先注册后运行,这在很多场合是不方便的,因此我采用给C# dll加上导出函数的方式,使C#的dll能够被其它语言以API方式直接调用,要做到这一点,需要对托管代码的DLL做一些特殊的处理,以确保提供导出函数接口签名给第三方调用。

下面的附件演示了多音字转拼音(自带六十多万词库,无需微软拼音)和GZIP解压缩、数学公式计算。
本DLL库可以被C++、VB6、Delphi、VBA等多种语言调用(接口提供VBA示例,其它语言自己写。)。支持32位和64位操作系统。
运行环境:需要.net Framework 4.0或以上,支持XP。

在Win10系统下测试通过。

SuperDotNetAPI_v1.12.part01.rar (2 MB, 下载次数: 151)

评分

参与人数 9鲜花 +21 收起 理由
源理 + 2 值得肯定
ardu95 + 2 优秀作品
fxl447098457 + 3 优秀作品
ivccav + 3 优秀作品
ljpmqb888 + 2 太强大了

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-30 21:42 | 显示全部楼层
本帖最后由 liucqa 于 2019-4-17 22:21 编辑

使用OneNote2013 sp1实现OCR识别本地图片

OneNote_OCR_API-2013版.rar (585.56 KB, 下载次数: 112)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-30 21:43 | 显示全部楼层
本帖最后由 liucqa 于 2019-5-21 13:37 编辑

在网页采集中,很多时候需要运行网站下载的某个js文件中的函数,以计算Request参数。VBA直接运行JS函数有很多办法,常见的是通过msscriptcontrol.scriptcontrol或者htmlfile。
在这里,我提供另外一种比较灵活可控的方式来运行js函数。
C#可以调用很多js引擎来执行js代码,比较流行的有Jurassic,Jint ,  Nlua, ClearScript,IronJS,IKVM.NET等很多引擎。如果VBA可以通过C#调用这些引擎,那么我们就可以灵活的运行js函数了。
考虑il本身支持export导出函数接口,所以我做了一个C# dll(无需注册,直接调用运行),可以以API方式运行其中的函数来执行指定的js函数,并取回结果。
下面提供了一个VBA的调用示例,其它原生语言也可以参考VBA示例来调用这个dll。

JSDotNetAPI.rar (599.07 KB, 下载次数: 39)

TA的精华主题

TA的得分主题

发表于 2019-3-30 21:45 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-3-30 21:54 | 显示全部楼层
本帖最后由 zorsite 于 2019-3-30 21:58 编辑

请教高手,函数怎么调用?我看着有四个参数,但是后三个参数不知道怎么输入?自己建立词库是在哪里建立?

TA的精华主题

TA的得分主题

发表于 2019-3-31 06:23 来自手机 | 显示全部楼层
此我采用给C# dll加上导出函数的方式
求科普,咋导出c标准函数

TA的精华主题

TA的得分主题

发表于 2019-4-10 11:49 来自手机 | 显示全部楼层
谢谢分享,好好学习,试试摆脱微软拼音输入法。

TA的精华主题

TA的得分主题

发表于 2019-4-10 17:24 | 显示全部楼层
本帖最后由 fxl447098457 于 2019-4-11 06:03 编辑

弄明白了,谢谢分享。。

TA的精华主题

TA的得分主题

发表于 2019-4-14 13:39 | 显示全部楼层
谢谢分享!
之前GZIP解压缩用winrar,效率上差了点。
另外这个dll有点大,能不能把两个功能分开成2个dll?

TA的精华主题

TA的得分主题

发表于 2019-4-16 18:28 | 显示全部楼层
本帖最后由 loquat 于 2019-4-16 18:29 编辑

微软拼音的词库可以提取出来啊
我讲个笑话,有个接单的人说的:客户总是找我开发程序,因为他说别人写的程序都太打了,动不动几十M,而我的才几百K
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2019-8-22 04:12 , Processed in 0.125186 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

沪公网安备 31011702000001号 沪ICP备11019229号

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师

快速回复 返回顶部 返回列表