有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从excel文件中读取值并存储在数组中?

我想读取excel工作表的值,并将这些值存储在Java中的数组中

我已经准备好读取excel工作表的代码,但我无法自定义它以将这些值存储在数组中

以下是我阅读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();
    }

}

共 (2) 个答案

  1. # 1 楼答案

    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;
        }
    
    
    }
    
  2. # 2 楼答案

    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;
        }
    
    }