两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中

时间:2022-07-01 06:17:07

具体的意思请看图片

两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中   两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中

上边的两个表我们分别称为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中生成的数据如下所示:

两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中

6:我们将excel2中的A列数据复制粘贴到excel3中的A列,然后和excel1做对比如下:(左侧为excel3,右侧为excel1)

两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中 两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中

此时我们发现匹配正确,大功告成。

7:我们继续将excel3中的B列其它无值的单元格填充为0,具体操作步骤如下:

https://jingyan.baidu.com/article/3d69c55152b887f0cf02d7d5.html

最终结果如下:

两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中

如对您有用,请给予参考。两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中两个excel有两列不完全相同的数据,以它们为匹配ID,使一个excel中的数据转移到另外一个excel中