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 ??