Je veux lire des valeurs de feuille Excel et stocker ces valeurs dans un tableau en java.
J'ai le code prêt à lire la feuille Excel, mais je ne suis pas capable de le personnaliser pour stocker ces valeurs dans la matrice. P>
Voici mon code pour lire une feuille Excel: p>
3 Réponses :
Si vous voulez vraiment un tableau, vous devrez savoir combien d'éléments vous souhaitez dans la matrice lorsque vous allouez le stockage pour cela. Vous pouvez le faire au moment de l'exécution - il n'est pas nécessaire d'être connu à l'heure de la compilation - mais vous devez le faire avant de pouvoir utiliser le tableau.
Quelque part dans une section Déclarations: P>
dataArray = new String[numberOfElements];
Je suis un QA et je veux utiliser ce code pour mon objectif de test. J'ai une feuille Excel ayant 5 valeurs. Et j'ai la commande de selenium de la recherche de Google dans une autre classe: selenium.type ("CSS = # GBQFQ", "Bonjour"); Maintenant, dans cette commande, je souhaite utiliser ces valeurs à partir d'une feuille Excel et exécuter cette commande en utilisant ces valeurs au lieu de "Bonjour".
import java.io.File; import java.io.IOException; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; public class NewExcel { private String inputFile; String[][] data = null; public void setInputFile(String inputFile) { this.inputFile = inputFile; } public String[][] read() throws IOException { File inputWorkbook = new File(inputFile); Workbook w; try { w = Workbook.getWorkbook(inputWorkbook); // Get the first sheet Sheet sheet = w.getSheet(0); data = new String[sheet.getColumns()][sheet.getRows()]; // Loop over first 10 column and lines // System.out.println(sheet.getColumns() + " " +sheet.getRows()); for (int j = 0; j <sheet.getColumns(); j++) { for (int i = 0; i < sheet.getRows(); i++) { Cell cell = sheet.getCell(j, i); data[j][i] = cell.getContents(); // System.out.println(cell.getContents()); } } /* for (int j = 0; j < data.length; j++) { for (int i = 0; i <data[j].length; i++) { System.out.println(data[j][i]); } } */ } catch (BiffException e) { e.printStackTrace(); } return data; } }
package Utilities; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcellReading { // public Workbook workbook= null; // public Sheet firstSheet= null; public String INPUT_XLS = "/ExcelManipulation/TestExecution.xlsx"; public ExcellReading() { } public ExcellReading(String filepath) { INPUT_XLS = filepath; } public Map<Integer, List<String>> ReadExcel() throws IOException { FileInputStream inputStream = new FileInputStream(new File("TestExecution.xlsx")); Map<Integer, List<String>> data = new HashMap<Integer, List<String>>(); Workbook workbook = new XSSFWorkbook(inputStream); Sheet firstSheet = workbook.getSheetAt(5); Iterator<Row> iterator = firstSheet.iterator(); // Test test=new Test(); int rowCnt = 0; while (iterator.hasNext()) { Row nextRow = iterator.next(); Iterator<Cell> cellIterator = nextRow.cellIterator(); List<String> obj = new ArrayList<String>(); while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); String cellobj = cell.getStringCellValue(); if ("".equals(cell.getStringCellValue())) { obj.add("Missing"); } else if (cellobj.equals(null)) { obj.add(""); } else { obj.add(cell.getStringCellValue()); } } data.put(rowCnt, obj); rowCnt++; } return data; } }
Comment voulez-vous lire? Toutes les cellules de toutes les lignes dans un seul tableau? Ou toutes les cellules par rangée dans une matrice en deux dimensions ??