根据excel模板将数据对应导出
客户端提交一个excel模板,然后将从数据库查询出来的数据导入的该模板中?
请问该怎么实现?
我现在有两个思路参考一下:
一,
1,直接读取用户提供的模板;
2,然后后将数据写入excel的对应位置。
此方案好像行不通。(拿不到文件)
二,
1,将用户提供的模板上传到服务器;
2,用poi操作excel,将数据写入;
3,生成一个新的excel给用户。
还请大神们提供好的方案!
------解决方案--------------------让用户上传数据模板这种的必须要规定excel表头的名称,也就是什么名称对应数据库里的哪个字段,这个必须要规定要不然用户随便写表头鬼知道是代表什么,正常的模板都是用户在系统上选好要导出哪些字段的数据,服务端生成给用户的
------解决方案--------------------第二种做法吧,通用的做法都这样的。
你必须要保证用户上传的模板是固定的,否则你的程序都要改动了。
模板固定的情况下,你就不要让用户上传了,直接放到服务器目录下,每次程序从那个目录取模板,然后生成新的数据给用户
------解决方案--------------------
模板的表头固定的,那你就不要让用户上传了,直接在用户导出的时候给用户一个选择要导出哪些字段(字段当然是表中存在的而且应该是以中文用户能理解的意思展现给用户),让他们打钩就是了,打钩了的字段就是你要到数据库查的数据,这些字段的中文意思就是excel的表头了。用poi生成excel就是了
------解决方案--------------------
第二种做法吧,通用的做法都这样的。
你必须要保证用户上传的模板是固定的,否则你的程序都要改动了。
模板固定的情况下,你就不要让用户上传了,直接放到服务器目录下,每次程序从那个目录取模板,然后生成新的数据给用户
我也想过直接放在服务器上,模板的表头是不会改动,但是有些字段的值会改动。
如果模板中字段值的变化会影响整个结果的话,那就提供一个上传的接口,如果用户的想修改模板的话,你就将现有的模板备份,使用新的模板生成数据
------解决方案--------------------
第二种做法吧,通用的做法都这样的。
你必须要保证用户上传的模板是固定的,否则你的程序都要改动了。
模板固定的情况下,你就不要让用户上传了,直接放到服务器目录下,每次程序从那个目录取模板,然后生成新的数据给用户
我也想过直接放在服务器上,模板的表头是不会改动,但是有些字段的值会改动。
用户上传模板的表头一般都可能是中文的,而数据库的字段是英文,而且并不知道那个字段对应什么属性,最起码你要写一个配置文件去解析中文字段,生成文件之前先读取配置文件,比如:名字=name ,年龄=age,这样