NX二次开发-各种配置文件方案的比较(二)-Excel

NX二次开发-各种配置文件方案的比较(二)-Excel

者:薛剑腾     审校:黄盛益

适用版本:NX6以上

概  述

在应用程序的配置文件方面,长期以来我们研发团队内部都是根据各个项目的情况进行制定,也有的时候因为客户方并没有要求,可能是按照开发人员自己的经验、习惯和偏好制定,并没有统一的标准、格式以及代码只对应的接口方便其他人调用。本技巧则对目前存在的一些配置文件方法进行总结和比较。

详细内容

Excel格式

对于我们开发人员来说,我们定制配置文件的时候可能会选择使用文本格式,或者一些更标准的数据格式如xml或者json。但是这些格式对于客户来说或者需要约定规则,或者太过专业难懂,需要掌握一定的开发基础才能手动进行编写和修改。因此在很多客户会选择使用Excel格式作为配置文件的格式。

优点和缺点

正如上文所说,客户更倾向于使用Excel作为他们的首选配置文件的格式,因为相比过于简单、无规则的文本配置文件、有一定学习成本的xml和json文件,Excel文件可以使用Office Excel、WPS Excel等流行的软件进行编辑,而且客户通常对这些软件都比较熟练。

NX二次开发-各种配置文件方案的比较(二)-Excel

Excel格式的优点很大程度上来源于Excel的编辑软件,通过软件用户可以直观地查看各个配置的值,可以实现快速编辑、批量编辑或更复杂的编辑操作。可以设置单元格和表格的样式,使表格更加清晰明了。还可以实现排序、筛选、批注等操作。

对于Excel格式本身,它在一个Excel文件里可以设置不同的工作表,对于配置文件可以将不同的工作表定义为不同分组的配置,集成在一个文件中。

Excel中的单元格可以指定为不同类型的数据格式,如文本、数字、日期等。如果规范的使用,这点可以成为配置文件格式的优点。但在多数情况下客户并不会在意填写单元格的数据类型,因此我们需要兼容每种情况,反而会使解析数据更为复杂。

对于应用程序的配置文件来说,Excel文件的很多功能都是不必要的,有时客户设置的一些和配置的数据无关的东西却可能会使得程序读取的值有偏差甚至报错。换句话说,Excel格式作为配置文件的格式较为累赘。

定义内容范围

 

Excel在形式上符合表格的行、列的形式,这使得它在使用上和数据库中的表很接近。但是不同的是Excel表格并没有很严格地限定行和列,这使得用户可以随便地编辑任意的单元格。具体到我们的配置文件的情况就是客户经常会在规范的表格范围外任意地方添加其他的内容,例如备注、注释等。实际上这样会破坏我们程序中解析表格的流程,因为我们很难区分这个单元格是不是我们配置的内容。这时我们就需要一些特定的约束规则让我们程序知道内容的边界。比较典型的方法有:

添加END作为行和列的结束,END标记需要在特意的添加,在表格中也显得比较突兀:

NX二次开发-各种配置文件方案的比较(二)-Excel

另外一种是规定若遇到空行和空列就结束读取。那么客户如果要为表格添加备注内容就必须要在一行空行外进行,但是相对END标记来说这种规定不太明了,容易被忽略。另外也不排除可能出现无数据行的情况。

Excel的读取方法

 

 

对于在.NET和C#环境下读取Excel文件,常用的方法有:Microsoft Office的COM组件、NPOI和Spire.Xls for .NET。Office COM组件要求客户机上必须安装Office,且对Office的版本也有要求,效率也相对较低。Spire.Xls是较为优秀的Excel读写类库,但由于是商业类库,因此有一定的限制。相比较下NPOI是开源的类库,而且现在也依然在维护,效率对于一般的配置表和中小规模的数据表的读取也可以胜任,因此是我们读取方法的首选。

总  结

相对于配置文件格式,Excel更适合用于储存用户的数据,或作为一些报告和结果的输出文件,但由于客户很大程度上依赖于用Excel处理数据,而且也确实很难找到客户可以熟练使用的配置格式,因此Excel格式依然作为一种常见的配置格式需要我们处理。

相关软件
40 多年来,Nastran 有限元求解器一直是应力、振动、屈曲、结构故障、热传递、声学和气动弹性力学分析方面的行业标准。航空航天、汽车、电子、重型机械、医疗设备及其他行业的众多制造商和工程供应商均依靠 NX Nastran 软件满足在工程
相关阅读