Спортивные соревнования

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;

public class FineExcel {

	private static HSSFWorkbook wb;
	private static HSSFWorkbook wbAges;
	private static HSSFWorkbook wbForAll;
	
	public static void main(String[] args) throws IOException{
	
		FileInputStream my = new FileInputStream("C:/Users/ddani/Desktop/Список заявок.xls");
		FileInputStream ages = new FileInputStream("C:/Users/ddani/Desktop/Возрастные категории.xls");
		wb = new HSSFWorkbook(my);
		wbAges = new HSSFWorkbook(ages);
		
		//переменные для записи в них взятые из файла ячейки 
		Double resultDouble = null;
		String result = null;
		//счетчики для записи обработанных данных в массив
		int i=1, l1=0, l2=0;
		Double max=0.0;
		
		/*****************Сортируем по полу*****************/
		
		System.out.println(MaxCounter(0, wb));
		
		//создаем новую книгу
		wbForAll = new HSSFWorkbook();
		Sheet sheetGroupsGender0 = wbForAll.createSheet("Мужской пол");
		Sheet sheetGroupsGender1 = wbForAll.createSheet("Женский пол");
		Row row;
		
		//обработка данных полученных из изначального списка
		//для разбиения их на возростные категории
		for(i=1; i<MaxCounter(0, wb)+1; i++){
			result = getCellText(wb.getSheetAt(0).getRow(i).getCell(6));
			
			//resultDouble = Double.valueOf(result);
			if(result.equals("м")){
				row = sheetGroupsGender0.createRow(l1);
				CreaterSetter(row, i, l1, 0);
				l1++;
			}
			else{
				row = sheetGroupsGender1.createRow(l2);
				CreaterSetter(row, i, l2, 0);
				l2++;
			}
		}
		
		//открываем поток ввода данных в файл
		FileOutputStream gender = new FileOutputStream("C:/Users/ddani/Desktop/Сортировка по полу.xls");
		//вводим данные в файл
		wbForAll.write(gender);
		//закрываем поток ввода данных в файл
		gender.close();
		
		/*****************Сортируем по возрасту для мужчин*****************/
		
		//потоки вывода данных из указанных файлов
		FileInputStream gendermanfis = new FileInputStream("C:/Users/ddani/Desktop/Сортировка по полу.xls");
		//рабочие книги
		wb = new HSSFWorkbook(gendermanfis);
		
		//Определяем максимальное число участников
		System.out.println(MaxCounter(0, wb));
		
		//создаем новую книгу
		wbForAll = new HSSFWorkbook();
		//создаем в новой книге листы
		Sheet sheetGenderMans0 = wbForAll.createSheet("Мужчины");
		Sheet sheetGenderMans1 = wbForAll.createSheet("Юниоры");
		Sheet sheetGenderMans2 = wbForAll.createSheet("Младшие юниоры");
		Sheet sheetGenderMans3 = wbForAll.createSheet("Юноши");
		Sheet sheetGenderMans4 = wbForAll.createSheet("Не вошли");
		
		//обработка данных полученных из изначального списка
		//для разбиения их на возростные категории
		SuperBestFunction(0.0, 1996.0, sheetGenderMans0, 0, 4);
		SuperBestFunction(1996.0, 1998.0, sheetGenderMans1, 0, 4);
		SuperBestFunction(1998.0, 2000.0, sheetGenderMans2, 0, 4);
		SuperBestFunction(2000.0, 2002.0, sheetGenderMans3, 0, 4);
		SuperBestFunction(2002.0, 2015.0, sheetGenderMans4, 0, 4);
		gendermanfis.close();
		//открываем поток ввода данных в файл
		FileOutputStream gendermanfos = new FileOutputStream("C:/Users/ddani/Desktop/По возрасту(муж.).xls");
		//вводим данные в файл
		wbForAll.write(gendermanfos);
		//закрываем поток ввода данных в файл
		gendermanfos.close();
		
		/*****************Сортируем по возрасту для женщин*****************/
		
		//потоки вывода данных из указанных
		
		FileInputStream genderwomanfis = new FileInputStream("C:/Users/ddani/Desktop/Сортировка по полу.xls");
		//рабочие книги
		wb = new HSSFWorkbook(genderwomanfis);
		
		//Определяем максимальное число участников
		System.out.println(MaxCounter(1, wb));
		
		//создаем новую книгу
		wbForAll = new HSSFWorkbook();
		//создаем в новой книге листы
		Sheet sheetGenderWomans0 = wbForAll.createSheet("Женщины");
		Sheet sheetGenderWomans1 = wbForAll.createSheet("Юниорки");
		Sheet sheetGenderWomans2 = wbForAll.createSheet("Младшие юниорки");
		Sheet sheetGenderWomans3 = wbForAll.createSheet("Девушки");
		Sheet sheetGenderWomans4 = wbForAll.createSheet("Не вошли");
		
		//обработка данных полученных из изначального списка
		//для разбиения их на возростные категории
		SuperBestFunction(0.0, 1996.0, sheetGenderWomans0, 1, 4);
		SuperBestFunction(1996.0, 1998.0, sheetGenderWomans1, 1, 4);
		SuperBestFunction(1998.0, 2000.0, sheetGenderWomans2, 1, 4);
		SuperBestFunction(2000.0, 2002.0, sheetGenderWomans3, 1, 4);
		SuperBestFunction(2002.0, 2015.0, sheetGenderWomans4, 1, 4);
		
		genderwomanfis.close();
		
		//открываем поток ввода данных в файл
		FileOutputStream genderwomanfos = new FileOutputStream("C:/Users/ddani/Desktop/По возрасту(жен.).xls");
		//вводим данные в файл
		wbForAll.write(genderwomanfos);
		//закрываем поток ввода данных в файл
		genderwomanfos.close();
		
		my.close();
		ages.close();
	
		/*****************дальше сортируем по весу для мужчин и женщин*****************/
		
		FileInputStream mansweightfis = new FileInputStream("C:/Users/ddani/Desktop/По возрасту(муж.).xls");
		wb = new HSSFWorkbook(mansweightfis);
		System.out.println(MaxCounter(1, wb));
		
		wbForAll = new HSSFWorkbook();
		Sheet sheetMans0 = wbForAll.createSheet("вес <=51");
		Sheet sheetMans1 = wbForAll.createSheet("51< вес <=54");
		Sheet sheetMans2 = wbForAll.createSheet("54< вес <=57");
		Sheet sheetMans3 = wbForAll.createSheet("57< вес <=60");
		Sheet sheetMans4 = wbForAll.createSheet("60< вес <=63,5");
		Sheet sheetMans5 = wbForAll.createSheet("63,5< вес <=67");
		Sheet sheetMans6 = wbForAll.createSheet("67< вес <=71");
		Sheet sheetMans7 = wbForAll.createSheet("71< вес <=75");
		Sheet sheetMans8 = wbForAll.createSheet("75< вес <=81");
		Sheet sheetMans9 = wbForAll.createSheet("81< вес <=86");
		Sheet sheetMans10 = wbForAll.createSheet("86< вес <=91");
		Sheet sheetMans11 = wbForAll.createSheet("вес > 91");		
		
		SuperBestFunction(0.0, 51.0, sheetMans0, 0, 5);
		SuperBestFunction(51.0, 54.0, sheetMans1, 0, 5);
		SuperBestFunction(54.0, 57.0, sheetMans2, 0, 5);
		SuperBestFunction(57.0, 60.0, sheetMans3, 0, 5);
		SuperBestFunction(60.0, 63.5, sheetMans4, 0, 5);
		SuperBestFunction(63.5, 67.0, sheetMans5, 0, 5);
		SuperBestFunction(67.0, 71.0, sheetMans6, 0, 5);
		SuperBestFunction(71.0, 75.0, sheetMans7, 0, 5);
		SuperBestFunction(75.0, 81.0, sheetMans8, 0, 5);
		SuperBestFunction(81.0, 86.0, sheetMans9, 0, 5);
		SuperBestFunction(86.0, 91.0, sheetMans10, 0, 5);
		SuperBestFunction(91.0, 1000.0, sheetMans11, 0, 5);
		
		mansweightfis.close();
		
		//открываем поток ввода данных в файл
		FileOutputStream mansweightfos = new FileOutputStream("C:/Users/ddani/Desktop/По весу(муж.).xls");
		//вводим данные в файл
		wbForAll.write(mansweightfos);
		//закрываем поток ввода данных в файл
		mansweightfos.close();
		
		
		
		FileInputStream womansweightfis = new FileInputStream("C:/Users/ddani/Desktop/По возрасту(жен.).xls");
		wb = new HSSFWorkbook(womansweightfis);
		//System.out.println(MaxCounter(1, wb));
		
		wbForAll = new HSSFWorkbook();
		Sheet sheetWomans0 = wbForAll.createSheet("вес <=48");
		Sheet sheetWomans1 = wbForAll.createSheet("48< вес <=52");
		Sheet sheetWomans2 = wbForAll.createSheet("52< вес <=56");
		Sheet sheetWomans3 = wbForAll.createSheet("56< вес <=60");
		Sheet sheetWomans4 = wbForAll.createSheet("60< вес <=65");
		Sheet sheetWomans5 = wbForAll.createSheet("65< вес <=70");
		Sheet sheetWomans6 = wbForAll.createSheet("вес > 70");	
		
		SuperBestFunction(0.0, 48.0, sheetWomans0, 0, 5);
		SuperBestFunction(48.0, 52.0, sheetWomans1, 0, 5);
		SuperBestFunction(52.0, 56.0, sheetWomans2, 0, 5);
		SuperBestFunction(56.0, 60.0, sheetWomans3, 0, 5);
		SuperBestFunction(60.0, 65.0, sheetWomans4, 0, 5);
		SuperBestFunction(65.0, 70.0, sheetWomans5, 0, 5);
		SuperBestFunction(70.0, 1000.0, sheetWomans6, 0, 5);
		
		womansweightfis.close();
		
		//открываем поток ввода данных в файл
		FileOutputStream womansweightfos = new FileOutputStream("C:/Users/ddani/Desktop/По весу(жен.).xls");
		//вводим данные в файл
		wbForAll.write(womansweightfos);
		//закрываем поток ввода данных в файл
		womansweightfos.close();
		
		/*****************дальше сортируем по весу для юниоров и юниорок*****************/
		
		FileInputStream manjuniorsweightfis = new FileInputStream("C:/Users/ddani/Desktop/По возрасту(муж.).xls");
		wb = new HSSFWorkbook(manjuniorsweightfis);
		//System.out.println(MaxCounter(1, wb));
		
		wbForAll = new HSSFWorkbook();
		Sheet sheetManJuniors0 = wbForAll.createSheet("вес <=51");
		Sheet sheetManJuniors1 = wbForAll.createSheet("51< вес <=54");
		Sheet sheetManJuniors2 = wbForAll.createSheet("54< вес <=57");
		Sheet sheetManJuniors3 = wbForAll.createSheet("57< вес <=60");
		Sheet sheetManJuniors4 = wbForAll.createSheet("60< вес <=63,5");
		Sheet sheetManJuniors5 = wbForAll.createSheet("63,5< вес <=67");
		Sheet sheetManJuniors6 = wbForAll.createSheet("67< вес <=71");
		Sheet sheetManJuniors7 = wbForAll.createSheet("71< вес <=75");
		Sheet sheetManJuniors8 = wbForAll.createSheet("75< вес <=81");
		Sheet sheetManJuniors9 = wbForAll.createSheet("81< вес <=86");
		Sheet sheetManJuniors10 = wbForAll.createSheet("86< вес <=91");
		Sheet sheetManJuniors11 = wbForAll.createSheet("вес > 91");		
		
		SuperBestFunction(0.0, 51.0, sheetManJuniors0, 1, 5);
		SuperBestFunction(51.0, 54.0, sheetManJuniors1, 1, 5);
		SuperBestFunction(54.0, 57.0, sheetManJuniors2, 1, 5);
		SuperBestFunction(57.0, 60.0, sheetManJuniors3, 1, 5);
		SuperBestFunction(60.0, 63.5, sheetManJuniors4, 1, 5);
		SuperBestFunction(63.5, 67.0, sheetManJuniors5, 1, 5);
		SuperBestFunction(67.0, 71.0, sheetManJuniors6, 1, 5);
		SuperBestFunction(71.0, 75.0, sheetManJuniors7, 1, 5);
		SuperBestFunction(75.0, 81.0, sheetManJuniors8, 1, 5);
		SuperBestFunction(81.0, 86.0, sheetManJuniors9, 1, 5);
		SuperBestFunction(86.0, 91.0, sheetManJuniors10, 1, 5);
		SuperBestFunction(91.0, 1000.0, sheetManJuniors11, 1, 5);
		
		manjuniorsweightfis.close();
		
		//открываем поток ввода данных в файл
		FileOutputStream manjuniorsweightfos = new FileOutputStream("C:/Users/ddani/Desktop/По весу(юниоры).xls");
		//вводим данные в файл
		wbForAll.write(manjuniorsweightfos);
		//закрываем поток ввода данных в файл
		manjuniorsweightfos.close();
		
		
		
		FileInputStream womanjuniorsweightfis = new FileInputStream("C:/Users/ddani/Desktop/По возрасту(жен.).xls");
		wb = new HSSFWorkbook(womanjuniorsweightfis);
		//System.out.println(MaxCounter(1, wb));
		
		wbForAll = new HSSFWorkbook();
		Sheet sheetWomanJuniors0 = wbForAll.createSheet("вес <=48");
		Sheet sheetWomanJuniors1 = wbForAll.createSheet("48< вес <=52");
		Sheet sheetWomanJuniors2 = wbForAll.createSheet("52< вес <=56");
		Sheet sheetWomanJuniors3 = wbForAll.createSheet("56< вес <=60");
		Sheet sheetWomanJuniors4 = wbForAll.createSheet("60< вес <=65");
		Sheet sheetWomanJuniors5 = wbForAll.createSheet("65< вес <=70");
		Sheet sheetWomanJuniors6 = wbForAll.createSheet("вес > 70");	
		
		SuperBestFunction(0.0, 48.0, sheetWomanJuniors0, 1, 5);
		SuperBestFunction(48.0, 52.0, sheetWomanJuniors1, 1, 5);
		SuperBestFunction(52.0, 56.0, sheetWomanJuniors2, 1, 5);
		SuperBestFunction(56.0, 60.0, sheetWomanJuniors3, 1, 5);
		SuperBestFunction(60.0, 65.0, sheetWomanJuniors4, 1, 5);
		SuperBestFunction(65.0, 70.0, sheetWomanJuniors5, 1, 5);
		SuperBestFunction(70.0, 1000.0, sheetWomanJuniors6, 1, 5);
		
		womanjuniorsweightfis.close();
		
		//открываем поток ввода данных в файл
		FileOutputStream womanjuniorsweightfos = new FileOutputStream("C:/Users/ddani/Desktop/По весу(юниорки).xls");
		//вводим данные в файл
		wbForAll.write(womanjuniorsweightfos);
		//закрываем поток ввода данных в файл
		womanjuniorsweightfos.close();
	}
	
	public static Double MaxCounter(int numberofsheet, HSSFWorkbook workbook){
		int i=0;
		Double max=0.0;
		try{
			while(Double.valueOf(getCellText(workbook.getSheetAt(numberofsheet).getRow(i+1).getCell(0)))!=null){
				max = Double.valueOf(getCellText(workbook.getSheetAt(numberofsheet).getRow(i+1).getCell(0)));
				i++;
			}
		}
		catch(NullPointerException ex){}
		catch(NumberFormatException ex){}
		return max;
	}
	
	public static void SuperBestFunction(Double niz, Double verh, Sheet sheet, int numberofsheet, int j){
		int counter=0;
		for(int i=0; i<MaxCounter(numberofsheet, wb); i++){
			String result = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(j));
			String resultNames = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(1));
			String resultTown = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(2));
			String resultCategory = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(3));
			String resultYear = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(4));
			String resultWeight = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(5));
			String resultGender = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(6));
			Double resultDouble = Double.valueOf(result);
			if(resultDouble > niz && resultDouble <= verh){
				Row row = sheet.createRow(counter);
				Cell cell=null, cell1=null, cell2=null, cell3=null, cell4=null, cell5=null, cell6=null;
				cell = row.createCell(0);
				cell1 = row.createCell(1);
				cell2 = row.createCell(2);
				cell3 = row.createCell(3);
				cell4 = row.createCell(4);
				cell5 = row.createCell(5);
				cell6 = row.createCell(6);
				cell.setCellValue(counter+1);
				cell1.setCellValue(resultNames);
				cell2.setCellValue(resultTown);
				cell3.setCellValue(resultCategory);
				cell4.setCellValue(resultYear);
				cell5.setCellValue(resultWeight);
				cell6.setCellValue(resultGender);
				//System.out.println(resultNames);
				//CreaterSetter(row, i, l1, 0);
				counter++;
			}
		}		
	}
	
	public static void CreaterSetter(Row row, int i, int l1, int numberofsheet){
		String resultNames = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(1));
		String resultTown = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(2));
		String resultCategory = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(3));
		String resultYear = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(4));
		String resultWeight = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(5));
		String resultGender = getCellText(wb.getSheetAt(numberofsheet).getRow(i).getCell(6));
		Cell cell=null, cell1=null, cell2=null, cell3=null, cell4=null, cell5=null, cell6=null;
		cell = row.createCell(0);
		cell1 = row.createCell(1);
		cell2 = row.createCell(2);
		cell3 = row.createCell(3);
		cell4 = row.createCell(4);
		cell5 = row.createCell(5);
		cell6 = row.createCell(6);
		cell.setCellValue(l1+1);
		cell1.setCellValue(resultNames);
		cell2.setCellValue(resultTown);
		cell3.setCellValue(resultCategory);
		cell4.setCellValue(resultYear);
		cell5.setCellValue(resultWeight);
		cell6.setCellValue(resultGender);
	}
	
	public static String getCellText(Cell cell){
		String result = "";
		switch (cell.getCellType()) {
			case Cell.CELL_TYPE_STRING:
				result = cell.getRichStringCellValue().getString();
				break;
			case Cell.CELL_TYPE_NUMERIC:
				if (DateUtil.isCellDateFormatted(cell)) {
					result = cell.getDateCellValue().toString();
				} else {
					result = Double.toString(cell.getNumericCellValue());
				}
				break;
			case Cell.CELL_TYPE_BOOLEAN:
				result = Boolean.toString(cell.getBooleanCellValue());
				break;
			case Cell.CELL_TYPE_FORMULA:
				result = cell.getCellFormula().toString();
				break;
			default:
				break;
		}
		return result;
	}
}
Теги:
Java, Apache POI
Добавлено: 09 Сентября 2015 21:07:08 Добавил: Даниил Давлетов Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...