excel工具类和获取对象的属性名和属性值

java反射获取实体类的属性名和值通过POI导出EXCEl,并实现表格列宽度自适应 首先介绍POI: Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 结构: HSSF - 提供读写Microsoft Excel格式档案的功能。 XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。 HWPF - 提供读写Microsoft Word格式档案的功... 阅读详情

package com.clouddo.basicdb.common;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;

import java.io.*;
import java.lang.reflect.Method;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**

  • 文件名称: com.clouddo.basicdb.common.PoiUtil.java

  • 初始作者: JangSinyu

  • 创建日期: 2018/12/21

  • 功能说明: POI 的 Excel 导入导出工具类

  • =================================================

  • 修改记录:

  • 修改作者 日期 修改内容

  • ================================================

  • Copyright © 2010-2011 .All rights reserved.

    */
    public class PoiUtil {

    /**
    *

    • 方法描述: 读取Excel数据
    • 初始作者: JangSinyu
    • 创建日期: 2018年12月20日-上午11:10:45
    • 开始版本: 1.0.0
    • =================================================
    • 修改记录:
    • 修改作者 日期 修改内容
    • ================================================
    • @param file
    • @return
    • @throws IOException
      */
      public static List<String[]> readExcel(MultipartFile file) throws IOException {
      return readExcel(file.getInputStream(),file.getOriginalFilename(),1,0);
      }

    /**
    *

    • 方法描述: 读取Excel数据

    • 初始作者: JangSinyu

    • 创建日期: 2018年12月20日-上午11:10:45

    • 开始版本: 1.0.0

    • =================================================

    • 修改记录:

    • 修改作者 日期 修改内容

    • ================================================

    • @param file file文件

    • @param starRow 开始行数(一般第一行是标题)

    • @param starCell 开始单元格

    • @return success or defeat
      */
      public static List<String[]> readExcel(InputStream file, String fileName, int starRow, int starCell) {
      Workbook wb = null;
      //判断文件类型 03或是07
      try {
      if (isExcel2007(fileName)) {
      wb = new XSSFWorkbook(file);
      }
      if (isExcel2003(fileName)) {
      wb = new HSSFWorkbook(file);
      }
      } catch (Exception e) {
      logger.error(“解析excel文档流有误。”, e);
      } finally {
      try {
      file.close();
      } catch (IOException e) {
      e.printStackTrace();
      }
      }
      try {
      List<String[]> list = new ArrayList<>();
      //选择sheet文件
      Sheet sheet = wb.getSheetAt(0);

       //获得最大行数
       int lastRowNum = sheet.getLastRowNum();
       //System.out.println("最大row行数是:"+lastRowNum);
       for (int i = starRow; i <= lastRowNum; i++) {
           //获取第i行的数据
           Row row = sheet.getRow(i);
           //获取第i行的最大cell格
           int lastCellNum = row.getLastCellNum();
           //System.out.println("第"+(i+1)+"行最大cell格数是:"+lastCellNum);
           //创建保存数据的String 数组对象
           String[] obj = new String[lastCellNum];
           for (int j = starCell; j < lastCellNum; j++) {
               Cell cell = row.getCell(j);
               //获取当前cell表格的值,并放入obj
               obj[j] = getMyCellType(cell);
           }
           list.add(obj);
       }
       wb.close();
       logger.info("读取excel,成功将其转成Object数组");
       return list;
      

      } catch (Exception e) {
      logger.error(“解析excel文档流有误。”, e);
      return null;
      }
      }

    /**
    *

    • 方法描述: Excel导出
    • 初始作者: JangSinyu
    • 创建日期: 2018年12月20日-上午11:10:45
    • 开始版本: 1.0.0
    • =================================================
    • 修改记录:
    • 修改作者 日期 修改内容
    • ================================================
    • @param columnNames 到导出的对象属性名
    • @param keyList 要导出的对象自己起的输赢对应的名字—(必须与属性名顺序相同)
    • @param objList 要导出的对象集合
    • @param filePath 导出地址
    • @param fileName 导出文件名称
    • @throws Exception
      */
      public static void downLoadExcel(String[] columnNames, String[] keyList, List<?> objList, String filePath, String fileName){
      if (objList.size() > 1000000){
      List<List<?>> lists = fixedGrouping(objList, 1000000);
      for (int i = 0; i < lists.size(); i++) {
      downLoadExcelManySheet(columnNames,keyList,lists,filePath,fileName,0);
      }
      }else {
      downLoadExcelSingleSheet(columnNames,keyList,objList,filePath,fileName);
      }
      }

    private static void downLoadExcelManySheet(String[] columnNames, String[] keyList, List<List<?>> objList, String filePath, String fileName,int num) {
    Workbook wb = null;
    //判断文件类型 03或是07
    if (isExcel2007(fileName)) {
    wb = new SXSSFWorkbook();
    }
    if (isExcel2003(fileName)) {
    wb = new HSSFWorkbook();
    }
    //创建sheet
    for (int a = 0; a < objList.size(); a++) {
    List<?> objects = objList.get(a);
    Sheet sheet = wb.createSheet(“sheet” + a);
    //创建第一行,存放key
    Row row = sheet.createRow(0);
    for (int i = 0; i < keyList.length; i++) {
    row.createCell(i).setCellValue(keyList[i]);
    }
    //先创建object空对象
    Object project = null;
    for (int i = 0; i < objects.size(); i++) {
    Row row1 = sheet.createRow(i+1);
    for (int j = 0; j < columnNames.length; j++) {
    //创建obj实例
    project = objects.get(i);
    row1.createCell(j).setCellValue(getValueByName(columnNames[j],project)+"");
    }
    }
    }
    //将文件响应到电脑
    try {
    FileOutputStream fileOut = new FileOutputStream(filePath+"\"+fileName);
    wb.write(fileOut);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    private static void downLoadExcelSingleSheet(String[] columnNames, String[] keyList, List<?> objList, String filePath, String fileName) {
    Workbook wb = null;
    //判断文件类型 03或是07
    if (isExcel2007(fileName)) {
    wb = new SXSSFWorkbook();
    }
    if (isExcel2003(fileName)) {
    wb = new HSSFWorkbook();
    }
    //创建sheet
    Sheet sheet = wb.createSheet();

     //创建第一行,存放key
     Row row = sheet.createRow(0);
     for (int i = 0; i < keyList.length; i++) {
         row.createCell(i).setCellValue(keyList[i]);
     }
     //先创建object空对象
     Object project = null;
     for (int i = 0; i < objList.size(); i++) {
         Row row1 = sheet.createRow(i+1);
         for (int j = 0; j < columnNames.length; j++) {
             //创建obj实例
             project = objList.get(i);
             row1.createCell(j).setCellValue(getValueByName(columnNames[j],project)+"");
         }
     }
     //将文件响应到电脑
     try {
         FileOutputStream fileOut = new FileOutputStream(filePath+"\\"+fileName);
         wb.write(fileOut);
     } catch (Exception e) {
         e.printStackTrace();
     }
    

    }

    //利用反射获得对象的值
    private static Object getValueByName(String fieldName, Object obj){
    try {
    String firstLetter = fieldName.substring(0, 1).toUpperCase();
    String getter = “get” + firstLetter + fieldName.substring(1);
    Method method = obj.getClass().getMethod(getter, new Class[] {});
    Object value = method.invoke(obj, new Object[] {});
    return value;
    } catch (Exception e) {
    e.printStackTrace();
    return null;
    }
    }

    //获得cell的值
    private static String getMyCellType(Cell cell){
    String value = “”;
    switch (cell.getCellType()) {
    case Cell.CELL_TYPE_NUMERIC: // 数字
    //如果为时间格式的内容
    if (DateUtil.isCellDateFormatted(cell)) {
    //注:format格式 yyyy-MM-dd hh:mm:ss 中小时为12小时制,若要24小时制,则把小h变为H即可,yyyy-MM-dd HH:mm:ss
    SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
    value=sdf.format(DateUtil.getJavaDate(cell.getNumericCellValue())).toString();
    break;
    } else {
    value = new DecimalFormat(“0”).format(cell.getNumericCellValue());
    }
    break;
    case Cell.CELL_TYPE_STRING: // 字符串
    value = cell.getStringCellValue();
    break;
    case Cell.CELL_TYPE_BOOLEAN: // Boolean
    value = cell.getBooleanCellValue() + “”;
    break;
    case Cell.CELL_TYPE_FORMULA: // 公式
    value = cell.getCellFormula() + “”;
    break;
    case Cell.CELL_TYPE_BLANK: // 空值
    value = “”;
    break;
    case Cell.CELL_TYPE_ERROR: // 故障
    value = “非法字符”;
    break;
    default:
    value = “未知类型”;
    break;
    }
    return value;
    }

    // 关闭文件流
    private static void close(MultipartFile file) {
    try {
    InputStream inputStream = file.getInputStream();
    if (inputStream != null) {
    inputStream.close();
    }
    } catch (IOException e) {
    logger.error(e.getMessage(), e);
    }
    }
    //关闭流
    private static void close(InputStream file) {
    if (file != null) {
    try {
    file.close();
    } catch (IOException e) {
    logger.error(e.getMessage(), e);
    }
    }
    }

    //验证手机号格式是或正确
    private static boolean isMobile(String str) {
    Pattern p = null;
    Matcher m = null;
    boolean isMatch = false;
    //制定验证条件
    String regex1 = “1[3,4,5,7,8][0-9]{9} " ; S t r i n g r e g e x 2 = " ( ( 13 [ 0 − 9 ] ) ∣ ( 14 [ 579 ] ) ∣ ( 15 ( [ 0 − 3 , 5 − 9 ] ) ) ∣ ( 16 [ 6 ] ) ∣ ( 17 [ 0135678 ] ) ∣ ( 18 [ 0 − 9 ] ∣ 19 [ 89 ] ) ) d 8 "; String regex2 = "^((13[0-9])|(14[579])|(15([0-3,5-9]))|(16[6])|(17[0135678])|(18[0-9]|19[89]))\\d{8} ";Stringregex2="((13[0−9])∣(14[579])∣(15([0−3,5−9]))∣(16[6])∣(17[0135678])∣(18[0−9]∣19[89]))d8”;
    p = Pattern.compile(regex2);
    m = p.matcher(str);
    isMatch = m.matches();
    return isMatch;
    }

    /**

    • 将一组数据固定分组,每组n个元素
    • @param source 要分组的数据源
    • @param n 每组n个元素
    • @return
      */
      private static List<List<?>> fixedGrouping(List<?> source, Integer n) {
      if (null == source || source.size() == 0 || n <= 0)
      return null;
      List<List<?>> result = new ArrayList<>();
      int remainder = source.size() % n;
      int size = (source.size() / n);
      for (int i = 0; i < size; i++) {
      List<?> subset = null;
      subset = source.subList(i * n, (i + 1) * n);
      result.add(subset);
      }
      if (remainder > 0) {
      List<?> subset = null;
      subset = source.subList(size * n, size * n + remainder);
      result.add(subset);
      }
      return result;
      }

    private static Logger logger = LoggerFactory.getLogger(ExcelUtil.class);

    private static String suffix_xls = “.xls”;

    private static String suffix_xlsx = “.xlsx”;

    // 判断是否是03的excel:xls
    private static boolean isExcel2003(String filePath) {
    return filePath.matches("^.+\.(?i)(xls)$");
    }

    // 判断是否是07的excel:xlsx
    private static boolean isExcel2007(String filePath) {
    return filePath.matches("^.+\.(?i)(xlsx)$");
    }

    // 根据后缀名判断excel是否合法
    private static boolean isCorrectExcel(String filePath) {
    if (isExcel2003(filePath) || isExcel2003(filePath)) {
    return true;
    } else {
    return false;
    }
    }

}
————————————————
版权声明:本文为优快云博主「仄.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/weixin_44186783/article/details/85682463

获取Java对象中所有的属性名称和属性值

1,首先我们创建一个Java实体类Person,并创建属性name,age,gender,代码如下:

public class Person {
private String name;
private int age;
private String gender;

public Person(String n,int a,String g) {
	name = n;
	age = a;
	gender = g;
}

public String getName() {
	return name;
}

public int getAge() {
	return age;
}
public String getGender() {
	return gender;
}

}
2、创建对象
Person person = new Person(“zhangsan”, 30, “男”);
3、创建获取属性数组的方法

/**  
 * 获取属性名数组  
 * */  
private static String[] getFiledName(Object o){  
    Field[] fields=o.getClass().getDeclaredFields();  
    String[] fieldNames=new String[fields.length];  
    for(int i=0;i<fields.length;i++){  

// System.out.println(fields[i].getType());
fieldNames[i]=fields[i].getName();
}
return fieldNames;
}
4,根据属性名称获取对应的属性值(通过get方法)
/* 根据属性名获取属性值
* */
private static Object getFieldValueByName(String fieldName, Object o) {
try {
String firstLetter = fieldName.substring(0, 1).toUpperCase();
String getter = “get” + firstLetter + fieldName.substring(1);
Method method = o.getClass().getMethod(getter, new Class[] {});
Object value = method.invoke(o, new Object[] {});
return value;
} catch (Exception e) {

        return null;    
    }    
}   

5、完美调用
StringBuilder sbName = new StringBuilder();
StringBuilder sbValue = new StringBuilder();
String[] fieldNames = getFiledName(person);

	  for(int j=0 ; j<fieldNames.length ; j++){     //遍历所有属性
               String name = fieldNames[j];    //获取属性的名字
               Object value = getFieldValueByName(name,person);
               sbName.append(name);
               sbValue.append(value);
                if(j != fieldNames.length - 1) {
                	sbName.append("/");
                	sbValue.append("/");
                }
              
              
        }
      
        System.out.println("attribute name:"+sbName.toString()); 
        System.out.println("attribute value:"+sbValue.toString()); 

6、打印结果:
attribute name:name/age/gender
attribute value:zhangsan/30/男

————————————————
版权声明:本文为优快云博主「Richard152」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/a1527238987/article/details/79121372


  1. 1 ↩︎

VC读取EXCEL数据并显示到列表控件中 代码为VC++读取EXCEL内数据,并显示到列表控件中,小例子,很实用,希望能帮到你 立即下载

相关推荐

java注解实现通用Excel中文表格转实体对象列表,支持中文表头,Excel批量导入,excel转实体对象,excel读取

java注解实现通用Excel中文表格转实体对象列表,支持中文表头,在Excel数据导入使用的通用工具类,代码简洁优雅 。基于注解实现的支持中文表头的读取Excel数据并转换为实体对象列表的工具类,使用该工具类可将Excel数据转换成任意实体任意字段

在VBA脚本中如何获取对象或变量的数据类型?(附VBA示例代码)

比如说,可以定义一个星期的枚举变量,保存周一~周日,或者定义一个性别的枚举变量,用来保存男、女、未知等性别。在写VBA脚本时,有时候可能会需要去获取对象或变量的数据类型,一方面,可能是需要与其他类型的变量进行比较,另一方面,可能是需要根据变量的数据类型来确定变量的取值范围。其实,在VBA中,还支持用户自定义类型。不同的是,对于不同的对象,它统一返回对象类型,而不是像TypeName函数一样,返回不同的对象字符描述。那么,VBA语言中有这么多的变量类型或者对象类型,我们如果获取它们的数据类型呢?

xcntime的专栏 2110

通过 CoovaChilli 和 FreeRADIUS 搭建一个公共 Wi-Fi 的认证系统,实现用户连接到 Wi-Fi 后通过 Captive Portal(强制登录页面)进行认证

要实现固定设备连接的功能,你可以通过MAC 地址认证来限制哪些设备可以通过 FreeRADIUS 进行身份验证和连接。你可以在 FreeRADIUS 的users文件中直接配置允许的设备的 MAC 地址,也可以通过数据库存储和查询设备信息,进一步提高管理效率。通过这些方法,你可以灵活地控制哪些设备能够访问你的 Wi-Fi 网络。

m0_69943017的博客 2646

通过反射获取一个对象的属性值三种方法比较

反射机制的用途非常多,比如获取方法,属性名和属性值等,甚至可以获取标签等标签属性。今天来比较几种获取实例化对象的属性值方法

weixin_45229417的博客 4867

C# 操作Excel的时候,出现"被呼叫方拒绝接受呼叫的异常"的解决方案(参考官方给出的解决方案)

首先官方有对这个错误给出解释和解决方案,连接如下: https://docs.microsoft.com/zh-cn/previous-versions/ms228772(v=vs.120)#%E5%8F%AF%E9%9D%A0%E7%BC%96%E7%A8%8B 简单来说,貌似是线程问题,我猜。。。 之前我尝试着在代码中添加 Thread.Sleep(1000); 来进行解决,这种办...

Ck_Max的博客 5767

AGX Orin设计-外围电路设计之一

AGX ORIN是英伟达Jetson系列中算力规格最高端的模组,其高达200TOPS/275TOPS的算力可以为各类场景提供澎湃的算力支持,本篇文章针对AGX ORIN的常规外围电路设计做分析描述。

zhiyuchenkeji的博客 4477

代码操作EXCEL格式的各种属性值

最近一直在帮部门做各种数据工作,要求也是五花八门,尤其是某些人要求导出excel还是格式,每次都现找现用,导致用过的也忘了。 所以今天整理了一下,把搜来的试来的常用到的,罗列一下,省得以后到处找,以js为例。 打印:ExcelSheet.PrintOut 或xlBook.PrintOut 1.页面设置 //页边距 左2厘米 ExcelSheet.ActiveShe...

weixin_34194551的博客 468

Unity 调用安卓内部安装apk

一、申请权限 应用内安装其他应用的权限属于特殊权限,需要在特殊申请。 Uri packageURI = Uri.parse("package:" + mContext.getPackageName()); Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI); startA...

BDDNH的博客 1238

Excel-VBA 快速上手(七、获取单元格对象)

vba、单元格对象、获取单元格对象

Ares5k 1万+

YOLOv11改进,YOLOv11添加DCNv4可变性卷积(windows系统成功编译),二次创新C3k2结构,全网最详细教程

引入了可变形卷积 v4 (DCNv4),这是一种为广泛视觉应用设计的高效且有效的操作算子。DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1. 移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2. 优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DCNv4相比DCNv3显著加快了收敛速度,并且处理速度大幅提升,前向传播速度超过三倍。DCNv4在多个任务中表现出色,包括图像分类、实例和语义分割,特别是在图像生成方面表现突出。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2664

uniapp:详细ios本地离线打包完整流程,使用XCode苹果本地离线打包APP,UNIAPP IOS离线打包并上传到上传到App Store应用商店(mac环境 Uniapp iOS本地离线打包)

uniapp ios 本地离线打包(攻略),iOS App打包发布上架,uni-app项目离线打包之iOS,uni-app实现XCode苹果本地离线打包APP,UNIAPP之IOS离线打包,iOS开发打包ipa,uniapp 打包 IOS,uniapp ios app离线打包配置,uniapp打包离线App(ios),uniapp ios打包详细步骤,最新版iOS Xcode如何证书配置和ipa打包(附图文教程)uniapp申请ios证书,uniapp iOS打包,证书申请,XCode打包IOS应用发布Ap

✅ 精选推荐文章 4506

获取一个对象的所有属性名和属性值

for(var s in obj) { heng.push(s) zhi.push(obj[s]) }

sanlyshi's front-end road 2546

MATLAB与ROS联合仿真——ROS环境搭建及相关准备工作(上)

本篇文章主要介绍在安装完ROS后,在进行MATLAB与ROS联合仿真之前,需要进行的一些环境搭建以及准备工作,主要分为 创建ROS工作空间及功能包、必备功能包安装、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷工具安装(选做) 六部分。    本部分内容共分为上下两篇,上篇包括创建ROS工作空间及功能包和必备功能包安装这两部分,下篇包括、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷工

慕羽★的博客 3361

Java反射获取对象VO的属性值(通过Getter方法)

有时候,需要动态获取对象的属性值。 比如,给你一个List,要你遍历这个List的对象的属性,而这个List里的对象并不固定。比如,这次User,下次可能是Company。 e.g. 这次我需要做一个Excel导出的工具类,导出的批量数据是以List类型传入的,List里的对象自然每次都不同,这取决于需要导出什么信息。 为了使用方便,将对象的属性名与属性值存于Map当中,使用...

dongjizheng9270的博客 734

基于深度学习的心律失常的自动分类

基于深度学习的心律失常的自动分类 作者:禅与计算机程序设计艺术 1. 背景介绍 1.1 心律失常的危害与检测的重要性 心律失常是一种常见的心血管疾病,严重威胁着人们的健康和生命。据统计,全球每年有数百万人因心律失

AI架构师小马 1139

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java获取对象的子_java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI。为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1、前端选中行导出;2、当前页导出;3、当前过滤条件导出。想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能。。。。。。。好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时...

weixin_42517623的博客 702

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java反射获取属性值_java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI。为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1、前端选中行导出;2、当前页导出;3、当前过滤条件导出。想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能。。。。。。。好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时...

weixin_33298963的博客 846

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java反射批量处理字段值_Java反射通过Getter方法获取对象VO的属性值过程解析

这篇文章主要介绍了Java反射通过Getter方法获取对象VO的属性值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下有时候,需要动态获取对象的属性值。比如,给你一个List,要你遍历这个List的对象的属性,而这个List里的对象并不固定。比如,这次User,下次可能是Company。e.g. 这次我需要做一个Excel导出的工具类,导出...

weixin_35930535的博客 332

java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI。为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1、前端选中行导出;2、当前页导出;3、当前过滤条件导出。想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能。。。。。。。好了,说了一堆废话,回归正题,本文是在...

weixin_33827731的博客 1284

java反射批量处理字段值_Java反射获取对象VO的属性值(通过Getter方法)

有时候,需要动态获取对象的属性值。比如,给你一个List,要你遍历这个List的对象的属性,而这个List里的对象并不固定。比如,这次User,下次可能是Company。e.g. 这次我需要做一个Excel导出的工具类,导出的批量数据是以List类型传入的,List里的对象自然每次都不同,这取决于需要导出什么信息。为了使用方便,将对象的属性名与属性值存于Map当中,使用时就可以直接遍历Map了。此...

weixin_39950083的博客 379

Java对象列表和Excel表格导入导出工具类

Java对象列表和Excel表格导入导出工具类

funfan的博客 1184

Java导出Excel工具类

依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version> ...

zdj18166896501的博客 421

POI Excel 工具类 导入

工具类 package com.fty.util; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.formula.functions.T; import org.apache.poi...

天予不洗头的博客 791

Excel导出工具类

一. 工具类(基于Apache POI ) package com.huawei.esysadmin.common.util; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Method; import java.text.SimpleDateFormat; import j...

t194978的博客 457

java excel工具类

最近写了一个Excel Util,参考API文档,自取 http://poi.apache.org/apidocs/ 这次的excel功能主要是提供给后台导出。为了配合阿里云的oss上传,所以并没有生成到本地,而是直接生成一个流对象,之后就可以通过流的形式,直接上传到阿里云oss。此处没有阿里云的代码,阿里云的oss上传比较简单,就不上传了 请注意一下入参,原先是 第一版 public ...

weixin_42684977的博客 978
上一篇: excel导出不同方式获取输出流
下一篇: excel导出工具类(做接口用get请求,别用post,post乱码后期有机会在研究把)
Trank-Lw
博客等级 码龄9年 103粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值