Advertisement
Guest User

Untitled

a guest
Feb 2nd, 2016
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.59 KB | None | 0 0
  1. public void sumListRow(String pathWorkbook) throws IOException
  2.     {
  3.         FileInputStream path = getPathToWorkbook(pathWorkbook);
  4.         Workbook workbook = createWorkbookFromPath(path);
  5.         int antalSheet = workbook.getNumberOfSheets();
  6.        
  7.         ArrayList<String> Antal = new ArrayList<String>();
  8.         ArrayList<String> DNdim = new ArrayList<String>();
  9.         ArrayList<String> Beskrivning = new ArrayList<String>();
  10.         ArrayList<String> Material = new ArrayList<String>();
  11.        
  12.         // Gå igenom varje blad!
  13.         System.out.println(antalSheet);
  14.         for(int i = 0; i < antalSheet; i++)
  15.         {
  16.             String sheetName = workbook.getSheetName(i);
  17.             System.out.println(sheetName);
  18.             if(sheetName.contains(" ")) // Om den innehåller mellanslag
  19.             {
  20.                 Sheet sheet = workbook.getSheetAt(i);
  21.                 // Börja på rad nummer 3
  22.                 for(int j = 3; j <= sheet.getLastRowNum(); j++) // Läs rad efter rad
  23.                 {
  24.                     // Läs en celler på samma rad
  25.                     int k = 3; // Kolumn 3
  26.                    
  27.                     String ant = null;
  28.                     try
  29.                     {
  30.                         ant = sheet.getRow(j).getCell(k - 2).toString();
  31.                        
  32.                         if(ant.contains(","))
  33.                         {
  34.                             // ersätt då "," med "."
  35.                             ant = ant.replace(",", ".");
  36.                         }
  37.                         if(ant.contains("M"))
  38.                         {
  39.                             // Ta bort exakt alla bokstäver
  40.                             ant = ant.replace("M", "");
  41.                         }
  42.                     }
  43.                     catch(Exception e)
  44.                     {
  45.                         ant = null;
  46.                     }
  47.                    
  48.                     String dim = null;
  49.                     try
  50.                     {
  51.                         dim = sheet.getRow(j).getCell(k - 1).toString();
  52.                     }
  53.                     catch(Exception e)
  54.                     {
  55.                         dim = null;
  56.                     }
  57.                    
  58.                     String bes = null;
  59.                     try
  60.                     {
  61.                         bes = sheet.getRow(j).getCell(k).toString();
  62.                     }
  63.                     catch(Exception e)
  64.                     {
  65.                         bes = null;
  66.                     }
  67.                    
  68.                     String mat = null;
  69.                     try
  70.                     {
  71.                         mat = sheet.getRow(j).getCell(k + 1).toString();
  72.                     }
  73.                     catch(Exception e)
  74.                     {
  75.                         mat = null;
  76.                     }
  77.                    
  78.                     // Kolla om värdet bes finns redan i listan Beskrivning
  79.                     if(Beskrivning.contains(bes) == false && bes.length() > 2)
  80.                     {
  81.                         // Lägg till då en ny beskriving och nya värden!
  82.                         System.out.println("Skriver in nytt\nAntal: " + ant + "\nDimension: " + dim + "\nBeskrivning: "  + bes + "\nMaterial: " + mat);
  83.                         Antal.add(ant);
  84.                         DNdim.add(dim);
  85.                         Beskrivning.add(bes);
  86.                         Material.add(mat);
  87.                        
  88.                         int index = Beskrivning.indexOf(bes);
  89.                         System.out.println("Index: " + index);
  90.                         String antArray = Antal.get(index);
  91.                         System.out.println("Total antalet är: " + antArray);
  92.                        
  93.                     }
  94.                     else if(bes.length() > 2)
  95.                     {
  96.                         // Lägg till bara på antal
  97.                         System.out.println("Lägger till\nAntal: " + ant + "\nDimension: " + dim + "\nBeskrivning: "  + bes + "\nMaterial: " + mat);
  98.                         int index = Beskrivning.indexOf(bes);
  99.                         System.out.println("Index: " + index);
  100.                         String antArray = Antal.get(index);
  101.                         System.out.println("Total antalet är: " + antArray);
  102.  
  103.                         System.out.println("Summerar " + antArray + " med " + ant + " i beskrivningen: " + bes);
  104.                        
  105.                         try
  106.                         {
  107.                             Float newAnt = Float.parseFloat(ant) + Float.parseFloat(antArray);
  108.                             System.out.println(newAnt.toString());
  109.                             Antal.add(index, newAnt.toString());
  110.                         }
  111.                         catch(Exception e)
  112.                         {
  113.                             String error = "Cannot format the value at 'antal', ant: " + ant + "newAnt: " + antArray + ", at pipeNumber " + sheetName + " in function sumListRow";
  114.                             appendErrorLog(error);
  115.                             System.out.println(error);
  116.                         }                  
  117.                     }
  118.                 }
  119.                 System.out.println("Nu är ett blad läst");
  120.                 // Nu är ett blad listat i listorna! Ta bort den då!
  121.                
  122.                 // Kolla om det är sista följsesbladet! Dvs att nästa blad innehåller mellanrum
  123.                 String AfterSheetName = workbook.getSheetName(i + 1);
  124.                 String[] sheetNamePart = sheetName.split(" ");
  125.                 if(AfterSheetName.contains(sheetNamePart[0]) == false)
  126.                 {
  127.                     System.out.println("Detta är sista bladet för detta rörnummer");
  128.                     // Nej! Skriv nytt blad nu
  129.                     System.out.println(sheetNamePart[0]);
  130.                     Sheet newSheet = workbook.createSheet(sheetNamePart[0]);
  131.                    
  132.                     // Räkna ut totala längden på raderna i arrayerna
  133.                     int rowLenght = Beskrivning.size();
  134.                     // Skapa en rubrik som heter "Antal DN/Dim  Beskrivning Material"
  135.                     Row row = newSheet.createRow(1);
  136.                     row.createCell(1).setCellValue("Antal eller längd"); // Skriv antal
  137.                     row.createCell(2).setCellValue("DN/Dim"); // Skriv DN/Dim
  138.                     row.createCell(3).setCellValue("Beskrivning"); // Skriv Beskrivning
  139.                     row.createCell(4).setCellValue("Material"); // Skriv Material
  140.                    
  141.                     System.out.println("Nu är första raden klar!");
  142.                     // Nu fyll på!
  143.                     for(int j = 0; j < rowLenght; j++)
  144.                     {
  145.                         System.out.println(j);
  146.                         // Skapa ny rad!
  147.                         Row rowValue = newSheet.createRow(j + 3);
  148.                         rowValue.createCell(1).setCellValue(Antal.get(j)); // Skriv antal
  149.                         System.out.println("Antal: "+ Antal.get(j));
  150.                         rowValue.createCell(2).setCellValue(DNdim.get(j)); // Skriv DN/Dim
  151.                         System.out.println("DN/Dim: " + DNdim.get(j));
  152.                         rowValue.createCell(3).setCellValue(Beskrivning.get(j)); // Skriv Beskrivning'
  153.                         System.out.println("Beskrivning: " + Beskrivning.get(j));
  154.                         rowValue.createCell(4).setCellValue(Material.get(j)); // Skriv Material
  155.                         System.out.println("Material: " + Material.get(j));
  156.  
  157.                     }
  158.                    
  159.                    
  160.                    
  161.                     // Töm alla listor!
  162.                     Antal.clear();
  163.                     DNdim.clear();
  164.                     Beskrivning.clear();
  165.                     Material.clear();
  166.                 }
  167.             }
  168.         }
  169.        
  170.         // Ta bort alla blad som innehåller " "
  171.         System.out.println("Tar bort alla blad som har mellanslag i snitt namn");
  172.         for(int i = 0; i < antalSheet; i++)
  173.         {
  174.             String sheetName = workbook.getSheetName(i);
  175.             if(sheetName.contains(" "))
  176.             {
  177.                 // radera
  178.                 workbook.removeSheetAt(i);
  179.                 antalSheet--;
  180.                 i--;
  181.             }
  182.         }
  183.        
  184.         // Spara nu!
  185.         System.out.println("Sparar!");
  186.         FileOutputStream saveFile = new FileOutputStream(pathWorkbook);
  187.         workbook.write(saveFile);
  188.         saveFile.close();
  189.         workbook.close();
  190.        
  191.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement