package org.cneng.httpclient; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.FileInputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; import static org.cneng.httpclient.ExcelUtil.getDate; import static org.cneng.httpclient.ExcelUtil.getString; /** * 检查一份excel企业名单表 * 对于红色字体的部分检查该企业是否已经被注销 * 对于正常字体部分检查该企业的资料是否正确填写 * * @author XiongNeng * @version 1.0 * @since 2015/6/5 */ public class ExcelReader { private static final Logger _log = LoggerFactory.getLogger(ExcelReader.class); private Workbook wb; FormulaEvaluator evaluator; private QueryManager queryManager; public ExcelReader(String filename) throws Exception { wb = new SXSSFWorkbook(new XSSFWorkbook(new FileInputStream(filename)), 500); evaluator = wb.getCreationHelper().createFormulaEvaluator(); queryManager = QueryManager.getInstance(); } public List<String> check() throws Exception { List<String> result = new ArrayList<String>(); try { //读取第一张表 Sheet sheet = wb.getSheetAt(0); //得到总行数 int rowNum = sheet.getLastRowNum(); _log.info("excel表格总行数为:" + rowNum); for (int i = 1; i <= rowNum; i++) { Row row = sheet.getRow(i); // 企业名称 String companyName = getString(evaluator, row, 0); // 注册号 String taxno = getString(evaluator, row, 1); // 法定代表人 String lawPerson = getString(evaluator, row, 2); // 成立日期 Date regDate = getDate(evaluator, row, 3); // 住所 String location = getString(evaluator, row, 4); // 经营范围 String business = getString(evaluator, row, 5); // 股东/发起人 String stockholder = getString(evaluator, row, 6); // 具体经营项目 String detail = getString(evaluator, row, 7); // 是否有违法 String illegal = getString(evaluator, row, 8); // 是否有行政处罚 String penalty = getString(evaluator, row, 9); // 是否经常异常 String exception = getString(evaluator, row, 10); // 链接 String link = getString(evaluator, row, 11); // 判断字体颜色是否为红色 CellStyle cellStyle = row.getCell(0).getCellStyle(); if (IndexedColors.RED.index == wb.getFontAt(cellStyle .getFontIndex()).getColor()) { // 登录工商局网站,通过验证码强行破解后查询企业信息 } else { // 直接通过后面的链接查询企业信息 } } } finally { wb.close(); } return result; } }