首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从XLS (Excel)文件读取数据[Java、Android]

如何从XLS (Excel)文件读取数据[Java、Android]
EN

Stack Overflow用户
提问于 2013-06-03 12:54:40
回答 2查看 43.6K关注 0票数 18

我搜索了stackoverflow,但没有找到明确的答案。如何从XLS文件的特定行和列中读取数据到我的Android应用程序?如何读取XLS文件?我不想将其转换为CSV,因为当我尝试转换它们时会遇到错误。

也许我可以使用这个http://www.andykhan.com/jexcelapi/tutorial.html#reading,但我甚至不知道如何将它导入到我的项目中。请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-03 13:05:30

您好,您只需要包含一个外部jxl jar,您可以通过相同的教程,这将帮助您了解读取excel文件的过程。为了你的参考,我粘贴了一些参考。读取excel的第一张表并创建结果集的代码。

代码语言:javascript
复制
    public List<String> read(String key) throws IOException  {
    List<String> resultSet = new ArrayList<String>();

    File inputWorkbook = new File(inputFile);
    if(inputWorkbook.exists()){
        Workbook w;
        try {
            w = Workbook.getWorkbook(inputWorkbook);
            // Get the first sheet
            Sheet sheet = w.getSheet(0);
            // Loop over column and lines
            for (int j = 0; j < sheet.getRows(); j++) {
                Cell cell = sheet.getCell(0, j);
                if(cell.getContents().equalsIgnoreCase(key)){
                    for (int i = 0; i < sheet.getColumns(); i++) {
                        Cell cel = sheet.getCell(i, j);
                        resultSet.add(cel.getContents());
                    }
                }
                continue;
            }
        } catch (BiffException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    else
    {
        resultSet.add("File not found..!");
    }
    if(resultSet.size()==0){
        resultSet.add("Data not found..!");
    }
    return resultSet;
}
票数 16
EN

Stack Overflow用户

发布于 2020-12-14 18:13:34

代码语言:javascript
复制
private void printlnToUser(Cell str) {
    final Cell string = str;
    if (output.length() > 8000) {
        CharSequence fullOutput = output.getText();
        fullOutput = fullOutput.subSequence(5000, fullOutput.length());
        output.setText(fullOutput);
    }
    output.append(string + "\n");
}

public void ReadXLSX(File path) {
    try {
        FileInputStream fis = new FileInputStream(path);
        XSSFWorkbook myWorkBook = new XSSFWorkbook(fis);
        XSSFSheet mySheet = myWorkBook.getSheetAt(0);
        Iterator<Row> rowIterator = mySheet.iterator();
        while (rowIterator.hasNext()) {
            Row row = rowIterator.next();
            Iterator<Cell> cellIterator = row.cellIterator();
            while (cellIterator.hasNext()) {
                Cell cell = cellIterator.next();
                switch (cell.getCellType()) {
                    case Cell.CELL_TYPE_STRING:
                        break;
                    case Cell.CELL_TYPE_NUMERIC:
                        break;
                    case Cell.CELL_TYPE_BOOLEAN:
                        break;
                    default:
                }
                printlnToUser(cell);
            }
        }
        fis.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16890206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档