Java中使⽤Excel的vlookup函数
⼯作需要有⼀个需求需要对⽐两个表格的数据,在外⾯可以直接⽤vlookup函数实现,后⾯想⽤代码去做,刚开始⽤apache的poi读取,两个Excel表格俩个循环去判断,后⾯发现太慢了去了⼀下,⽹上也没啥好的dome,⾃⼰慢慢试了⼀套,奉上代码,可以参考⼀下:
// An highlighted block
OutputStream out =null;
BufferedInputStream is =new BufferedInputStream(new FileInputStream(new  File(fileName)));//filename为⽂件所属的物理路径
Workbook hssfWorkbook =null;
dsWith("xlsx")){
hssfWorkbook =new XSSFWorkbook(is);//Excel 2007
}else dsWith("xls")){
hssfWorkbook =new HSSFWorkbook(is);//Excel 2003
}else dsWith("xlsm")){
hssfWorkbook =new XSSFWorkbook(is);
}
for(int numSheet =0; numSheet <1; numSheet++){
Sheet hssfSheet = SheetAt(numSheet);
if(hssfSheet ==null){
continue;
}
Row headrow = Row(0);
int count = LastCellNum();
Cell headcell = ateCell(count);
headcell.setCellValue("最后⼀列");
for(int rowNum =1; rowNum <= LastRowNum(); rowNum++){
Row hssfRow = Row(rowNum);
}
}
out =new FileOutputStream(fileName);
hssfWorkbook.write(out);
out.flush();
out.close();
需要import的类
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.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
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;
需要的jar包poi-ooxml-3.9.jar
由于Excel的版本有区别,需要new 不同的Workbook,核⼼就是这⼀句:
excel表格随机函数ateCell(count).setCellFormula("VLOOKUP(A"+(rowNum+1)+",'D:\\[AspOp.csv]AspOp'!$A:$E,5,false)");
VLOOKUP函数含义:
第⼀个参数:要查的值
第⼆个参数:要查的区域(这个地⽅我之前把要对⽐的⽂件放到⽂件夹⾥⾯,⽼是各种报错,后⾯放到根⽬录就好了,待研究)第三个参数:返回数据在查区域的第⼏列数
第四个参数:精确匹配/近似匹配 FALSE(或0)/TRUE(或1或不填)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。