两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中
来源:互联网 发布:golang 代码安全 泄密 编辑:程序博客网 时间:2024/06/16 07:26
具体的意思请看图片
上边的两个表我们分别称为excel1和excel2,其中excel1中的A列只是excel2中A列的一部分,现在我们想以两个表的A列为匹配ID来使得excel1后边列的数据也能按照对应的ID填入excel2中。
1:首先安装配置eclipse,在此不再过多叙述,可以问度娘;
2:下载poi.jar,在eclipse中引用,具体链接https://www.apache.org/dyn/closer.lua/poi/dev/bin/poi-bin-3.17-beta1-20170701.tar.gz
只需要压缩包中的poi-3.17-beta1.jar;
3:另新建一个excel,我们这里成为excel3,作为写入的excel;
4:上代码:
package wang_readExcel;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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;
public class readWrite {
public static void main(String[] args) throws FileNotFoundException, IOException {
String fileInput="E:\\java.jar\\tea_wang\\excel1.xls";
String fileResult="E:\\java.jar\\tea_wang\\excel2.xls";
FileOutputStream fos = new FileOutputStream("E:\\java.jar\\tea_wang\\result_excel_part\\excel3.xls");
HSSFWorkbook workbook1 = new HSSFWorkbook(new FileInputStream(fileInput));
HSSFWorkbook workbook2 = new HSSFWorkbook(new FileInputStream(fileResult));
HSSFWorkbook reference = new HSSFWorkbook();
HSSFSheet sheet1 = workbook1.getSheet("Sheet1");
HSSFSheet sheet2 = workbook2.getSheet("Sheet1");
HSSFSheet resheet = reference.createSheet("reference");
int rows1=sheet1.getPhysicalNumberOfRows();
int rows2=sheet2.getPhysicalNumberOfRows();
for(int i=0;i<rows2;i++){
HSSFRow row2 = sheet2.getRow(i);
HSSFCell cell2 = row2.getCell(0);
double value2 = cell2.getNumericCellValue();
for(int j=0;j<rows1;j++){
HSSFRow row1 = sheet1.getRow(j);
HSSFCell cell1 = row1.getCell(0);
double value1 = cell1.getNumericCellValue();
if(value1==value2){
HSSFRow get_value = resheet.createRow(i);
get_value.createCell(1).setCellValue(row1.getCell(1).getNumericCellValue());
}
}
}
reference.write(fos);
fos.close();
}
}
5:最终在excel3中生成的数据如下所示:
6:我们将excel2中的A列数据复制粘贴到excel3中的A列,然后和excel1做对比如下:(左侧为excel3,右侧为excel1)
此时我们发现匹配正确,大功告成。
7:我们继续将excel3中的B列其它无值的单元格填充为0,具体操作步骤如下:
https://jingyan.baidu.com/article/3d69c55152b887f0cf02d7d5.html
最终结果如下:
如对您有用,请给予参考。
- 两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中
- 匹配两个EXCEL表中的数据,即读取一个表中数据在另一个表中查询
- 把一个excel中的sheet拷贝到另外一个excel中
- excel统计另外一个sheet的筛选数据
- VB把一个Excel中的部分数据Copy到另一个Excel表中
- Excel中根据某个表的顺序对另外一个表的数据进行排序
- 把多个excel文件的sheet1数据合并到一个excel文件的sheet1中
- 用VB把多个excel文件的数据顺序拷到一个excel中
- 如何将多个excel中的数据导入一个excel中?多个EXCEL中格式一致
- 如何将多个excel中的数据导入一个excel中?多个EXCEL中格式一致
- 如何将多个excel中的数据导入一个excel中?多个EXCEL中格式一致
- 从一个excel复制到另外一个excel
- 如何将Excel表格中的数据粘贴到记事本中,且每列间距都为一个空格?
- 合并两个excel的sheet到一个excel
- 多个Excel文件中的多个Sheet合并到一个Excel文件中两个函数
- 为Excel单元格后面统一添加一个字符,导Excel数据到数据库
- 导出数据到一个Excel文件中去
- 将一个Excel中的数据导入DataGrid中
- linux系统忘记root密码的解决方法
- java synchronized锁的理解
- Cuda读书笔记之shared memory
- IDEA配置maven
- 分块
- 两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中
- sql server 的T-SQL 学习笔记(六)
- Linux帮助使用方法
- 2017年7月21日
- httpRequest函数
- POJ2566 尺取法巧解
- JAVA 三元运算符
- 正儿八经第一次应聘安卓开发的经历
- CodeForces 718C Sasha and Array(矩阵类+线段树)