使用VLOOKUP公式

时间:2015-08-07 10:23:00

标签: c# excel closedxml

我目前正在开发一个项目,该项目使用closedXML从excel读取数据,但我的代码有错误,因为excel单元格中包含vlookup公式。有没有办法让closedxml用vlookup公式读取行值?谢谢!

这是我收到“语法错误”错误的地方:

if (rowValue.Cell(colnum).HasFormula)
{
    ((IDictionary<String, Object>)item)[field] = rowValue.Cell(colnum).Value.ToString();
}

4 个答案:

答案 0 :(得分:2)

http://github.com/ClosedXML/ClosedXMLdevelop分支现在支持VLOOKUPHLOOKUP

答案 1 :(得分:1)

仅发现 ValueCached 提供了正确的文本。 (ClosedXML_v0.76.0.0)

IXLCell JobCell = row.Cells().Where(item => item.Address.ColumnLetter == "B").FirstOrDefault(); }
string Job = JobCell.RichText.Text;
if (string.IsNullOrEmpty(Job))
{
   Job = JobCell.ValueCached;
}

答案 2 :(得分:0)

ClosedXML不支持VLOOKUPHLOOKUP公式。如果您需要它们,您必须通过读取单元格范围并使用给定值搜索行或列来手动实现它们。

答案 3 :(得分:0)

正如Raidri所提到的,封闭XML不支持VLOOKUPS。

请参阅closedxml代码库论坛上的讨论,了解关闭xml中的VLOOKUP支持的更新

https://closedxml.codeplex.com/discussions/569497

建议的解决方法是为模板文件编写一个VBA宏以挂接到之前的保存事件,并将特殊值粘贴到隐藏的工作表中,然后从那里上传。请参阅这些链接以获取启动程序。

在VBA中以编程方式粘贴特殊值 - How to remove formulas from sheet but keep their calculated values 挂钩前保存事件 - http://www.mrexcel.com/forum/excel-questions/374035-visual-basic-applications-save-event.html