首页 新闻 会员 周边 捐助

NPOI 关于excel计算公式,且公式有外部引用

0
悬赏园豆:50 [已解决问题] 解决于 2018-03-07 18:14

现在有个需求,用户自定义个有外部引用的模板:大体上是某个单元格引用了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中有外部引用,而我们软件又有计算所有单元格值,所以出错,如果这条路走不通的话请问大家还有其他建议吗?

猝不及防的主页 猝不及防 | 老鸟四级 | 园豆:2878
提问于:2018-03-07 09:24
< >
分享
最佳答案
0

如果是我做的话,NPOI只会用于导出数据,需要进行EXCEL自动化的部分我会使用 Excel VBA 或者VSTS进行开发。

这种情况建议你咨询Excel高手,或者你花些时间学点EXCEL。

收获园豆:50
爱编程的大叔 | 高人七级 |园豆:30844 | 2018-03-07 09:30

x谢谢大叔,您的指引让我找到了新的方向

猝不及防 | 园豆:2878 (老鸟四级) | 2018-03-07 10:41
其他回答(1)
0

..我现在的解决方法是不走EvaluateAll的方法,目前没发现问题..好像打开excel的时候它也会自己计算一下公式

猝不及防 | 园豆:2878 (老鸟四级) | 2018-03-07 10:42

是的,EXCEL在打开时,会对公式进行自动计算。

 

这其实也可以算是一种业务熟悉。

如果你要开发EXCEL相关的,对EXCEL的了解越多越好。

其实EXCEL啥都能做的,除了不能生孩子外。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2018-03-07 11:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册