游戏开发中免不了读取游戏配表,策划也通常会配置Excel或csv表。但游戏程序直接读取这样的表通常不是个好想法,尤其对于前端。如果把文件内容读取出来,接下来就可以为所欲为了,比如转成xml,json或自定义格式等等。
接下来说的是读取excel表数据。公司使用的是vba,乍看666啊,但是真心慢啊,还有乱码问题(这个网上有介绍解决方法,但也比较蛋疼),于是就用com组件(添加 Microsoft.Office.Interop.Excel.dll引用)方式写了一个,速度提高了一倍(不要被网上大多数说的骗了,说此方式慢,实际上取数据时用object[,] cells = (object[,])worksheet.UsedRange.Value;var value = cells[row, column].ToString();这个操作,速度堪比oledb(Microsoft.Jet.OLEDB)方式的。至于oledb方式,暂不考虑,还要安装oledb驱动,当时尝试时竟然发现自己都没有安装),乱码问题也一并解决,后来公司不让用破解版office了(至于为何不用正版,你懂的),全部卸载安装wps,wps vba一堆问题,普通版不带vba,弄好了vba,update下来的文件里vba程序竟然没有了,无语了。于是转向了NPOI(速度再次提高一倍,如果使用任务Task,速度还可以再提高一倍,天下武功唯快不破,唔哈哈哈。。。)。下面是使用开源项目NPOI读取excel的示例。
NPOI可以在此下载https://archive.codeplex.com/?p