【工具】获取pojo类属性,并写入表格
2024-10-19 00:21:50
1、添加依赖
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
2、java代码
public class CreateExcel { static String fileName = "work1.xsl"; /**
* 读取domain文件的属性名和类型
* @param object
* @return
*/
public static List<Map<String, String>> getDomainV(Object object){
List<Map<String, String>> result = new ArrayList<Map<String,String>> ();
Field[] fields = object.getClass().getDeclaredFields();
for(int i=0;i<fields.length;i++){
Map<String, String> map = new HashMap<String, String>();
String attributeName = fields[i].getName(); //获取属性名称
String attributeType = fields[i].getGenericType().toString(); //获取属性类型
String[] types = attributeType.split("\\.");
map.put("name", attributeName);
map.put("type", types[types.length-1]);
result.add(map);
}
return result;
} /**
* 生成表格
* @param list
* @throws IOException
*/
public static void createWorkBook(List<Map<String, String>> list,String fileName) throws IOException {
Workbook wb = new HSSFWorkbook();//创建excel工作簿
Sheet sheet = wb.createSheet("new sheet"); //创建第一个sheet(页),命名为 new sheet for(int i=0;i<list.size();i++){
Row row = sheet.createRow(i); // 创建一行,在页sheet上
Cell cell = row.createCell(0); // 在row行上创建一个方格
cell.setCellValue(list.get(i).get("name")); //设置方格的显示
cell = row.createCell(1);
cell.setCellValue(list.get(i).get("type")); //
} FileOutputStream fileOut = new FileOutputStream(fileName);
wb.write(fileOut);
fileOut.close();
} /**
* 读取Excel表格
* @param fileName
* @throws Exception
*/
public static void readWorkBook(String fileName) throws Exception {
InputStream inp = new FileInputStream(fileName); Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0); for (Row row : sheet) { //利用foreach循环 遍历sheet中的所有行
for (Cell cell : row) { //遍历row中的所有方格
System.out.print(cell.toString() + " "); //输出方格中的内容,以空格间隔
}
System.out.println(); //每一个行输出之后换行
}
inp.close(); //关闭输入流
} public static void main(String[] args) throws Exception {
Student stu = new Student();
List<Map<String, String>> list = getDomainV(stu);
createWorkBook(list,fileName);
System.out.println("creat successful!");
readWorkBook(fileName);
} }
最新文章
- 【容器云】传统金融企业的 Docker 实践
- 网页日历显示控件calendar3.1
- hibernate报错Unknown integral data type for ids : java.lang.String
- 蚁群算法求解旅行商问题(附c和matlab源代码)
- Mysql中文乱码问题完美解决方案
- 关于Math类的round、floor、ceil三个方法
- NOIP 2002过河卒 Label:dp
- C++之路进阶——codevs2366(朋友圈)
- Android开发之ViewPager
- Mysql 数字类型转换函数
- C# winCE5.0开发右键效果解决方案
- No1_2. 流程控制_java学习笔记
- C# 3.0 { get; set; } 默认值
- Perl 面向对象编程的两种实现和比较:
- Linux shell 脚本总结
- 移动前端webApp开发点滴积累20140524
- 有关Java垃圾回收的几个问题
- request.getParameter(“xxx”)的参数的取值
- jquery练习笔记
- 玩转Spring Boot 集成Dubbo
热门文章
- Django 2.0.1 官方文档翻译: 文档目录 (Page 1)
- SELECT INTO 和 INSERT INTO SELECT比较
- 【js学习笔记】去除省、市、区、特别行政区、自治区
- 13、Math类简介
- bootstrap-table 应用
- Bresenham直线算法与画圆算法
- C#抓取网络图片保存到本地
- structc 开源框架介绍
- if(a==1) &; if(1==a) 区别
- 01 Getting Started 开始