java实现Excel数据导出
2021-07-19 11:06
标签:follow close pre 工具类 可见 ++ model href 取值 java实现Excel数据导出: 目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel Jakarta POI 是一套用于访问微软格式文档的Java API。Jakarta POI有很多组件组成,其中有用于操作Excel格式文件的HSSF和用于操作Word的HWPF,在各种组件中目前只有用于操作Excel的HSSF相对成熟。官方主页http://poi.apache.org/index.html,API文档http://poi.apache.org/apidocs/index.html HSSF(用于操作Excel的组件)提供给用户使用的对象在rg.apache.poi.hssf.usermodel包中,主要部分包括Excel对象,样式和格式,还有辅助操作。有以下几种对象: 首先,理解一下一个Excel的文件的组织形式,一个Excel文件对应于一个workbook(HSSFWorkbook),一个workbook可以有多个sheet(HSSFSheet)组成,一个sheet是由多个row(HSSFRow)组成,一个row是由多个cell(HSSFCell)组成。 基本操作步骤: 下面来看一个动态生成Excel文件的例子: HSSF读取文件同样还是使用这几个对象,只是把相应的createXXX方法变成了getXXX方法即可。可见只要理解了其中原理,不管是读还是写亦或是特定格式都可以轻松实现,正所谓知其然更要知其所以然。 2:导出Excel应用实例: 请参考:https://blog.csdn.net/xunwei0303/article/details/53213130 3:导出表格的工具类: excelUtil: 3-2:将对象转换为String数组: 工具类: java实现Excel数据导出 标签:follow close pre 工具类 可见 ++ model href 取值 原文地址:https://www.cnblogs.com/dw3306/p/9522880.htmlJakarta POI HSSF API组件
2.3 基本操作步骤
1 //创建HSSFWorkbook对象
2 HSSFWorkbook wb = new HSSFWorkbook();
3 //创建HSSFSheet对象
4 HSSFSheet sheet = wb.createSheet("sheet0");
5 //创建HSSFRow对象
6 HSSFRow row = sheet.createRow(0);
7 //创建HSSFCell对象
8 HSSFCell cell=row.createCell(0);
9 //设置单元格的值
10 cell.setCellValue("单元格中的中文");
11 //输出Excel文件
12 FileOutputStream output=new FileOutputStream("d:\\workbook.xls");
13 wkb.write(output);
14 output.flush();
1 public static void downLoadUtil(HttpServletResponse response, List
> data) {
2 //文件名字--时间戳
3 long timeMillis = System.currentTimeMillis();
4 String name = Long.toString(timeMillis);
5 //响应文件的格式
6 response.setContentType("application/vnd.ms-excel");
7 //创建excel对象
8 HSSFWorkbook workbook = new HSSFWorkbook();
9
10 ServletOutputStream outputStream = null;
11 try {
12 // 进行转码,使其支持中文文件名
13 String codedFileName = new String(name.getBytes("gbk"), "iso-8859-1");
14 response.setHeader("content-disposition", "attachment;filename=" + codedFileName + ".xls");
15 //往表格中装入数据:
16 //创建Excel 表格
17 HSSFSheet sheet = workbook.createSheet("sheet1");
18 //遍历数据:
19 for (int i = 0; i ) {
20 // 取出一行数据
21 List
1 /*
2 * 把Java对象转换成String数组
3 */
4 public static String[] getValueRow(Object bean) throws Exception {
5 //运用反射
6 //获取字节码:
7 Class> aClass = bean.getClass();
8 //拿到字段:
9 Field[] declaredFields = aClass.getDeclaredFields();
10 int length = declaredFields.length;
11 String[] row = new String[length];
12 //从字段里面取值:
13 for(int i=0;i