All Downloads are FREE. Search and download functionalities are using the official Maven repository.

daveayan.gherkinsalad.excel.XlsDataFile Maven / Gradle / Ivy

There is a newer version: 2.5
Show newest version
package daveayan.gherkinsalad.excel;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import daveayan.gherkinsalad.report.ReportFactory;

public class XlsDataFile extends XlsFile {
	private static Log log = LogFactory.getLog(XlsDataFile.class);
	private Map data = new HashMap();
	
	public static XlsDataFile openXlsFile(String file_absolute_path) {
		ReportFactory.reporter().action("Opening XLS file '" + file_absolute_path + "'");
		XlsDataFile support = new XlsDataFile();
		InputStream inp;
		try {
			inp = new FileInputStream(file_absolute_path);
			support.workbook = new HSSFWorkbook(inp);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			support.workbook = null;
		} catch (IOException e) {
			e.printStackTrace();
			support.workbook = null;
		}
		return support;
	}
	
	public String get_data_for_role_key(String role, String key) {
		String value = data.get(role.toUpperCase() + "_" + key);
		value = StringUtils.trimToEmpty(value);
		ReportFactory.reporter().action("Data for role '" + role + "', key '" + key + "' is '" + value + "'");
		return value;
	}
	
	public void switch_to_sheet(String sheet_name) {
		ReportFactory.reporter().action("Switching to sheet '" + sheet_name + "'");
		current_sheet = workbook.getSheet(sheet_name);
		load_up_data();
	}
	
	private void load_up_data() {
		for(int row = 0; row < current_sheet.getLastRowNum(); row++) {
			String role = value_in_cell("A_" + row);
			String key = value_in_cell("B_" + row);
			String value = value_in_cell("C_" + row);
			
			if(StringUtils.isNotEmpty(role)) {
				data.put(role + "_" + key, value);
			}
		}
	}
	
	protected XlsDataFile() {}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy