因此,我正在使用我构建的 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;
最佳答案
这对我有用:
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 时跳过参数(但你可以把它们放在最后)。
关于Javascript/Excel ActiveX 对象。查找完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700907/