`

带有批注的从数据集中查询出的poi导出

阅读更多
从list中取数据把特殊的数据进行封装来进行导出
 package com.sjy.poi;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Comment;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class TestExportExcelSheets {

public static void main(String[] args) throws IOException {
		XSSFWorkbook xwb = new XSSFWorkbook();
			

		
		Map<String,List<Map<String,String>>> map = new TreeMap<String,List<Map<String,String>>>();
		
		List<Map<String,String>> list1 = new ArrayList<Map<String,String>>();
		List<Map<String,String>> list2 = new ArrayList<Map<String,String>>();
		
		
		
		Map<String,String> map3 = new TreeMap<String,String>();
		map3.put("国家", "china");
		map3.put("数据采样时间", "2014/10/12");
		map3.put("运营商", "sprint");
		
		Map<String,String> map4 = new TreeMap<String,String>();
		map4.put("国家", "america");
		map4.put("数据采样时间", "2014/10/12");
		map4.put("运营商", "sprint");
		
		
		Map<String,String> map5 = new TreeMap<String,String>();
		map5.put("NAME", "america");
		map5.put("NAME_CN", "aaa");
		map5.put("NAME_EN", "111");
		map5.put("NAME_TYPE", "2014/10/12");
		map5.put("SCOPE", "sprint");
		map5.put("INDEX_TABLE", "INDEX_VALUE");
		map5.put("INDEX_LOGIC", "america");
		map5.put("DESC_CN", "america");
		map5.put("DESC_EN", "america");
		map5.put("EXT1", "america");
		map5.put("EXT2", "america");
		map5.put("EXT3", "america");
		
		
		Map<String,String> map6 = new TreeMap<String,String>();
		map6.put("NAME", "america");
		map6.put("NAME_CN", "bbb");
		map6.put("NAME_EN", "222");
		map6.put("NAME_TYPE", "2014/10/12");
		map6.put("SCOPE", "sprint");
		map6.put("INDEX_TABLE", "INDEX_VALU");
		map6.put("INDEX_LOGIC", "america1");
		map6.put("DESC_CN", "america");
		map6.put("DESC_EN", "america");
		map6.put("EXT1", "america");
		map6.put("EXT2", "america");
		map6.put("EXT3", "america");
		
		
		list1.add(map3);
		list1.add(map4);
		list2.add(map5);
		list2.add(map6);
		map.put("Sheet1", list1);
		map.put("Sheet2", list2);
			for(Entry<String,List<Map<String,String>>> entry : map.entrySet()){
				if(entry.getKey().equals("Sheet1")){
					int i = 0;
					Sheet sheet  = xwb.createSheet("Sheet1");
					for(Map<String,String> obj : entry.getValue()){
						for(Entry<String,String> entry1 : obj.entrySet()){
							Row row = sheet.createRow(i);
							Cell cell = row.createCell(0);
							cell.setCellValue(entry1.getValue());
							i++;
							}
						}
				}
				
				
				if(entry.getKey().equals("Sheet2")){
					int i = 0;
					Sheet sheet = xwb.createSheet("Sheet2");
					Row rowTitle = sheet.createRow(0);
					Cell cellTitle1 = rowTitle.createCell(0);
					Cell cellTitle2 = rowTitle.createCell(1);
					cellTitle1.setCellValue("指标项");
					cellTitle2.setCellValue("指标值");
					for(Map<String,String> obj : entry.getValue()){
						String str = "";
						Row row = sheet.createRow(i+1);
						Cell cell1 = row.createCell(1);
						Cell cell = row.createCell(0);
						for(Entry<String,String> entry1 : obj.entrySet()){
							if(entry1.getKey().equals("INDEX_LOGIC")){
								str = entry1.getValue();
							}
							if(entry1.getKey().equals("NAME_EN")){
								cell.setCellValue(entry1.getValue());
							}
							if(entry1.getKey().equals("INDEX_TABLE") && entry1.getValue() == "INDEX_VALUE"){
								cell1.setCellValue(entry1.getValue());
							}
							
							if(entry1.getKey().equals("INDEX_TABLE") && entry1.getValue() != "INDEX_VALUE"){
								cell1.setCellValue(entry1.getValue());
							    Drawing draw = 	sheet.createDrawingPatriarch();
								Comment ct = draw.createCellComment(new XSSFClientAnchor(0, 0, 0, 0,
										(short) 3, 3, (short) 5, 6) );
								ct.setString(new XSSFRichTextString(str));
								cell1.setCellComment(ct);
								}
							}
							i++;
						}
				}
				
				
			}
			
			FileOutputStream fileoutput = new FileOutputStream("D:\\new1.xlsx");
			xwb.write(fileoutput);
			fileoutput.close();
	}

	public void putValue(Row row , int index,String value){
		Cell cell = row.createCell(index);
		cell.setCellValue(value);
	}




}

分享到:
评论

相关推荐

    POI导出 POI导出 POI导出

    POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI导出POI...

    POI导出Tree结构数据(连接线).doc

    POI框架导出Tree结构数据(连接线) 一、问题描述及现象需求说明 在效果评估系统中,存在指标管理和模板管理两个模块。模板管理中有一个导出模板功能,可以将模板导出到Excel表格中。模板下可以嵌套的是指标或模板...

    使用POI筛选字段导出Excel,以及条件查询和指定数据导出

    使用POI筛选字段导出Excel,以及条件查询和指定数据导出

    POI导出(数据库数据)

    【标题】"POI导出(数据库数据)"所涉及的知识点主要集中在使用Apache POI库来导出数据库中的数据到Excel文件。Apache POI是一个流行的开源Java API,它允许开发者创建、修改和显示Microsoft Office格式的文件,尤其...

    POI导出Excel文件

    Apache POI是一个流行的Java库,用于读取和写入Microsoft Office格式的文件,尤其是Excel(.xlsx和.xls)...理解如何使用POI库可以帮助你更好地集成Excel功能到你的Java项目中,无论是数据导出、报告生成还是数据分析。

    poi 导出多表头

    总之,利用 Apache POI 实现多表头的 Excel 导出,需要理解 POI API,合理组织数据结构,以及灵活运用单元格合并和样式设置。结合提供的代码文件,你可以进一步研究和学习如何在实际项目中应用这些技术。

    基于Apache POI导出大数据量(百万级)Excel的实现

    【作品名称】:基于Apache POI导出大数据量(百万级)Excel的实现 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:...

    poi excel 模板读取并导出带公式的excel文档

    ### POI Excel 模板读取并导出带公式的Excel文档 #### 一、概述 在实际工作中,经常需要批量处理数据,并将其导出到Excel文件中,特别是在需要复杂计算的情况下,例如工资单、统计数据汇总等场景。利用Apache POI...

    poi导出数据到excel里

    数据导出涉及将数据库查询结果或其他数据结构转换为上述的行和单元格形式。这通常涉及到遍历数据源,为每条记录创建一行,并将每个字段值放入相应的单元格。 7. **写入文件**: 最后,使用`Workbook`的`write()`...

    poi导出cvs文件

    在这个场景中,我们将探讨如何使用POI来创建CSV文件,这在数据导入导出、数据分析或报表生成等场景中非常常见。 CSV文件因其简洁和通用性而广泛使用,它可以用文本编辑器打开,也可以被大多数电子表格软件如...

    poi导出多数据柱状图图表到ppt

    7. **设置数据系列**:柱状图通常有多个数据系列,每个系列对应于图表中的一组柱子。可以使用 `XSLFChart.addNewSeries()` 添加新的数据系列,并使用 `setCategoryData()` 和 `setValuesData()` 设置分类和值数据。 ...

    POI_添加批注

    - **描述**:`XSSFRichTextString` 类用于创建带有格式的字符串,可以应用于单元格中的文本或批注。 - **示例代码**: ```java XSSFRichTextString rtf = new XSSFRichTextString("原产品单价:" + prodPrice); ``...

    POI实现的基于动态模板的EXCEL数据导出

    从压缩包子文件的文件名称“excelExport”来看,这可能是包含主程序、模板文件或测试数据的文件夹,可能包含了示例模板、样例代码以及可能的配置文件,用户可以通过解压并运行此文件来了解和学习如何使用POI进行动态...

    springboot+poi导出指定格式Excel模板

    springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式Excel模板,完整项目,导出即用。springboot+poi导出指定格式...

    java使用poi导出大量数据

    在Java编程中,使用Apache POI库来导出大量数据是一项常见的任务,特别是在处理Excel文件时。Apache POI是一个开源项目,它提供了读写Microsoft Office格式文档的能力,包括Excel(XLS和XLSX)。本篇文章将深入探讨...

    java使用POI导出 Excel工具类

    java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。

    POI导出带图片的excel

    XSSFSheet sheet = workbook.createSheet("带有图片的Sheet"); ``` 4. **读取图片数据**:图片需要以字节数组的形式存在。你可以从文件系统中读取图片,然后将其转换为字节数组。 ```java byte[] imageBytes =...

    poi导出excel参考方法

    POI导出Excel参考方法 POI(Poor Obfuscation Implementation)是一个Java的API,用于操作Microsoft Office文档,包括Excel、Word、PowerPoint等。下面是POI导出Excel参考方法的相关知识点: 1. POI的基本概念 ...

    使用poi从数据库导出excel表的示例

    总结起来,"使用poi从数据库导出excel表的示例"是一个结合了Struts1 MVC框架和Apache POI库的Java编程任务,它涉及数据库连接、SQL查询、Excel文件生成以及Web应用响应。这个过程不仅有助于数据的高效管理和分享,也...

    POI百万级大数据量EXCEL导出 - 请叫我猿叔叔的博客 - CSDN博客.htm

    POI百万级大数据量EXCEL导出 - 请叫我猿叔叔的博客 - CSDN博客.htm

Global site tag (gtag.js) - Google Analytics