public void writeFile(Map<Long,Subscriber> subscribers, File file) throws IOException {
		// Create the workbook from file first
		Workbook wb;
		try {
			wb = WorkbookFactory.create(file);
		} catch(InvalidFormatException | IOException ife) {
			// If it fails, just create a blank one
			if(file.getName().endsWith(".xlsx")) {
				wb = new XSSFWorkbook();
			} else {
				wb = new HSSFWorkbook();
			}
		}
		
		// First, remove all existing sheets
		int sheets = wb.getNumberOfSheets();
		for(int i = 0; i < sheets; i++) {
			wb.removeSheetAt(i);
		}
		
		Sheet s = wb.createSheet();
		// Create top row of sheet with header data
		Row top = s.createRow(0);
		FieldType[] fields = FieldType.standardOrder();
		for(int i = 0; i < fields.length; i++) {
			Cell c = top.createCell(i);
			c.setCellValue(fields[i].getDesc());
		}
		
		// And then, iterate through all subscribers
		int j = 1;
		for(long abNr : subscribers.keySet()) {
			Subscriber sub = subscribers.get(abNr);
			Row r = s.createRow(j);
			for(int k = 0; k < fields.length; k++) {
				Cell c = r.createCell(k,Cell.CELL_TYPE_STRING);
				String str = sub.getByField(fields[k]);
				if(str != null) {
					c.setCellValue(str);
				} else {
					c.setCellType(Cell.CELL_TYPE_BLANK);
				}
			}
			j++;
		}
		
		wb.write(new FileOutputStream(file));
	}