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

4 篇文章 0 订阅
2 篇文章 0 订阅
从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);
}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值