`
zhouhaiyang88
  • 浏览: 4027 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

map 自动生成 多工作表excel

阅读更多
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.zte.volidate.domain;

import java.util.List;
import java.util.Map;

/**
 *
 * @author zhy
 */
public class ExportVo {
    private Map<String,List<Map<String,String>>> data;
    private String title;
    private String savePath;

    /**
     * @return the data
     */
    public Map<String,List<Map<String,String>>> getData() {
        return data;
    }

    /**
     * @param data the data to set
     */
    public void setData(Map<String,List<Map<String,String>>> data) {
        this.data = data;
    }

    /**
     * @return the title
     */
    public String getTitle() {
        return title;
    }

    /**
     * @param title the title to set
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * @return the savePath
     */
    public String getSavePath() {
        return savePath;
    }

    /**
     * @param savePath the savePath to set
     */
    public void setSavePath(String savePath) {
        this.savePath = savePath;
    }

}



package com.zte.volidate.util;

	import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

import com.zte.volidate.domain.ExportVo;

	/**
	 *
	 * @author zhy
	 */
	public class ExcelTool {
		public static void main(String[] args) {
			List<Map<String,String>> list = new ArrayList<Map<String,String>>();
			Map<String,String> map = new HashMap<String,String>();
			Map<String,String> map3 = new HashMap<String,String>();
			map.put("姓名", "zhangsan1");
			map.put("学号", "1");
			map3.put("姓名", "zhangsan2");
			map3.put("学号", "2");
	
			list.add(map3);
			list.add(map);
			List<Map<String,String>> list1 = new ArrayList<Map<String,String>>();
			Map<String,String> map11 = new HashMap<String,String>();
			map11.put("姓名", "zhangsan3");
			map11.put("学号", "3");
			Map<String,String> map12 = new HashMap<String,String>();

			map12.put("姓名", "zhangsan4");
			map12.put("学号", "4");
			list1.add(map11);
			list1.add(map12);
			Map<String, List<Map<String,String>>> map2 = new HashMap<String, List<Map<String,String>>>();
			map2.put("1班", list);
			map2.put("2班", list1);
			ExportVo vo = new ExportVo();
			vo.setData(map2);
			vo.setSavePath("C:/Users/zhy/Desktop/新建文件夹 (2)/testnew.xls");
			vo.setTitle("学生信息");

			new ExcelTool().excel(vo);
		}
		
	    public void excelCreateSheet(WritableSheet wsheet, List<Map<String,String>> list, String titleName) {
	            try {
	                    WritableFont wfont = new WritableFont(WritableFont.ARIAL, 14, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
	                    WritableFont font = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
	                    WritableCellFormat nameFormat = new WritableCellFormat(wfont);
	                    WritableCellFormat titleFormat = new WritableCellFormat(font);
	                    // 设置Excel标题头
	                    wsheet.mergeCells(0, 0, 5, 0); // 合并单元格
	                    Label excelTitle1 = new Label(0, 0, titleName, nameFormat);
	                    wsheet.addCell(excelTitle1);
	                    String[] columnNames = new String[list.get(0).keySet().size()];
	                    list.get(0).keySet().toArray(columnNames);
	                    // 设置Excel表头
	                    for (int i = 0; i < columnNames.length; i++) {
	                            Label excelTitle = new Label(i, 1, columnNames[i], titleFormat);
	                            wsheet.addCell(excelTitle);
	                    }
	                    int c = 2; 
	                    java.util.Iterator<Map<String, String>> it = list.iterator();
	                    while (it.hasNext()) {
	                            Map<String,String> rows = it.next();
	                            int rowIndex = 0;
	                            for(String columnName:columnNames){
	                                Label content = new Label(rowIndex, c, rows.get(columnName));
	                                wsheet.setColumnView(0, 40);
	                                wsheet.setColumnView(1, 12);
	                                wsheet.setColumnView(2, 13);
	                                wsheet.setColumnView(3, 14);
	                                wsheet.setColumnView(4, 50);
	                                wsheet.addCell(content);
	                                rowIndex++;
	                            }
	                            c++;
	                    }
	            } catch (Exception e) {
	                    e.printStackTrace();
	            }
	    }

	    public void excel(ExportVo vo) {
	            try {
	                    String path = vo.getSavePath();
	                    Map<String, List<Map<String,String>>> map = vo.getData();
	                    String titleName = vo.getTitle();
	                    WritableWorkbook wbook = Workbook.createWorkbook(new File(path)); // 建立excel文件
	                    for (Entry<String, List<Map<String,String>>> entry : map.entrySet()) {
	                            WritableSheet wsheet = wbook.createSheet(entry.getKey(), 0); // 工作表名称
	                            excelCreateSheet(wsheet,entry.getValue(), titleName);
	                    }
	                    wbook.write();
	                    wbook.close();
	            } catch (IOException e) {
	                    e.printStackTrace();
	            } catch (WriteException e) {
	                    e.printStackTrace();
	            }
	    }
	}


 

  • jxl.jar (597.4 KB)
  • 下载次数: 0
分享到:
评论

相关推荐

    phpexcelreader读取excel自动生成表和字段

    通常,每个Excel工作表对应一个数据库表,每列则对应表的一个字段。你可以解析列名作为字段名,遍历行数据作为记录,然后构建SQL语句来创建表结构和插入数据。例如: ```php $tableName = 'your_table_name'; $...

    JAVA读取Excel,建库建表,并生成java实体

    通过使用POI库,我们可以轻松地读取Excel工作簿(Workbook)和工作表(Sheet),并访问其中的数据。 1. **安装Apache POI**: 在你的项目中添加Apache POI依赖,如果是Maven项目,可以在pom.xml文件中添加如下依赖...

    java poi 根据excel模板生成excel文件

    `workbook`对象代表整个Excel文件,你可以通过调用`getSheet()`方法获取模板中的工作表。然后,你可以遍历工作表的行和列,对单元格进行读写操作。例如,更新单元格的值: ```java XSSFSheet sheet = workbook....

    Java通过POI读取Excel遍历数据,批量生成word文档

    使用POI的`XSSFWorkbook`类打开Excel文件,然后通过` XSSFSheet `获取工作表,并使用` XSSFRow `和` XSSFCell `遍历单元格数据: ```java import org.apache.poi.xssf.usermodel.*; // ... FileInputStream fis =...

    电机map图绘制

    电机Map图绘制是电机设计与分析中的一个重要环节,它能够直观地展示电机在不同工作条件下的性能特性。Map图通常包括效率地图(Efficiency Map)和功率地图(Power Map),帮助工程师了解电机在不同转速和负载下的...

    根据表结构自动生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第12版)

    自己动手丰衣足食,就自己用Swing写了一个通过数据库的表生成JavaBean的工具,支持MySQL、Oracle、SQLServce、PostgreSQL,完美支持JPA注解,可以同时生成Entity和DTO,可以自动去除表前缀,并支持去除多个前缀,...

    java读取excel文件生成矩阵

    使用Apache POI,你可以创建一个`Workbook`对象来表示Excel文件,然后通过`Sheet`对象访问工作表,最后用`Row`和`Cell`对象处理具体的数据。 ```java FileInputStream fis = new FileInputStream("your_file_path...

    java生成excel.rar

    描述中提到“查询数据库中的数据,生成map形式”,这表明在生成Excel之前,数据需要从数据库中获取并转换为键值对的形式。Map是一种常用的数据结构,可以方便地存储和操作键值对。开发者可能先执行SQL查询,然后将...

    Freemarker实现excel导出功能

    创建一个`HSSFWorkbook`实例,然后将Freemarker生成的字符串写入到工作表中。 5. 写入文件:最后,将工作簿写入到本地文件系统,用户就可以下载或保存Excel文件了。 三、实际例子 在提供的压缩包`freemarker总结-...

    extjs实现excel导出

    接下来,创建一个工作表,这是Excel中的一个页面,可以添加多个工作表到工作簿中。 ```java HSSFSheet sheet = workBook.createSheet(); ``` 4. **设置工作表名称** 可以给工作表命名,这里将工作表命名为...

    Java根据模板导出Excel报表并复制模板生成多个Sheet页

    Java根据模板导出Excel报表并复制模板生成多个Sheet页 本文主要介绍了Java根据模板导出Excel报表并复制模板生成多个Sheet页的方法,具有很好的参考价值。本工具类使用的场景为根据提供的模板来导出Excel报表并且可...

    Python建立Map写Excel表实例解析

    ### Python建立Map写Excel表实例解析 #### 一、引言 在自动化处理工作中,Excel文件经常被用来存储和分析数据。Python作为一种强大的编程语言,提供了多种库支持Excel操作,如`xlrd`, `xlwt`, `openpyxl`, 和 `...

    读取Excel表格生成plist文件(修正版)

    这个过程与之前的相反,需要解析.plist文件,然后将数据写入到新的Excel工作表中。 总的来说,这个项目涉及到使用Java的Apache POI库处理Excel文件,理解.plist文件的XML结构,并生成相应的XML内容。此外,还需要...

    Excel导出两种方式

    3. **使用POI创建Excel工作簿和工作表**:初始化`HSSFWorkbook`(XLS)或`XSSFWorkbook`(XLSX)实例,然后添加工作表。 4. **设置列名**:在第一行设置列标题,例如"姓名", "年龄"。 5. **遍历并写入数据**:使用`...

    纯前端html+js实现的excel转json格式

    4. **转换工作表数据**:从解析出的工作表中提取数据,通常是以二维数组的形式。然后,可以使用JavaScript的数组方法,如`map`和`reduce`,将数据转换为JSON格式。 5. **显示结果**:最后,将转换后的JSON数据展示...

    easyuiPoi导出Excel工具类封装(支持合并单元格)

    这个库主要适用于那些需要在Web应用中生成Excel报告或导出数据的场景,比如数据分析、报表生成等。EasyUIPoI的名字可能来源于流行的前端框架EasyUI,但其核心功能是后端的Excel处理。 Apache POI是Apache软件基金会...

    easyPoi模板导出Excel报表(xls 和xlsx 都支持)

    5. **导出Excel**:最后,将处理后的内存工作簿写入到新的Excel文件中,完成导出过程。EasyPoi支持导出为xls和xlsx两种格式,只需要调整相关的配置即可。 在实际应用中,EasyPoi还提供了丰富的功能,如支持复杂公式...

    ESHHUeditor 实例Excel导入导出

    首先,根据需求从数据库中查询所需的数据,然后利用Excel库创建一个新的Excel工作簿,将数据填充到工作表中,最后将生成的Excel文件提供给用户下载。 6. ImpandEXpServer:这个文件名可能是服务器处理导入导出操作...

    使用 jxls2.X 导出excel文件

    在这个项目案例中,开发者使用了jxls库的最新版本(jxls2),它是一个强大的工具,能够帮助程序员将Java集合和POJOs(Plain Old Java Objects)直接转换为Excel工作表。 jxls是一个开源的Java库,其主要功能是允许...

    考试类精品--Excel tools,对excel封装让excel导出更简单! (项目测试范例请参考,test包下的.zip

    3. **数据绑定**:将数据源(如List、Map等)与Excel工作表的列进行绑定,指定每列的数据来源。 4. **设置样式**:如果需要,可以定义单元格、行或列的样式,如字体、颜色、边框等。 5. **执行导出**:调用工具的...

Global site tag (gtag.js) - Google Analytics