Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void sumListRow(String pathWorkbook) throws IOException
- {
- FileInputStream path = getPathToWorkbook(pathWorkbook);
- Workbook workbook = createWorkbookFromPath(path);
- int antalSheet = workbook.getNumberOfSheets();
- ArrayList<String> Antal = new ArrayList<String>();
- ArrayList<String> DNdim = new ArrayList<String>();
- ArrayList<String> Beskrivning = new ArrayList<String>();
- ArrayList<String> Material = new ArrayList<String>();
- // Gå igenom varje blad!
- System.out.println(antalSheet);
- for(int i = 0; i < antalSheet; i++)
- {
- String sheetName = workbook.getSheetName(i);
- System.out.println(sheetName);
- if(sheetName.contains(" ")) // Om den innehåller mellanslag
- {
- Sheet sheet = workbook.getSheetAt(i);
- // Börja på rad nummer 3
- for(int j = 3; j <= sheet.getLastRowNum(); j++) // Läs rad efter rad
- {
- // Läs en celler på samma rad
- int k = 3; // Kolumn 3
- String ant = null;
- try
- {
- ant = sheet.getRow(j).getCell(k - 2).toString();
- if(ant.contains(","))
- {
- // ersätt då "," med "."
- ant = ant.replace(",", ".");
- }
- if(ant.contains("M"))
- {
- // Ta bort exakt alla bokstäver
- ant = ant.replace("M", "");
- }
- }
- catch(Exception e)
- {
- ant = null;
- }
- String dim = null;
- try
- {
- dim = sheet.getRow(j).getCell(k - 1).toString();
- }
- catch(Exception e)
- {
- dim = null;
- }
- String bes = null;
- try
- {
- bes = sheet.getRow(j).getCell(k).toString();
- }
- catch(Exception e)
- {
- bes = null;
- }
- String mat = null;
- try
- {
- mat = sheet.getRow(j).getCell(k + 1).toString();
- }
- catch(Exception e)
- {
- mat = null;
- }
- // Kolla om värdet bes finns redan i listan Beskrivning
- if(Beskrivning.contains(bes) == false && bes.length() > 2)
- {
- // Lägg till då en ny beskriving och nya värden!
- System.out.println("Skriver in nytt\nAntal: " + ant + "\nDimension: " + dim + "\nBeskrivning: " + bes + "\nMaterial: " + mat);
- Antal.add(ant);
- DNdim.add(dim);
- Beskrivning.add(bes);
- Material.add(mat);
- int index = Beskrivning.indexOf(bes);
- System.out.println("Index: " + index);
- String antArray = Antal.get(index);
- System.out.println("Total antalet är: " + antArray);
- }
- else if(bes.length() > 2)
- {
- // Lägg till bara på antal
- System.out.println("Lägger till\nAntal: " + ant + "\nDimension: " + dim + "\nBeskrivning: " + bes + "\nMaterial: " + mat);
- int index = Beskrivning.indexOf(bes);
- System.out.println("Index: " + index);
- String antArray = Antal.get(index);
- System.out.println("Total antalet är: " + antArray);
- System.out.println("Summerar " + antArray + " med " + ant + " i beskrivningen: " + bes);
- try
- {
- Float newAnt = Float.parseFloat(ant) + Float.parseFloat(antArray);
- System.out.println(newAnt.toString());
- Antal.add(index, newAnt.toString());
- }
- catch(Exception e)
- {
- String error = "Cannot format the value at 'antal', ant: " + ant + "newAnt: " + antArray + ", at pipeNumber " + sheetName + " in function sumListRow";
- appendErrorLog(error);
- System.out.println(error);
- }
- }
- }
- System.out.println("Nu är ett blad läst");
- // Nu är ett blad listat i listorna! Ta bort den då!
- // Kolla om det är sista följsesbladet! Dvs att nästa blad innehåller mellanrum
- String AfterSheetName = workbook.getSheetName(i + 1);
- String[] sheetNamePart = sheetName.split(" ");
- if(AfterSheetName.contains(sheetNamePart[0]) == false)
- {
- System.out.println("Detta är sista bladet för detta rörnummer");
- // Nej! Skriv nytt blad nu
- System.out.println(sheetNamePart[0]);
- Sheet newSheet = workbook.createSheet(sheetNamePart[0]);
- // Räkna ut totala längden på raderna i arrayerna
- int rowLenght = Beskrivning.size();
- // Skapa en rubrik som heter "Antal DN/Dim Beskrivning Material"
- Row row = newSheet.createRow(1);
- row.createCell(1).setCellValue("Antal eller längd"); // Skriv antal
- row.createCell(2).setCellValue("DN/Dim"); // Skriv DN/Dim
- row.createCell(3).setCellValue("Beskrivning"); // Skriv Beskrivning
- row.createCell(4).setCellValue("Material"); // Skriv Material
- System.out.println("Nu är första raden klar!");
- // Nu fyll på!
- for(int j = 0; j < rowLenght; j++)
- {
- System.out.println(j);
- // Skapa ny rad!
- Row rowValue = newSheet.createRow(j + 3);
- rowValue.createCell(1).setCellValue(Antal.get(j)); // Skriv antal
- System.out.println("Antal: "+ Antal.get(j));
- rowValue.createCell(2).setCellValue(DNdim.get(j)); // Skriv DN/Dim
- System.out.println("DN/Dim: " + DNdim.get(j));
- rowValue.createCell(3).setCellValue(Beskrivning.get(j)); // Skriv Beskrivning'
- System.out.println("Beskrivning: " + Beskrivning.get(j));
- rowValue.createCell(4).setCellValue(Material.get(j)); // Skriv Material
- System.out.println("Material: " + Material.get(j));
- }
- // Töm alla listor!
- Antal.clear();
- DNdim.clear();
- Beskrivning.clear();
- Material.clear();
- }
- }
- }
- // Ta bort alla blad som innehåller " "
- System.out.println("Tar bort alla blad som har mellanslag i snitt namn");
- for(int i = 0; i < antalSheet; i++)
- {
- String sheetName = workbook.getSheetName(i);
- if(sheetName.contains(" "))
- {
- // radera
- workbook.removeSheetAt(i);
- antalSheet--;
- i--;
- }
- }
- // Spara nu!
- System.out.println("Sparar!");
- FileOutputStream saveFile = new FileOutputStream(pathWorkbook);
- workbook.write(saveFile);
- saveFile.close();
- workbook.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement