现在有个需求,用户自定义个有外部引用的模板:大体上是某个单元格引用了c:\\xxxxx\a.xls.A1内容,然后我们用npoi导出这个excel,中间需要计算所有单元格内容EvaluateAll()结果方法报错:无法解析a.xls(某个外部引用),需要设置环境
然后我百度,加了
HSSFFormulaEvaluator.SetupEnvironment(workbookNames, evaluators);
iFormulaEvaluator.SetupReferencedWorkbooks(workbooks);
将所有的外部引用的文件路径/文件名传了进去
结果发现,如果被引用excel和当前excel在同一级目录,则可以计算所有单元格内容,如果不是在同一级目录,则会报错:无法解析a.xls(某个外部引用),c:\\xxxxx\a.xls.A1;c:\\xxxxx\b.xls.A1;c:\\xxxxx\c.xls.A1是有效的,还是无法解析,但是我穿进去的外部引用路径之类的他还说是有效的
请问有没有大神用过npoi计算公式,有外部引用的,你们是怎么做的呢?
另外:
我们软件可以导出一个带有数据的excelA。客户希望在他们的excelB中自动填写一些我们的数据,我的想法就是将他们的excelB的sheet添加到我们的excelA里,然后在他们的sheet里写公式引用我们的数据,结果就是现在这样,因为他们的excelB中有外部引用,而我们软件又有计算所有单元格值,所以出错,如果这条路走不通的话请问大家还有其他建议吗?