java 后台生成多Sheet的Excel。数据获取问题

我现在的需求是:想通过java生成一个多sheet的Excel,别的基本上没有问题了,就是把数据放到每一个单元格里,我看网上是
public static String HEADERS[] = {"客户名称", "订单时间", "订单号"}

List<List<String>> data = new ArrayList<List<String>>();
            for (int i = 1; i < 5; i++) {
                List rowData = new ArrayList();
                rowData.add(String.valueOf(i));
                rowData.add("东霖柏鸿");
                data.add(rowData);
            }
            
            然后一个个扔到workbook里的
             HSSFWorkbook workbook = new HSSFWorkbook();
        eeu.exportExcel(workbook, 0, "上海", HEADERS, data, out,COLUMN_WIDTH);

这种的话必须要列的顺序和rowData的添加的顺序一致才行,有没有别的办法,比如设置一个

   public static String GETTER_METHOD_NAME[] = {"getCustomerName", "getOrderDate", "getTradeOrderCode"}

和HEADERS[]一一对应即可,按照顺序输入值,该怎么写?

阅读 3.5k
1 个回答

可以通过反射实现。

public static void main(String[] args){
        ReflectInvokeDemo reflectInvokeDemo = new ReflectInvokeDemo();
        reflectInvokeDemo.testInvoke(reflectInvokeDemo);
    }

    public void testInvoke(ReflectInvokeDemo reflectInvokeDemo){
        Class demo1Class = reflectInvokeDemo.getClass();

        Method method = null;
        try {
            method = demo1Class.getMethod("getCustomerName");
            Object invoke = method.invoke(reflectInvokeDemo);
            System.out.println(invoke);
        } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
            e.printStackTrace();
        }
    }

    private String customerName;
    
    public String getCustomerName() {
        if(customerName == null)
            return  "就是这样搞";
        return customerName;
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题