java poi excel关于数据碰撞和excel数据追加
来源:互联网 发布:淘宝手机版怎么看信誉 编辑:程序博客网 时间:2024/06/05 09:35
package excel;import jxl.Cell;import jxl.CellType;import jxl.Sheet;import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableWorkbook;import org.apache.poi.hssf.usermodel.*;import org.apache.poi.poifs.filesystem.POIFSFileSystem;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.util.*;import static java.lang.System.in;/** * excel 数据碰撞 并追加所需要的数据 * Created by zhanghb on 2017/7/7. */public class ExcelTest { public static void main(String[] args) throws Exception { List<String> dongcai = test1(); Map<String, String> chm = test2(); //Excel进行数据追加 //FileInputStream fs = new FileInputStream("F:/项目实例/excel数据碰撞实例/指标/excel/东财证券(证券类).xls"); //获取 FileInputStream fs = new FileInputStream("F:/项目实例/excel数据碰撞实例/指标/excel/东财证券(保险类).xls"); //获取d://test.xls //FileInputStream fs = new FileInputStream("F:/项目实例/excel数据碰撞实例/指标/excel/东财证券(通用类).xls"); //获取d://test.xls //FileInputStream fs = new FileInputStream("F:/项目实例/excel数据碰撞实例/指标/excel/东财证券(银行类).xls"); //获取d://test.xls POIFSFileSystem ps = new POIFSFileSystem(fs); //使用POI提供的方法得到excel的信息 HSSFWorkbook wb = new HSSFWorkbook(ps); HSSFSheet sheet = wb.getSheetAt(0); //获取到工作表,因为一个excel可能有多个工作表 for (int i = 0; i < dongcai.size(); i++) { String key=dongcai.get(i).trim(); String englishName=chm.get(key).trim(); if(englishName!=null){ System.out.print(dongcai.get(i) + "/" + chm.get(key) + "/" + key + " "); //获取第一行(excel中的行默认从0开始,所以这就是为什么,一个excel必须有字段列头),即,字段列头,便于赋值 HSSFRow row = sheet.getRow(i); row.createCell(1).setCellValue(englishName); //设置第一个(从0开始)单元格的数据 } } FileOutputStream out = new FileOutputStream("F:/项目实例/excel数据碰撞实例/指标/excel/最新/最新的数据(东财保险).xls"); wb.write(out); out.close(); } /** * 读取东财数据模块 */ public static List<String> test1() { Workbook readwb = null; Cell cell = null; //创建返回对象,把每行中的值作为一个数组,所有行作为一个集合返回 List<String> list = new ArrayList<String>(); try { //构建Workbook对象, 只读Workbook对象 //直接从本地文件创建Workbook //File file = new File("F:/项目实例/excel数据碰撞实例/指标/excel/东财证券(证券类).xls"); File file = new File("F:/项目实例/excel数据碰撞实例/指标/excel/东财证券(保险类).xls"); //File file = new File("F:/项目实例/excel数据碰撞实例/指标/excel/东财证券(证券类).xls"); //File file = new File("F:/项目实例/excel数据碰撞实例/指标/excel/东财证券(证券类).xls"); InputStream instream = new FileInputStream(file); readwb = Workbook.getWorkbook(instream); //Sheet的下标是从0开始 //获取第一张Sheet表 Sheet readsheet = readwb.getSheet(0); //获取Sheet表中所包含的总列数 // int rsColumns = readsheet.getColumns(); //获取Sheet表中所包含的总行数 int rsRows = readsheet.getRows(); //获取指定单元格的对象引用 for (int i = 0; i < rsRows; i++) { cell = readsheet.getCell(0, i);//取得第i行,第一列值 //判断是否存在(单季度.),如果存在则去掉(单季度.)存入list中 if (cell.getContents().trim().contains("单季度.")) { String[] val = cell.getContents().trim().split("单季度."); list.add(val[1].trim()); }else{ list.add(cell.getContents().trim()); } } } catch (Exception e) { e.printStackTrace(); } finally { readwb.close(); } return list; } /** * 读取CHM数据模块 */ public static Map<String, String> test2() { Workbook readwb = null; Cell key = null; Cell value = null; //创建返回对象,把每行中的值作为一个数组,所有行作为一个集合返回 Map<String, String> map = new HashMap<String, String>(); try { //构建Workbook对象, 只读Workbook对象 //直接从本地文件创建Workbook //File file = new File("F:/项目实例/excel数据碰撞实例/指标/excel/证券类chm.xls"); File file = new File("F:/项目实例/excel数据碰撞实例/指标/excel/保险类chm.xls"); //File file = new File("F:/项目实例/excel数据碰撞实例/指标/excel/证券类chm.xls"); //File file = new File("F:/项目实例/excel数据碰撞实例/指标/excel/证券类chm.xls"); InputStream instream = new FileInputStream(file); readwb = Workbook.getWorkbook(instream); //Sheet的下标是从0开始 //获取第一张Sheet表 Sheet readsheet = readwb.getSheet(0); //获取Sheet表中所包含的总列数 // int rsColumns = readsheet.getColumns(); //获取Sheet表中所包含的总行数 int rsRows = readsheet.getRows(); //获取指定单元格的对象引用 for (int i = 0; i < rsRows; i++) { key = readsheet.getCell(0, i);//取得第i行,第一列值 value = readsheet.getCell(1, i);//取得第i行,第一列值 map.put(value.getContents().trim(), key.getContents().trim()); } } catch (Exception e) { e.printStackTrace(); } finally { readwb.close(); } return map; }}
阅读全文
0 0
- java poi excel关于数据碰撞和excel数据追加
- 使用POI 向Excel中追加数据
- java poi 追加excel
- java poi 解析excel数据
- Java POI Excel 数据导出
- Excel 追加数据
- python Excel追加数据
- Java生成excel,向excel追加数据(通用代码)
- poi读写excel数据
- POI EXCEL 数据导出
- POI读取Excel数据
- poi导出excel数据
- POI数据导入Excel
- POI 读取excel数据
- JAVA POI自动导出数据和图片到excel
- jxl读写excel追加数据
- 向Excel中追加数据
- 追加数据到excel表格
- K-means算法的实现原理和分析
- 【译】手把手教你用ngrx管理Angular状态
- kuangbin 最短路 H题(如何将看似拓扑的问题转化成floyd )
- 二叉树有关的高频面试题
- [COGS2600] [FJWC2017] 交错和查询
- java poi excel关于数据碰撞和excel数据追加
- 内省、JavaBean、PropertyDescriptor类、Introspector类、BeanUtils工具包、注解、Rentention、Target、注解的基本属性和高级属性
- java刷题之查漏补缺(六)
- js滚动分页加载数据
- MySQL中高级知识-索引优化
- Linux下的VIM编辑器
- 1059. C语言竞赛(20)
- Oulipo(kmp算法)
- 机器学习、深度学习、图像检索 的一些优秀博客