我正在使用我的Java类处理基本电子表格编辑器(全部从头开始编写)。我负责编写函数包(分析单元格的内容并输出计算结果)。 目前我可以通过将其转换为RPN并计算结果来解析表达式,如1*(2+3)^4-5%6
。现在我正在为该表达式添加单元名称。我想单元名称解析器要做的是直接用它们的数字值替换单元名称,但我很难。我已经设法找到一种使用正则表达式的方法(灵感来自https://stackoverflow.com/a/10073892/3165024),但我不知道如何使用表达式中的多个单元格名称。解析电子表格语法
Q
解析电子表格语法
0
A
回答
0
只是一个说明:使用正则表达式这种方法是不正确的方式。像A1这样的简单引用可以被引用单元格中的 值成功替换,但当您试图解析更复杂的表达式时,例如 交叉引用(= Sheet2!A1,='My sheet' !A1),3d引用(= Sheet1:Sheet3!A1),引用R1C1样式(= R [-1] C3),定义名称引用(=名称)等。 替换计算值的单元格引用将不允许您计算像ROW(A2)(结果为2), 等内置函数,它需要引用参数而不是单元格值。
我认为您的RPN表单应该放大以包含简单引用,3d引用等项目。 为类似Excel的表达式创建解析器的最简单方法是使用编译器生成器。例如,看看“编译器生成器Coco/R”(http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/),它有一个适用于java的版本。
相关问题
- 1. mysql/rails电子表格url解析
- 2. 解析或电子表格中的
- 3. XLSX解析使用电子表格:: XLSX
- 4. 解析Perl中的XML电子表格
- 5. 解析OpenDocument电子表格(* .ods)
- 6. 无法解析与电子表格XLSX ::阅读
- 7. 解析格式从谷歌电子表格文本
- 8. visual basic在excel电子表格中解析单元格
- 9. 电子邮件PHP解析错误:语法错误,意外的';'
- 10. 谷歌电子表格无法打开xml电子表格
- 11. IMPORTXML谷歌电子表格解析公式错误
- 12. 解析电子邮件并附加Google表格
- 13. 在Excel中将Excel电子表格解析为模型
- 14. 限制Google电子表格中的地址解析呼叫
- 15. 如何对电子表格解析器进行单元测试?
- 16. 解析Excel电子表格以进入MySQL数据库
- 17. 用Perl或c解析电子表格会更好吗?
- 18. 将多行Excel电子表格解析为maxscript
- 19. 如何解析Android中电子表格的复杂JSON数据?
- 20. PHPExcel:解析电子表格数据并存储到数据库
- 21. 谷歌电子表格自定义xml解析函数
- 22. 使用Excel :: XLSX解析Perl中的电子表格
- 23. 在Java/Groovy电子表格分析器
- 24. 解析所有的空格和语法
- 25. 语法规格解析Shift/Reduce冲突
- 26. 电子表格标记语言
- 27. PHP与谷歌电子表格(文档API)与Zend - DOMDocument无法解析XML
- 28. Ruby/Watir:无法通过xls解析使用电子表格的列GEM
- 29. 解析电子邮件
- 30. 解析HTML Jsoup - Android电子