Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java对象的通用导出到Excel_Java_Excel_Spring_Jakarta Ee_Export To Excel - Fatal编程技术网

java对象的通用导出到Excel

java对象的通用导出到Excel,java,excel,spring,jakarta-ee,export-to-excel,Java,Excel,Spring,Jakarta Ee,Export To Excel,在我们的spring项目中,有许多控制器接收客户机输入(过滤器),这将从DB创建动态查询,结果集将返回给客户机 例如: public List<UserResultDTO> getUsers(Filter filter); public List<TransactionResultDTO> getTransactions(Filter filter); public List<ProfileResultDTO> getProfile(Filter filter

在我们的spring项目中,有许多控制器接收客户机输入(过滤器),这将从DB创建动态查询,结果集将返回给客户机

例如:

public List<UserResultDTO> getUsers(Filter filter);
public List<TransactionResultDTO> getTransactions(Filter filter);
public List<ProfileResultDTO> getProfile(Filter filter);
公共列表getUsers(过滤器过滤器);
公共列表getTransactions(过滤器过滤器);
公共列表getProfile(过滤器);
我们的新要求非常简单: “请允许将这些结果列表导出到excel文件”

导出到excel文件的整个想法已经完成。(我们有一个非常强大的Excel提供程序)

因此,我们的目标基本上是创建一个非常通用的函数\服务,它将获取一个列表,并能够以通用的方式导出它

你知道这类任务的最佳实践是什么吗

心中的想法:

1) 创建一个枚举,该枚举将包含每个模型对象的所有配置和列名(看起来非常冗余和维护地狱)

2) 也许可以使用反射?甚至可以对Excel列名的字段使用注释

3) 其他的


谢谢

当然不是枚举;这将增加一种人为的相互依赖性:如果一些独立的DTO被更改,枚举将被访问几次

其中,元信息存储为与DTO类并行的Java类。这尤其适用于这种情况。但可能是杀伤力太大了

因此,它可能归结为您自己的适配器,使用反射提供合理的输出。以及使用声明方式自动检测到的改进:

  • (不太好)DTO中的注释(DTO是如何开发的?)
  • 具有完整类名的XML或.properties;每个类一个XML

感谢Joop的回复!我们有一个小规模的项目,而BeanInfo API似乎正是您所说的:一种过度杀伤力。你能详细说明一下替代方案吗?顺便说一下,DTO是由服务器团队(我们的团队,5个开发人员)开发的。我想列名和格式是唯一的要点。如果您考虑国际化,则从变量名/SQL名称到可本地化列名称的映射将是一个很好的属性。