Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从XLS(Excel)文件中读取数据[Java,Android]_Java_Android_Excel - Fatal编程技术网

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

如何从XLS(Excel)文件中读取数据[Java,Android],java,android,excel,Java,Android,Excel,我已经搜索了stackoverflow,但没有找到明确的答案。如何将XLS文件特定行和列中的数据读取到Android应用程序?如何读取XLS文件?我不想将其转换为CSV,因为我在尝试转换时会出错 也许我可以使用它,但我甚至不知道如何将它导入到我的项目中。请提供帮助。您好,您只需要包含一个外部jxl jar,您可以阅读相同的教程,这将帮助您了解读取excel文件的过程。。为了您的参考,我粘贴了一些参考代码,它读取excel的第一页并创建一个结果集 public List<String

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


也许我可以使用它,但我甚至不知道如何将它导入到我的项目中。请提供帮助。

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

    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;
}
公共列表读取(字符串键)引发IOException{
List resultSet=new ArrayList();
文件输入工作簿=新文件(输入文件);
如果(inputWorkbook.exists()){
工作手册w;
试一试{
w=Workbook.getWorkbook(inputWorkbook);
//拿到第一张
图纸=w.getSheet(0);
//在列和行上循环
对于(int j=0;j
专用无效打印程序(单元格str){
最终细胞串=str;
if(output.length()>8000){
CharSequence fullOutput=output.getText();
fullOutput=fullOutput.subSequence(5000,fullOutput.length());
setText(fullOutput);
}
output.append(字符串+“\n”);
}
public void ReadXLSX(文件路径){
试一试{
FileInputStream fis=新的FileInputStream(路径);
XSSFWorkbook myWorkBook=新XSSFWorkbook(fis);
XSSFSheet mySheet=myWorkBook.getSheetAt(0);
迭代器rowIterator=mySheet.Iterator();
while(roweiterator.hasNext()){
行=行迭代器。下一步();
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext()){
Cell=cellIterator.next();
开关(cell.getCellType()){
case Cell.Cell\u类型\u字符串:
打破
case Cell.Cell\u类型\u数值:
打破
case Cell.Cell\u类型\u布尔值:
打破
违约:
}
打印机(电池);
}
}
fis.close();
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}

问题是我已经导入了该文件,但我发现一个错误,即找不到类源代码…我不明白为什么该问题被否决。您能分享您得到的确切错误吗?还有一个建议,无论何时提出问题,都要非常准确地提到你的问题(如果你认为有必要的话,要有错误和/或代码)。由于Stackoverflow上的其他朋友对所有新问题进行了审查,如果有人发现您的问题不正确/不完整,他们将投票否决。但是,让我们不要担心这一点,尝试解决您的问题,因为这更重要。我刚刚将它复制到LIBS文件夹中,它正在工作(以前我导入了它,但它不工作)。我需要打开文件夹B中的文件A(B在包主文件夹中)。这不起作用:workBook=workBook.getWorkbook(新文件(“/B/A.xls”);知道吗?有什么错误吗?另外,文件的确切位置和源代码文件的位置是否在同一文件夹/包中?文件的确切位置和源代码文件的位置是否在同一文件夹/包中?嗨!请指定您正在使用的库(名称和版本)(我想是iText),并对我正在使用的代码库ApachePOI“aa-poi-3.10-min-0.1.5.jar”和“aa-poi-ooxml-schemas-3.10-reduced-more-0.1.5.jar”添加一些描述,导入的库是import org.apache.poi.ss.usermodel.Cell;导入org.apache.poi.ss.usermodel.Row;导入org.apache.poi.xssf.usermodel.xssfheet;导入org.apache.poi.xssf.usermodel.xssf工作簿;
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();
    }
}