Javascript/Excel ActiveX 对象。查找完全匹配
Posted
技术标签:
【中文标题】Javascript/Excel ActiveX 对象。查找完全匹配【英文标题】:Javascript/Excel ActiveX object. Find exact match 【发布时间】:2014-05-07 05:03:54 【问题描述】:因此,我正在使用我构建的 SharePoint Web 部件(html 表单 Web 部件)来查询托管在我们的 Sharepoint 网站上的 excel 文件。我编写了javascript来创建一个Excel ActiveX对象,我可以很好地搜索工作表。
但是,我需要让它搜索完全匹配(整个单元格)而不仅仅是部分。我知道我需要的代码,但我无法让它工作。我需要了解如何为“Find()”函数的“xlWhole”参数创建正确的对象类型。
我遇到问题的代码行被注释掉了,因为那行不通。有什么见解吗?我见过 Range.Find 方法,但我就是不能让它工作。
var excel = new ActiveXObject("Excel.Application");
var wb = excel.Workbooks.Open("workbook path");
var ws = wb.Worksheets("worksheet name");
var ws = wb.ActiveSheet;
//var cell = ws.Cells.Find(str,excel.XlLookAt.xlWhole);
var cell = ws.Cells.Find(str);
foundRow = cell.Row;
【问题讨论】:
您需要做的就是传递常量xlWhole
(即 1)的值 - 您可以在 Excel vBA 对象浏览器中找到它。
试试ws.Cells.Find(str,,,1)
ws.Cells.Find(str,,,1) 给我一个语法错误,而 ws.Cells.Find(str,0,0,1) 给我一个类型不匹配。这应该在 JavaScript 中工作,对吗?
【参考方案1】:
这对我有用:
function searchExcel()
var excel =new ActiveXObject("Excel.Application");
excel.visible=true;
var wb = excel.workbooks.open("D:\\Analysis\\tmp\\Book1.xlsx");
var ws = wb.sheets(1);
var str="Value1";
// .Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection,
// MatchCase, MatchByte, SearchFormat)
var cell = ws.Cells.Find(str,ws.Cells(1),-4163,1)
alert(cell?cell.Row:(str+" not found"));
excel.quit();
我猜你在 js 中使用 COM 时不能跳过参数(但你可以把它们放在最后)。
【讨论】:
宾果游戏。做到了。您在哪里找到有关 Find() 函数常量的信息? 在 Excel 中转到 VB 编辑器并点击F2
以打开对象浏览器窗口:您可以输入常量名称以查看它们的值。或者在立即/调试窗口中输入(例如)? xlWhole
。参数列表来自msdn.microsoft.com/en-us/library/office/…以上是关于Javascript/Excel ActiveX 对象。查找完全匹配的主要内容,如果未能解决你的问题,请参考以下文章
将 ActiveX 包装到拦截调用(ActiveX 代理包装器)
如何将 MFC ActiveX 控件添加到现有的 activex 项目