因业务要求,时常需要对excel表中的某些文本信息进行批量检索,并将检索结果复制下来保存到另外一个excel表中。
这里使用java.awt中的robot类实现对检索人物的模拟,实现复制、粘贴、检索等操作;同时利用POI实现对excel表的读写操作;利用Datatransfer实现对系统剪贴板的访问。具体实现代码如下:
使用前需要下载POI相对应的jar包,我使用的是4.1版本,测试代码的搜索引擎使用的是百度。(实际业务中使用一般是某些第三方检索信息网站,对于鼠标定位会更加准确,不会出现百度这样由于搜索结果中的文本长短不一,导致复制的文本不全。)操作表格需要使用xls格式。
import java.awt.Desktop;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.user