我是靠谱客的博主 魁梧红酒,最近开发中收集的这篇文章主要介绍apache poi使用例_Apache-poi工具类的简单使用示例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

package cn.jiguang.excel;

import cn.jiguang.entity.ExcelEntity;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.xssf.usermodel.XSSFCell;

import org.apache.poi.xssf.usermodel.XSSFRow;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import org.junit.Test;

import java.io.*;

import java.util.List;

import java.util.concurrent.CopyOnWriteArrayList;

/**

* @desc: hssfwork=.xls xssfwork=.xlsx

* @author: zengxc

* @date: 2018/4/26

*/

public class ExcelUtils {

private static final String T_API_USER_PATH = "C:\Users\zengxc\Desktop\dataBase\t_api_user.xls";

private static final String T_API_AUTH_PATH = "C:\Users\zengxc\Desktop\dataBase\t_api_auth.xls";

private static final String RESULT_DATA_MAP = "C:\Users\zengxc\Desktop\dataBase\data_map.xlsx";

private static final String TITLE_CELL_USERNAME = "username";

private static final String TITLE_CELL_DEVKEY = "devkey";

private static final String TITLE_CELL_APIKEY = "apikey";

private static String[] names = new String[3];

static {

names[0] = TITLE_CELL_USERNAME;

names[1] = TITLE_CELL_DEVKEY;

names[2] = TITLE_CELL_APIKEY;

}

@Test

public void test01() throws IOException {

List userDevkey = getDataApiUserByExcel(T_API_USER_PATH);

List apikeyDevkey = getDataApiAuthByExcel(T_API_AUTH_PATH);

apikeyDevkey.forEach(entity ->{

userDevkey.forEach(entityV2 ->{

if (entity.getDevkey().equals(entityV2.getDevkey())){

entity.setUsername(entityV2.getUsername());

}

});

});

handlerDataSetAndExport(RESULT_DATA_MAP, apikeyDevkey, names);

}

/**

* 处理数据集并导出

*/

protected static void handlerDataSetAndExport(String filePath, List entityList, String[] names) throws IOException {

// 写出到excel

XSSFWorkbook xssfWorkbook = new XSSFWorkbook();

XSSFSheet sheet = xssfWorkbook.createSheet("user-devkey-apikey");

XSSFRow fristRow = sheet.createRow(0);

XSSFCell fristCell = fristRow.createCell(0);

fristCell.setCellValue(names[0]);

fristCell = fristRow.createCell(1);

fristCell.setCellValue(names[1]);

fristCell = fristRow.createCell(2);

fristCell.setCellValue(names[2]);

for (int i = 1; i < entityList.size() + 1; i++) {

XSSFRow row = sheet.createRow(i);

ExcelEntity excelEntity = entityList.get(i - 1);

XSSFCell cell = row.createCell(0);

cell.setCellValue(excelEntity.getUsername());

cell = row.createCell(1);

cell.setCellValue(excelEntity.getDevkey());

cell = row.createCell(2);

cell.setCellValue(excelEntity.getApikey());

}

FileOutputStream fos = new FileOutputStream(new File(filePath));

BufferedOutputStream bis = new BufferedOutputStream(fos);

xssfWorkbook.write(bis);

// 关流

xssfWorkbook.close();

closeOsAll(bis, fos);

}

/**

* 从excel中获取devkey和username关系

* @return

*/

protected static List getDataApiUserByExcel(String filePath) throws IOException {

InputStream is = new FileInputStream(new File(filePath));

BufferedInputStream bis = new BufferedInputStream(is);

HSSFWorkbook workbook = new HSSFWorkbook(bis);

HSSFSheet sheet = workbook.getSheetAt(0);

List excelList = new CopyOnWriteArrayList<>();

int lastRowNum = sheet.getLastRowNum();

// 遍历行数

for (int i = 1; i < lastRowNum; i++) {

HSSFRow row = sheet.getRow(i);

int lastCellNum = row.getLastCellNum();

// 遍历每行的单元格

ExcelEntity excelEntity = new ExcelEntity();

for (int j = 0; j < lastCellNum; j++) {

if (j == 2){

HSSFCell cell = row.getCell(2);

excelEntity.setDevkey(cell.getStringCellValue());

}

if (j == 7){

HSSFCell cell = row.getCell(7);

excelEntity.setUsername(cell.getStringCellValue());

}

}

excelList.add(excelEntity);

}

//关流

workbook.close();

closeIsAll(bis, is);

return excelList;

}

/**

* 从excel中获取apikey和devkey关系

* @return

* @throws IOException

*/

protected static List getDataApiAuthByExcel(String filePath) throws IOException {

InputStream is = new FileInputStream(new File(filePath));

BufferedInputStream bis = new BufferedInputStream(is);

HSSFWorkbook workbook = new HSSFWorkbook(bis);

HSSFSheet sheet = workbook.getSheetAt(0);

List excelList = new CopyOnWriteArrayList<>();

int lastRowNum = sheet.getLastRowNum();

// 遍历行数

for (int i = 1; i < lastRowNum; i++) {

HSSFRow row = sheet.getRow(i);

int lastCellNum = row.getLastCellNum();

// 遍历每行的单元格

ExcelEntity excelEntity = new ExcelEntity();

for (int j = 0; j < lastCellNum; j++) {

if (j == 2){

HSSFCell cell = row.getCell(2);

excelEntity.setDevkey(cell.getStringCellValue());

}

if (j == 3){

HSSFCell cell = row.getCell(3);

excelEntity.setApikey(cell.getStringCellValue());

}

}

excelList.add(excelEntity);

}

//关流

workbook.close();

closeIsAll(bis, is);

return excelList;

}

protected static void closeOsAll(OutputStream... os) throws IOException {

for (OutputStream stream : os) {

if (stream != null){

stream.close();

}

}

}

protected static void closeIsAll(InputStream... is) throws IOException {

for (InputStream stream : is) {

if (stream != null){

stream.close();

}

}

}

}

package cn.jiguang.entity;

import lombok.Data;

/**

* @desc: 工作表字段实体

* @author: zengxc

* @date: 2018/4/26

*/

@Data

public class ExcelEntity {

private String apikey;

private String devkey;

private String username;

public ExcelEntity(){}

public ExcelEntity(String apikey, String devkey){

this.apikey = apikey;

this.devkey = devkey;

}

public ExcelEntity(String apikey, String devkey, String username){

this.apikey = apikey;

this.devkey = devkey;

this.username = username;

}

}

最后

以上就是魁梧红酒为你收集整理的apache poi使用例_Apache-poi工具类的简单使用示例的全部内容,希望文章能够帮你解决apache poi使用例_Apache-poi工具类的简单使用示例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部