Je veux lire les valeurs des feuilles Excel et les stocker dans un tableau en Java.
J'ai le code prêt à lire la feuille Excel mais je ne suis pas en mesure de le personnaliser pour stocker ces valeurs dans Array.
Voici mon code pour lire une feuille Excel:
package com.core.testscripts;
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;
public void setInputFile(String inputFile)
{
this.inputFile = inputFile;
}
public void read() throws IOException
{
File inputWorkbook = new File(inputFile);
Workbook w;
try
{
w = Workbook.getWorkbook(inputWorkbook);
// Get the first sheet
Sheet sheet = w.getSheet(0);
// Loop over first 10 column and lines
for (int j = 0; j < sheet.getColumns(); j++)
{
for (int i = 0; i < sheet.getRows(); i++)
{
Cell cell = sheet.getCell(j, i);
System.out.println(cell.getContents());
}
}
}
catch (BiffException e)
{
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException
{
NewExcel test = new NewExcel();
test.setInputFile("D:/hellohowareyou.xls");
test.read();
}
}
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;
}
}
Si vous voulez vraiment un tableau, vous devrez savoir combien d'éléments vous voulez dans le tableau lorsque vous allouez de la mémoire. Vous pouvez le faire au moment de l'exécution - il n'est pas nécessaire de le savoir au moment de la compilation - mais vous devez le faire avant de pouvoir utiliser le tableau.
Quelque part dans une section de déclarations:
String[] dataArray = null;
et puis quelque part dans le code
dataArray = new String[numberOfElements];
Vous pouvez créer un tableau à deux dimensions (ou plus) sur le même principe. Ensuite, vous pouvez affecter une chaîne à n’importe quel élément du tableau dont l’indice est inférieur à numberOfElements
.
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;
}
}