无论你的系统是什么架构是 c/s 还是 b/s,如何将展示区域内如 Grid/Table 内的数据导出到 Excel 都是所有开发人员避不开的问题,Excel 实在太强大了。由于不管什么开发什么系统都很难为每个功能所展示的数据做进一步的数据拓展。由于数据拓展功能对于不同操作员来说有不同理解,开发任务是没有尽头的,因此把当前页面所展示的数据导到 Excel 再利用 Excel 强大的汇总分类先对付着,不失为上策。
最简单的办法无非就是直接将 Grid/Table 的导出伪装成 excel 格式的 html 文件,这种方法是最快的,再高端点的用 js-xlsx 硬生成 xlsx,呃这里我说一下,其实 js-xlsx 我看了半天没太看明白但也感觉跟传说中支持各种格式不太属实。但这两种方法都有同样的问题,Grid/Table 的样式基本都丢失了,想要重建 Grid/Table 的样式这工程量还真不小,明明在系统中展示的是这样子这样子的,在 Excel 中却是那样子那样子的,虽然这问题不大,在 Excel 设置一下格式就行也总是烦人,增加实际操作人员的工作量。
我也不太可能直接放弃对 Excel 2003 兼容直接把导出改为 Excel 2007+ 的方案。
但 Excel 可以打开什么文件呢?让我来看一看,这不是还有 html 与 xml 吗?是否意味着,我只需要生成 Excel 可以打开的兼容文件就行了?只要操作员认为自己是在操作 Excel 文件,这问题不就解决了吗?
说干就干,先来一波原型验证,首选肯定是我最熟悉的 VFP 了哈哈,先随便在 VFP 做一个随便的 Grid,当然这个 Grid 不管标题还是内容其实都不随便那是后话了。