这里有一个由Google托管的非常酷的差异类:
http://code.google.com/p/google-diff-match-patch/
我之前在一些网站上使用过它,但现在我需要在 Excel宏中使用它来比较两个单元格之间的文本.
但是,它仅适用于JavaScript,Python,Java和C++,而不适用于VBA.
我的用户仅限于Excel 2003,因此纯.NET解决方案无效.手动将代码翻译为VBA将花费太多时间并且难以升级.
我考虑的一个选项是使用.NET编译器(JScript.NET或J#)编译JavaScript或Java源代码,使用Reflector输出为VB.NET,然后最终手动将VB.NET代码降级为VBA,给我一个纯粹的VBA解决方案.在使用任何.NET编译器进行编译时遇到问题之后,我放弃了这条路径.
假设我可以使用一个可用的.NET库,我本可以使用ExcelDna(http://www.codeplex.com/exceldna)这个开源Excel插件来简化.NET代码集成.
我的最后一个想法是托管一个Internet Explorer对象,向它发送JavaScript源代码并调用它.即使我让它工作,我的猜测是它会变得很脏而且很混乱.
更新:找到解决方案!
我通过接受的答案使用了下面描述的WSC方法.我不得不稍微更改WSC代码以清理差异并返回一个VBA兼容的数组数组:
function DiffFast(text1, text2)
{
var d = dmp.diff_main(text1, text2, true);
dmp.diff_cleanupSemantic(d);
var dictionary = new ActiveXObject("Scripting.Dictionary"); // VBA-compatible array
for ( var i = 0; i < d.length; i++ ) {
dictionary.add(i, JS2VBArray(d[i]));
}
return dictionary.Items();
}
function JS2VBArray(objJSArray)
{
var dictionary = new ActiveXObject("Scripting.Dictionary");
for (var i = 0; i < objJSArray.length; i++) {
dictionary.add( i, objJSArray[ i ] );
}
return dictionary.Items(); …Run Code Online (Sandbox Code Playgroud) 我希望使用特定的密钥和IV值在VBScript中使用Rijndael/AES加密一些数据.有没有好的功能库或COM组件可以使用?
我看着CAPICOM ; 它只允许使用密码,并且不允许设置特定的密钥和IV值.
.net ×1
aes ×1
asp-classic ×1
excel ×1
j# ×1
javascript ×1
rfc2898 ×1
rijndael ×1
vba ×1
vbscript ×1