在java中读取多个excel表

Posted

技术标签:

【中文标题】在java中读取多个excel表【英文标题】:reading multiple excel sheets in java 【发布时间】:2015-03-20 00:43:53 【问题描述】:

我正在尝试将 Excel 文档的多个工作表的值添加到 ArrayList。不使用 HSSFSheet。这似乎更简单。小心不要忘记将字符串类型更改为数字。

public void setinputfile(String inputfile) 
    this.inputfile = inputfile;

public void read() throws IOException 
    File inputWorkbook = new File(inputfile);

    try 
        Workbook w = Workbook.getWorkbook(inputWorkbook);
        int Num = w.getNumberOfSheets();
        for (int i = 0; i < Num; i++) 
            Sheet sheet = w.getSheet(i);
            Sheet s = w.getSheet(i);
            int row = s.getRows();
            int col = s.getColumns();
            for (int i1 = 0; i1 < row; i1++) 
                inner = new ArrayList<Double>();
                for (int j = 0; j < col; j++) 
                    Cell c = s.getCell(j, i1);
                    CellType type = c.getType();
                    System.out.println(c.getContents());
                    String text = c.getContents(); // example String
                    double value = Double.parseDouble(text);
                    inner.add(value);
                
                Kargo_Amount.add(inner);
            

        
     catch (BiffException e) 
        e.printStackTrace();
    

public static void main(String[] args) throws Exception 
    Facility_Location test = new Facility_Location();
    test.setinputfile("C:\\Users\\soheyl\\Desktop\\Kargo miktarii.xls");
    test.read();

【问题讨论】:

【参考方案1】:

你调用 getSheet(1) 而不是 getSheet(i)

【讨论】:

【参考方案2】:

以下代码正在读取所有 xls 文件,您必须将 jxl.jar 文件添加到此:

import java.io.File;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ReadExcel 

    public static void main(String[] args) throws Exception 
        File f = new File("N:\\Data\\Book1.xls");

        try 
            Workbook wb=Workbook.getWorkbook(f);
            int Num = wb.getNumberOfSheets();

            for (int i = 0; i < Num; i++) 
                Sheet sheet = wb.getSheet(i); 
                Sheet s = wb.getSheet(i);

                int row = s.getRows();
                int col = s.getColumns();

                for(int i1=0; i1<row;i1++) 
                    for(int j=0;j<col;j++) 
                        Cell c =s.getCell(j, i1);
                        System.out.println(c.getContents());
                        //String text = c.getContents();
                    
                
            
         catch (Exception e) 
            e.getMessage();
        

        System.out.println("completed");
    

【讨论】:

以上是关于在java中读取多个excel表的主要内容,如果未能解决你的问题,请参考以下文章

从excel表格读取数据用Java代码实现批量上传写入数据库

将具有多个嵌套级别的任何 XML 读取到结构化表中以写入 Excel 的通用方法

使用 Pandas 读取具有多个标题的 excel 表

如何使用 python 从文件夹中的多个 excel 文件中读取工作表名称包含“我的”的任何工作表?我正在使用 xlrd

如何使用 Azure databricks 通过 ADLS gen 2 中的多个工作表读取和写入 excel 数据

如何将SQL Server中多个表的数据一次性返回到一张EXCEL工作表(Sheet)中