此类获取我的excel文件,然后将所有数据输出到ArrayList
。我在包中有另一个类,为了简单起见,我希望用户键入'1'或'2',其中1和2是单独的excel文件。如果用户键入“1”,我希望excel文件通过该初始程序。然后我想要那个ArrayList
,它所持有的所有数据都会射到另一个类中,其中我有64个子数组,它们会分解这些数据然后等等。
我已经做了好几天了!我正试图摆脱初学者的束缚,知道自己在做什么。我努力使这个问题尽可能具体。我的方法可能不是实现我的目标最有效的方法。我们赞赏更好的方法。
//跳过概述,除非你不明白我在做什么 概述:用户键入一个数字,该数字选择要处理为数组的文件。然后数组进入另一个类,在那里它被分成数吨较小的数组。然后每个小数组中的所有数字变为变量和每个变量,然后用户执行另一个输入,指示要从每个小数组中取出的特定变量,或两个变量/ 2,或3个变量/ 3等然后,最后,选择的那些变量通过主程序完成设置和花花公子,然后我将有一个界面来显示每个变量指示它显示的内容。
主要目标:用户通过按1或2指示选择哪个文件,文件通过程序,程序将excel数据放入ArrayList,包含该数据的ArrayList显示在新类中。
public class InputExcelFileOutputDataArrays {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int input = scan.nextInt();
/*Depending on what the user presses the variable excel will be
* equal to the String value of the file
*/
if(input == 1){
String excel = "C:/File";
}
if(input == 2){
String excel = "C:/File2";
}
}
}
public class ReadExcel2 {
public static void main(String args[]) throws IOException{
//here is where the String from the other class will equal this variable
// excel and then all run nicely together
FileInputStream fis = new FileInputStream(new File("excel"));
//create workbook instance that refers to .xlsx file
XSSFWorkbook wb = new XSSFWorkbook(fis);
//create a sheet object to retrieve the sheet
XSSFSheet sheet = wb.getSheetAt(0);
//this is for evaluate the cell type
FormulaEvaluator formulaEvaluator = wb.getCreationHelper().createFormulaEvaluator();
//The spreadsheet is transfered into this ArrayList
ArrayList<Double> arrays = new ArrayList<Double>();
//This here says ok everytime I see a number
//i'm going to put it in your ArrayList, and ignore strings
for(Row row : sheet){
for(Cell cell : row){
switch(formulaEvaluator.evaluateInCell(cell).getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
arrays.add(cell.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
break;
}
}
}
public class TourneyArrays {
public static void main(String[] args){
//somehow make this equal to the data
//from other ReadExcel class
public List<Double> arrays = new ArrayList<Double>();
//then I'm breaking it into subLists
List<Double> numbers = arrays.subList(0, 33); //1
for(int i = 0; i<numbers.size(); i++ ){
System.out.println(numbers.get(i));}